Hi Chad and all, I have checked in the first version of andromda-meta that generates compile-clean code! Now, the new facades with their metamodel-independent interfaces can be seen in full color. :-)
See my other comments below... > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of Matthias Bohlen > Sent: Saturday, February 28, 2004 8:54 AM > To: [EMAIL PROTECTED] > Subject: [Andromda-devel] MMFs: The final battle > > > Hi, fellow developers, > > today, I start the final(?) refactoring battle in AndroMDA's core: > * I remove metadecorators.jar from lib. Not yet done because the core still depends on it. > * I move DecoratorFactory to > org.andromda.core.metafacade.MetaFacadeFactory. Done. > * I make it independent of the UML metamodel (I'll see how that > develops...) Done. (This was easier than expected). However, it still requires some refactoring because of a complex method inside, I marked that with //TODO. > * I move the MetaDecoratorModel.xml.zip to > metafacades/uml/common/src/uml. Did not move but copy it because andromda-meta still depends on it. However, the new facades generate beautifully from the copy. > * I rename all the decorators to facades in that model. Done. > Afterwards, I'll regenerate and compile the metafacades > modules (uml/common, uml/uml14) against the new factory. Done. OK, now, the rest is fairly straightforward but still a significant amount of work. Chad, I'm running out of time, can you *please* help me with the rest of the refactoring battle? That way, we could make the time difference work for us again! :-) The following steps would be required to make the next leap forward: * First, update the "Experts_only" release with the current contents of "dist" after running "ant". Set a new CVS tag. * Adjust metafacades/uml/common/build.xml and metafacades/uml/uml14/build.xml so that they both use the same andromda.old.home/andromda.new.home schema as andromda-meta/build.xml does today. The facades have to be generated using an old AndroMDA, not the new AndroMDA. Otherwise, further development will be difficult! * Copy all implementations from andromda-meta/**/*DecoratorImpl to metafacades/uml/uml14/**/*FacadeImpl and make them compile *without* andromda-core/lib/metadecorators.jar. * Copy andromda-meta/**/andromda-default-metafacades.xml to metafacades/uml/uml14/**/andromda-metafacades.xml and adjust to use the new class names of the facade implementation classes. * Check in. ----- Check out a second work area from CVS and make the rest of the changes on the second one so that you won't lose a working version of AndroMDA source code. ---- * Adjust DefaultAndroMDACartridge to use the new MetafacadeFactory instead of the old DecoratorFactory. I send you my metamodel-independent implementation of it that I have already changed so that it does not use org.omg.* any more but uses ModelFacade instead. * Remove a hack from MetafacadeFactory.java that calculates implementation class names from interface class names. The hack is marked with //TODO and should be replaced with an XML-based mapping table - maybe this can be done simply by extending the XML schema of andromda-metafacades.xml? * Remove andromda-meta/src/uml/MetadecoratorModel.xml.zip. * Delete org.andromda.core.metadecorators.uml14/*.java from andromda-meta, entirely. * Adjust andromda-meta/src/uml/MetaMetafacadeModel.xml.zip to reference metafacades/uml/common/src/uml/UMLMetafacadeModel.xml.zip * Regenerate andromda-meta and make it compile. * Add metafacades/**/build.xml to the overall build.xml process. * Regenerate everything using the new version of AndroMDA. * Stop here for a glass of champagne! :-) Phew, that's a lot to do. Chad, would you dare to do so? Thanks a lot... Matthias --- Matthias Bohlen "Consulting that helps project teams to succeed..." http://www.mbohlen.de/ ------------------------------------------------------- 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
