Hi, everyone,
after this long battle, here is the latest info what I have done so far:
0) What is a cartridge, now? A jar file with metainformation, templates
and java code in it. A cartridge must be put on the CLASSPATH and is
autodetected by the AndroMDA core. I have adjusted
src/sample/car-rental-system build.properties.sample so that you can see
how it should be configured.
1) What is an outlet?
Each cartridge has so-called "outlets" now. An outlet is a logical
symbolic alias name for a physical directory. See the build.xml file of
the car-rental-system sample. The andromda call now looks like this:
<andromda basedir="build/model/unzipped"
includes="CarRentalSystem15.xmi"
lastModifiedCheck="false"
typeMappings="${andromda.home}/src/xml/TypeMapping.xml"
>
<userProperty name="foreignKeySuffix" value="_FK" />
<userProperty name="testProperty" value="The quick brown fox" />
<outlet cartridge="ejb" outlet="beans"
dir="${andromda.ejb.bean.dir}" />
<outlet cartridge="ejb" outlet="impls"
dir="${andromda.ejb.impl.dir}" />
<outlet cartridge="struts" outlet="forms"
dir="${andromda.web.form.dir}" />
<outlet cartridge="struts" outlet="actions"
dir="${andromda.web.action.dir}" />
<outlet cartridge="struts" outlet="pages"
dir="${andromda.web.page.dir}" />
<outlet cartridge="struts" outlet="config"
dir="${src.webconfig.dir}/generated" />
</andromda>
The outlets of each cartridge are associated with physical directories.
This takes place at generator runtime. I had to invent the outlets
because the cartridges are separate modules now that do not know about
their environment details.
2) New CVS repository structure
Our CVS has now the following structure:
/cvsroot/andromda/andromda - the core and the samples.
/cvsroot/andromda/cartridges - all the cartridges (currently ejb and
struts).
3) New build system
Each cartridge has its own build.xml and its own src, lib, etc.
directories. Currently, the EJB cartridge builds a jar file, the struts
cartridge builds a ZIP file with internal structure. This has to be
unified so that each cartridge builds a ZIP, even the EJB cartridge.
4) No integrated build yet
The core and each cartridge have to be built separately. It would be
very kind if somebody (Stefan???) could massage this a little and invent
a unified build.xml at the top level of the directory structure that
calls the other build.xml files one by one and builds a unified
distribution at the end.
5) Sample adapted.
I have adapted the car-rental-system sample so that it uses the new
cartridge architecture. I have not yet changed the UML model, the
stereotypes and the tagged values. This would have broken everything and
would have taken me too long to clean up. Moreover, I did not adapt the
other samples and the project wizard.
OK, the gunpowder smoke is settling now. The foundation has been made.
Next steps:
* Invention of new, cartridge-independent stereotypes
* Changes in the UML model so that the sample can be run with EJB, JDO
or Hibernate.
* New cartridges. (Ming Fai?)
What do you think?
Cheers everyone...
Matthias
---
Matthias Bohlen
"Consulting that helps project teams to succeed..."
http://www.mbohlen.de/
-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb:
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
Andromda-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/andromda-user