[jboss-user] [JBoss Seam] - Re: seam-gen enhancement

kentlam do-not-reply at jboss.com
Tue Feb 13 14:20:34 EST 2007


This is the solution I have to get seam-gen to work on existing entities:
1) Either append the following target to the seam-gen/build.xml or just modify the generate-entities target:


  | <target name="generate-domain" depends="validate-project"
  |     description="Generate based on existing domain entities">
  | 
  |     <taskdef name="hibernate"
  |         classname="org.hibernate.tool.ant.HibernateToolTask">
  |         <classpath>
  |             <fileset dir="lib">
  |                 <include name="*.jar" />
  |             </fileset>
  |             <fileset dir="../hibernate/lib">
  |                 <include name="*.jar" />
  |             </fileset>
  |             <pathelement path="${driver.jar}" />
  |             <pathelement path="../jboss-seam-gen.jar" />
  |         </classpath>
  |     </taskdef>
  | 
  |     <hibernate templatepath=".">
  |         <jpaconfiguration persistenceunit="testproject" />
  |         <classpath>
  |             <pathelement path="${project.home}/dist" />
  |         </classpath>
  | 
  |         <property key="hibernatetool.util.toolclass"
  |             value="org.jboss.seam.tool.Util" />
  | 
  |         <hbmtemplate filepattern="{class-name}List.xhtml"
  |             template="view/list.xhtml.ftl"
  |             destdir="${project.home}/view" />
  |         <hbmtemplate filepattern="{class-name}.xhtml"
  |             template="view/view.xhtml.ftl"
  |             destdir="${project.home}/view" />
  |         <hbmtemplate filepattern="{class-name}.page.xml"
  |             template="view/view.page.xml.ftl"
  |             destdir="${project.home}/view" />
  |         <hbmtemplate filepattern="{class-name}Edit.xhtml"
  |             template="view/edit.xhtml.ftl"
  |             destdir="${project.home}/view" />
  |         <hbmtemplate filepattern="{class-name}Edit.page.xml"
  |             template="view/edit.page.xml.ftl"
  |             destdir="${project.home}/view" />
  |         <hbmtemplate filepattern="{package-name}/{class-name}List.java"
  |             template="src/EntityList.java.ftl"
  |             destdir="${project.home}/src" />
  |         <hbmtemplate filepattern="{class-name}List.page.xml"
  |             template="view/list.page.xml.ftl"
  |             destdir="${project.home}/view" />
  |         <hbmtemplate filepattern="{package-name}/{class-name}Home.java"
  |             template="src/EntityHome.java.ftl"
  |             destdir="${project.home}/src" />
  |         <hbmtemplate filepattern="menu.xhtml"
  |             template="view/layout/menu.xhtml.ftl"
  |             destdir="${project.home}/view/layout" />
  |     </hibernate>
  | 
  |     <taskdef name="javaformatter"
  |         classname="org.hibernate.tool.ant.JavaFormatterTask">
  |         <classpath>
  |             <fileset dir="lib">
  |                 <include name="*.jar" />
  |             </fileset>
  |         </classpath>
  |     </taskdef>
  | 
  |     <javaformatter>
  |         <fileset dir="${project.home}/src">
  |             <include name="**/*.java" />
  |         </fileset>
  |     </javaformatter>
  | 
  |     <echo
  |         message="Type 'seam restart' and go to http://localhost:8080/${project.name}" />
  | 
  | </target>
  | 
2) Run 'seam setup' and 'seam new-project' to generate the project skeleton

3) create a 'dist' directory under the newly created project directory

4) copy all your compiled classes for the domain model into the 'dist' directory 

5) copy all your src code for the domain model into the 'src' directory under the newly created project directory

6) create a META-INF directory inside 'dist' directory

7) copy the persistence-dev.xml from the resources directory in the newly created project to the dist/META-INF directory and rename it to persistence.xml

8) Now change the persistenceunit under <jpaconfiguration .../> in the seam-gen/build.xml to match the persistentunit in the persistence.xml

9) download the put the javassist.jar  into your [Seam installation dir]/hibernate/lib  directory

10) run seam generate-domain  (or seam generate-entities if you modify the ant target)


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4015981#4015981

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4015981



More information about the jboss-user mailing list