Hi Chad, Wouter, Gernot, Jürgen, (and the audience in the background) I have committed my bug fix to DefaultAndroMDACartridge.java - it should now work without a problem. The changes you announce below sound all very good, so go ahead and commit them.
I will now continue to refactor the andromda-meta templates to make them translate facade inheritance in a different way than today. I'll make them generate facade *interfaces* that extend each other (works already in my sandbox). Then, I'll make them generate facade *implementations* that do *not* extend each other but delegate to the corresponding super-interface. There will not be any getMetaObject() methods any more. What do I mean by this? Example: In the metafacade PIM, it says: EntityFacade extends ClassifierFacade, and basta! But, surprise, surprise, in the generatad code, you will see this: package org.andromda.metafacades.uml; // not *.uml14! interface IEntityFacade extends IClassifierFacade { // some methods here... } --- package org.andromda.metafacades.uml14; // sic! class EntityFacade implements IEntityFacade { private IClassifierFacade superInterface; // also implement all methods m() of IClassifierFacade // and delegate to superInterface.m() ... // implement all methods of IEntityFacade itself } --- package org.andromda.metafacades.uml14; // sic! class EntityFacadeImpl extends EntityFacade // as usual { ... } --- The decorator pattern is back but at another level! Looks quite tricky but it will allow us to use different UML metamodel versions (1.3, 1.4 and maybe 2.0) as well as completely different metamodels like CWM (on the long run, not for the May release). The interface and decorator pattern shields the basic UML facade implementation classes against the cartridge-specific facade classes and against the templates and makes it possible to secretly replace them with another version, un-noticable for the cartridges. For you, it will mean that any calls to getMetaObject() will *not* work any more because that method will not exist any more. Is this a problem for you? Cheers... Matthias P.S.: Chad, it will also mean that we need secondary (tiny) factories (one per metafacade package) that produces implementation objects for a given interface class, so that (for example) EntityFacade can instantiate an implementation for IClassifierFacade without knowing the implementation class for it. This will require another XML file that maps interface names to implementation class names. The good news is: That XML file can be auto-generated by andromda-meta! :-) But: Who (besides me) will still understand how this works? :-) Jürgen and Gernot, this will be a real challenge for the software architecture documentation! > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of Chad Brandon > Sent: Tuesday, February 24, 2004 1:47 PM > To: Matthias Bohlen; [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: Re: [Andromda-devel] Broken MMD build > > > Great! When you're done with that...and when Wouter checks > his changes in to remove accessing the model from the scriipt > helper (I'll synchronize and get your changes and test my > changes with those fixes)...and then if no one has any > objections, I'll check in my changes. > > Last night I made the following changes to the cartridge > descriptor. They made sense to do them at the same time, > since I was adding the <templateObject/> functionality. > > 1.) I made the Cartridge stuff work with the digester stuff > we use (so it performs schema validation now along with the > other configuration files when running andromda), > > 2) I added the ability to add the <templateObject name="" > className=""/> elements to the cartridge. > > 3) Since I was in modifying the cartridge descriptor, I > figured I might as well take out the duplicate <outlet/> and > <stereotype/> elements (they are now only required in the > <template/> element...like we talked about)...this was really > easy to do. > > 4) I got rid of the ScriptHelper and all references too it, > and replaced any uses of other helper objects (like > StringUtilsHelper) with templateObject elements within the > cartridge using it, again, like we talked about yesterday). > So now for example in the EJB cartridge we also have the > following in addition to template elements and the > macrolibrary element: > > <templateObject name="str" > className="org.andromda.core.common.StringUtilsHelper"/> > <templateObject name="transform" > className="org.andromda.cartridges.ejb.EJBScriptHelper"/> > > 5) I removed the entire org.andromda.core.simpleuml package > since that is now longer in use (since metafacades replace that all) > > 6) Also since I was in the cartridge descriptor I decided to > make stereotype be a collection of "stereotypes" within > <template/> this allows us to specifiy that a template can be > used by more than one stereotype if needed (I've run into > places where sometimes its nice to be able to do this), most > of the time you want to process a template with one > stereotype, but sometimes you want the same template to be > used with multiple stereotypes, without having the define the > same <template> element again, this is an example from one of > my cartridges at work: <template > sheet="templates/webservies/WebServiceTest.vsl" > outputPattern="{0}/{1}Test.java" > outlet="webservice-tests" > overWrite="true"> > <stereotype name="Service"/> > <stereotype name="WebService"/> > </template> > > I've updated all cartridge descriptors (those were the only > things that needed changes after these changes) and tested > andromda-all MMD, and it builds great (when I reverted two > revisions back of the DefaultAndroMDACartridge). It was > really easy to find errors in the andromda-cartridge.xml > files since the schema validation is now there. > > These changes were all very easy because I already had them > in my work generator). > > Anway, if you guys have no objections, I'd like to check them > in after I get your changes (the fix for > DefaultAndroMDACartridge, and from Wouter, his removal of > model references from his BPM4StrutsScriptHelper) and test > them....I can check them in tonight. > > Thanks, > > Chad > > ----- Original Message ----- > From: <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Tuesday, February 24, 2004 6:24 AM > Subject: AW: [Andromda-devel] Broken MMD build > > > Oops - sorry - I'll take care of it tonight! > > Matthias > > > > --- Ursprüngliche Nachricht --- > > Datum: 24.02.2004 04:41 > > Von: "Chad Brandon" <[EMAIL PROTECTED]> > > An: "Matthias Bohlen" <[EMAIL PROTECTED]> > > Betreff: [Andromda-devel] Broken MMD build > > > > > Hey Matthias, > > > > > > I checked out a fresh version of Andromda MMD and now the car rental > sample > > > fails..since your dynamic file name change was the only one that was > added > > > recently...I reverted back to the 2 revisions before you > changed and > > it > > > worked fine, so it must be do to your changes in the > > > DefaultAndroMDACartridge....can you take a look? > > > > > > Thanks! > > > > > > Chad > > > > > > > > > > > > > > > ------------------------------------------------------- > > > SF.Net is sponsored by: Speed Start Your Linux Apps Now. > > > Build and deploy apps & Web services for Linux with > > > a free DVD software kit from IBM. Click Now! > > > http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click > > > _______________________________________________ > > > Andromda-devel mailing list > > > [EMAIL PROTECTED] > > > https://lists.sourceforge.net/lists/listinfo/andromda-devel > > > > > > > > ------------------------------------------------------- > SF.Net is sponsored by: Speed Start Your Linux Apps Now. > Build and deploy apps & Web services for Linux with > a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ Andromda-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-devel ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id56&alloc_id438&op=click _______________________________________________ Andromda-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-devel