Max -- followup to our JBossWorld conversation re: SEAM CRUD
hxp Jul 27, 2006 3:52 AMHi Max,
It was good to chat with you at JBossWorld, and I'm following up on our conversation about fixes/improvements to the SEAM CRUD FreeMarker Templates.
You mentioned that further progress was waiting on some bandwidth from Gavin, and I'm wondering what the current outlook is.
I've tracked JIRA tasks & roadmap, and except for the somewhat-related HBX-670, there doesn't appear to be much on the subject of the composite keys, or seam 1.0.x.GA compatibility.
Then I noticed JBIDE-337, and the forum discussion, and realized that you all have your focus on something far more ambitious that what we discussed.
So now it's not clear to me whether the fixup of the templates is going to happen prior a whole new SEAM IDE coming out... but it would be really good if there were a fixup to keep this wonderful tool operational in the interim :)
In particular, to recap what I believe is needed to bring the set of FreeMarker templates up to snuff:
seam/*:
1) compatible/compliant with jboss-seam-1.0.1.GA
2) edit.jsp.ftl & find.jsp.ftl fixed for the composite key issue (+ any other files that need to be fixed to support compound keys?)... and for proper relationship traversal.
3) migration of *.jsp.ftl to *.xhtml.ftl, to support the Facelet model instead of the older JSP model (+ add faces-config.xml.ftl, and will need facelet jars)
3a) optionally, as much convergence with the structure of the (Facelets-based) Booking example as possible
4) persistence.xml.ftl needs to be parameterized, at minimum to reflect the datasource that was reverse-engineered (later, good to have option to generate persistence.xml for a different intended target datasource than the rev-eng'd one).
5) optionally, whatever else can quickly be built-into the CRUD templates to show-off the rich feature set of SEAM 1.0.1.GA (but should *not* require SEAM 1.1; when it's time to support more than 1.0.1.GA, consider having HibernateTools support multiple template sets, for output to different SEAM version targets).
6) *not* for now, by important soon: the template-generated SEAM project must match the layout structure contemplated in JBIDE-337, and the selected artifacts must be re/generatable into a pre-existing SEAM project without wrecking it.... plus the eventual JBIDE-337 design must take into account that many developers will prefer to clone & fork existing SEAM projects (such as from the examples, or from their own past work) rather than use a wizard... all of which leads to the need for tool-supported libraries of reusable work (including user-created FreeMarker templates), and open-ended easily-extensible library-aware wizards that support such reuse.
pojo/Ejb3TypeDeclaration.ftl
Need some way to turn off schema and/or catalog generation in the output, even if they exist in the input -- we want a test for something like "if clazz.table.catalog?exists AND is_desired_in_the_output" ---
<#if clazz.table.schema?exists> ,schema="${clazz.table.schema}" </#if> <#if clazz.table.catalog?exists> ,catalog="${clazz.table.catalog}" </#if>
A common use case, for example, would be rev-enging from MSSQLServer (3-part table names), and generating for MySQL (no 3-part table names).
Any way, no worries; just looking for the roadmap.
Best regards
Howard "hxp" Pearlmutter