[seam-dev] Seam gen redesign
Pete Muir
pete.muir at jboss.org
Tue Apr 22 11:34:56 EDT 2008
Max and I spent some time thinking about how to improve on the seam-
gen maintenance problem (2000 lines of ant is a bit nasty), and also
make it easier for JBoss Tools to consume the templates etc.
Feature Comparison
-------------------
Seam-gen JBoss
Tools Notes
---------
------------ -------
Ant controlled (seam-gen/build.xml) --------> Wizard
controlled Totally different system, probably not much
duplication
dev/prod/staging profile -------------------> dev profile
only Hard to do profiles in eclipse plugins - and not
that important, seam-gen build system is only a starting point, and a
projects build requirements quickly outgrow it
ftl and other templates -------------------->
templates We need to make all templates ftl
based - as otherwise inconsistent, and especially hard for multiple
consumers when we change a template from one to the other
project dependency info --------------------> project dependency
info Duplication!!! This is a big pain point atm
project structure --------------------------> different project
structure Not really an issue
generated build.xml ------------------------> generated
build.xml Max, does the build.xml generator in jboss
tools use the one from seam-gen, or build from scratch? Probably
should use the one from seam-gen
file copy ----------------------------------> file
copy In other words we overwrite rather than
merge descriptors
icefaces support ---------------------------> Not supported
Minor action items
-------------------
* Move all templates to .ftl
* Tidy up association handling
Major design changes proposed
------------------------------
* Move all templates and project dependency info into a JAR
- This jar is then published (e.g. to maven), and used by both
seam-gen and JBoss Tools
- The dependency info is specified using a maven POM, with
profiles used to "turn on" options like drools, jbpm etc.
- Hibernate Tools uses a classpath like system to load templates
so this is easy
- Extension points as necessary to allow e.g. icefaces to plugin
- Perhaps include a sample build.xml.ftl which can be used for
both JBoss Tools and seam-gen
- This remains part of the release cycle
* Migrate ant control to java control
- Extension points as necessary to allow e.g. icefaces to plugin
- This becomes a separate module that is released independently of
seam as needed
* Merge support for descriptors (both JBoss Tools and Seam-gen)
* Investigate whether we can utilise maven archetypes (to describe
meta data for projects) and consume in both JBoss Tools and seam-gen
(already offers dependency info, perhaps merge support, descriptor
location info)
- N.B. seam-gen would be more than just a maven archetype, but use
it as a meta model for the generated project
--
Pete Muir
http://www.seamframework.org
http://in.relation.to/Bloggers/Pete
More information about the seam-dev
mailing list