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

Reply via email to