Hi Matthias, in fact I was thinking of lesser coupling between AndroMDA and the model transformation frameworks by using an XML-based pipes and filters architecture:
Use the cartridge descriptor (or maven goals) to declare a chain of transformations (model-to-model and/or model-to-code). AndroMDA must make sure that it provides an XML element to execute a model transformation by calling one Java method with some extents (or xmi-file locations) as arguments. The model transformation does "something" to "some extents" and returns. AndroMDA looks for the next element in the transformation chain declaration. It can be another model transformation or a reference to a code template. > <transformation engine="ATL" input="UML2Spring.asm" > ... more attributes here ... I would do this as follows: <transformation classpath="lib/motmot.jar"> <rule>be.antwerp.MyTransformation.foo2bar("Conceptual", "Spring", ... other params ...)</rule> </transformation> <transformation classpath="lib/atl.jar"> <rule>fr.nantes.MyTransformation.foo2bar("Spring", "3GL", ... other params ...)</rule> </transformation> <transformation> <template> ... similar to AndroMDA 3 ... </transformation> The only requirement for a model transformation framework is that it exposes its model transformations as Java methods. I can imagine that for some frameworks one has to write a small wrapper that delegates the call from AndroMDA to a series of calls to the model transformation engine but for such frameworks, you'd have the same amount of work for the interface-approach. What do you think of this? Best regards, -- Pieter. On 8/24/05, Matthias Bohlen <[EMAIL PROTECTED]> wrote: > PVG> Using the cartridge descriptor makes sense as well, but please > PVG> make sure not to make it dependent on *.asm files. It would also > PVG> be nice if any transformation language with a Java API could be > PVG> used out of the box, even when we go for the cartridge descriptor > PVG> approach. > yes, we could do it as we always do: > > * define an abstraction in the form of an interface, > e.g. "IModelTransformer" > * create an implementation of that interface, e.g. "ATLTransformer" > * call only the interface instead of the implementation > > So, the cartridge descriptor should also state the transformation > engine to use, but only as a shorthand notation, e.g. > > <transformation engine="ATL" input="UML2Spring.asm" > ... more attributes here ... > /> > > D'accord? > Matthias > > --- > > Matthias Bohlen > > Internet: > http://www.mbohlen.de/ > [EMAIL PROTECTED] > > > > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf