Re: ANN: Golden Roof AGX Sprint

Jeff Kowalczyk <jtk-/[email protected]>
Newsgroups gmane.comp.web.zope.plone.archetypes.devel
Message-ID <[email protected]>
Reinout van Rees wrote:
> you'd need to import the XMI into your tool all the time, which probably
> gives you an auto-generated truly horrible layout.

I didn't mean to suggest, but apparently did by omission, that the
full-fidelity XMI would be any different in its XML content than the
binary .zuml. They would be identical from Poseidon's (or any other
tool's) point of view, just formatted in a diff and scm friendly way.

I'm basically suggesting that the agx tool accept the (possibly
compressed) input file, and write it out verbatim to a plaintext XMI file
with normalized whitespace and ordered elements and attributes, preserving
heirarchy.

I just manually unzipped PloneMall.zuml, deleted the PloneMall.proj3 file,
opened PloneMall.xmi in PoseidonCE 3.2.1. The highly formatted and
everything else seems superficially intact. On saving, Poseidon gzips what
you just imported, but thats a usability niggle.

I think it would be sensible to keep all three files in subversion: .zuml
binary, agx output .xmi normalized at full fidelity, and agx output .xmi
normalized reduced to logical elements of interest to agx only. Work with
the .zuml, run agx to generate the xmi's and commit all three when changes
happen. Shouldn't impede the workflow.

> Agreed of course that it's sub-optimal to "standardise" per-project on a
> certain tool.

I'm thinking about the future; that PoseidonCE may be the tool of
convenience now, but when there are more and better non-java UML editors
out there, we'll likely regret not having committed diffable plaintext XMI
to the repository revisions of all these UML driven collective projects.

Aren't diffs like this one (Martin Aspelli's below) worth preserving?
There's someone else (whose name and project escapes me) working in the
collective who carefully checks in plaintext XMI, and the diffs are very
instructive.

The 6Mb .xmi vs 200Kb .zuml shouldn't be the deciding factor, IMHO. Diffs
like the one below suggest that with a UML editor that preserves IDs
sensibly, true diff and merge like any other code is within the realm of
possibility for XMI.

If the agx tool makes it easy, people will check in the normalized
plaintext representation of their XMI, and then we'll have the versioned
resource for posterity.

  Index: listingtypes.xmi
  ===================================================================
  RCS file: /cvsroot/collective/ListingPages/model/listingtypes.xmi,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -d -r1.4 -r1.5
  --- listingtypes.xmi	6 Feb 2005 01:32:04 -0000	1.4
  +++ listingtypes.xmi	8 Feb 2005 16:59:20 -0000	1.5
  @@ -630,17 +630,24 @@
                   <Foundation.Core.ModelElement xmi.idref="xmi.71"/>
                 </Foundation.Extension_Mechanisms.TaggedValue.modelElement>
               </Foundation.Extension_Mechanisms.TaggedValue>
  +            <Foundation.Extension_Mechanisms.TaggedValue xmi.id="xmi.75">
  +              <Foundation.Extension_Mechanisms.TaggedValue.tag>content_icon</Foundation.Extension_Mechanisms.TaggedValue.tag>
  +              <Foundation.Extension_Mechanisms.TaggedValue.value>FeaturedItem.gif</Foundation.Extension_Mechanisms.TaggedValue.value>
  +              <Foundation.Extension_Mechanisms.TaggedValue.modelElement>
  +                <Foundation.Core.ModelElement xmi.idref="xmi.71"/>
  +              </Foundation.Extension_Mechanisms.TaggedValue.modelElement>
  +            </Foundation.Extension_Mechanisms.TaggedValue>
             </Foundation.Core.ModelElement.taggedValue>
  [...2169 lines suppressed...]
             </Foundation.Extension_Mechanisms.Stereotype.extendedElement>
           </Foundation.Extension_Mechanisms.Stereotype>
  -        <Foundation.Extension_Mechanisms.Stereotype xmi.id="xmi.303">
  +        <Foundation.Extension_Mechanisms.Stereotype xmi.id="xmi.306">
             <Foundation.Core.ModelElement.name>form</Foundation.Core.ModelElement.name>
             <Foundation.Core.ModelElement.visibility xmi.value="public"/>
             <Foundation.Core.ModelElement.isSpecification xmi.value="false"/>
  @@ -2577,10 +2598,10 @@
               <Foundation.Core.Namespace xmi.idref="xmi.1"/>
             </Foundation.Core.ModelElement.namespace>
             <Foundation.Extension_Mechanisms.Stereotype.extendedElement>
  -            <Foundation.Core.ModelElement xmi.idref="xmi.285"/>
  +            <Foundation.Core.ModelElement xmi.idref="xmi.288"/>
             </Foundation.Extension_Mechanisms.Stereotype.extendedElement>
           </Foundation.Extension_Mechanisms.Stereotype>
  -        <Model_Management.Model xmi.id="xmi.304">
  +        <Model_Management.Model xmi.id="xmi.307">
             <Foundation.Core.ModelElement.name>Use Case View</Foundation.Core.ModelElement.name>
             <Foundation.Core.ModelElement.visibility xmi.value="public"/>
             <Foundation.Core.ModelElement.isSpecification
             xmi.value="false"/>



-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.