[jboss-cvs] jboss-seam/seam-gen ...
Gavin King
gavin.king at jboss.com
Mon Nov 6 17:18:20 EST 2006
User: gavin
Date: 06/11/06 17:18:20
Modified: seam-gen build.xml
Log:
don't drive it from the scripts, parameterize the datasource
Revision Changes Path
1.23 +130 -54 jboss-seam/seam-gen/build.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: build.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/seam-gen/build.xml,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- build.xml 6 Nov 2006 20:13:47 -0000 1.22
+++ build.xml 6 Nov 2006 22:18:20 -0000 1.23
@@ -1,13 +1,10 @@
<?xml version="1.0"?>
-<project name="seam-gen" default="new-project" basedir=".">
+<project name="seam-gen" default="help" basedir=".">
<!-- Give user a chance to override without editing this file or typing -D -->
<property file="${basedir}/build.properties" />
- <property name="page.name" value=""/>
- <property name="masterPage.name" value=""/>
-
<taskdef name="packageDirectory"
classname="org.jboss.seam.tool.PackageDirectoryTask"
classpath="../jboss-seam-gen.jar"/>
@@ -16,28 +13,82 @@
classname="org.jboss.seam.tool.LowercasePropertyTask"
classpath="../jboss-seam-gen.jar"/>
+ <taskdef name="uppercaseProperty"
+ classname="org.jboss.seam.tool.UppercasePropertyTask"
+ classpath="../jboss-seam-gen.jar"/>
+
+ <taskdef name="print"
+ classname="org.jboss.seam.tool.PrintTask"
+ classpath="../jboss-seam-gen.jar"/>
+
+ <filterset id="jdbc">
+ <filter token="jdbcUrl" value="${hibernate.connection.url}"/>
+ <filter token="driverClass" value="${hibernate.connection.driver_class}"/>
+ <filter token="username" value="${hibernate.connection.username}"/>
+ <filter token="password" value="${hibernate.connection.password}"/>
+ </filterset>
+
<packageDirectory property="action.dir" package="${action.package}"/>
<packageDirectory property="model.dir" package="${model.package}"/>
<packageDirectory property="mdb.dir" package="${mdb.package}"/>
<packageDirectory property="test.dir" package="${test.package}"/>
- <property name="interface.name" value="${action.name}"/>
- <property name="bean.name" value="${action.name}Bean"/>
- <property name="entity.name" value="${action.name}"/>
- <lowercaseProperty name="method.name" value="${action.name}"/>
- <lowercaseProperty name="component.name" value="${action.name}"/>
- <lowercaseProperty name="page.name" value="${action.name}"/>
- <lowercaseProperty name="masterPage.name" value="${action.name}"/>
+ <target name="action-input">
+
+ <input addproperty="component.name" message="Enter the Seam component name"/>
+
+ <uppercaseProperty name="interface.name.default" value="${component.name}"/>
+ <input message="Enter the local interface name [${interface.name.default}]"
+ addproperty="interface.name"
+ defaultvalue="${interface.name.default}"/>
+
+ <uppercaseProperty name="bean.name.default" value="${component.name}Bean"/>
+ <input message="Enter the bean class name [${bean.name.default}]"
+ addproperty="bean.name"
+ defaultvalue="${bean.name.default}"/>
+
+ <lowercaseProperty name="method.name.default" value="${component.name}"/>
+ <input message="Enter the action method name [${method.name.default}]"
+ addproperty="method.name"
+ defaultvalue="${method.name.default}"/>
+
+ <lowercaseProperty name="page.name.default" value="${component.name}"/>
+ <input message="Enter the page name [${page.name.default}]"
+ addproperty="page.name"
+ defaultvalue="${page.name.default}"/>
<property name="bean.file" value="${workspace.home}/${project.name}/src/${action.dir}/${bean.name}.java"/>
<property name="interface.file" value="${workspace.home}/${project.name}/src/${action.dir}/${interface.name}.java"/>
+ <property name="page.file" value="${workspace.home}/${project.name}/view/${page.name}.xhtml"/>
+ <property name="test.file" value="${workspace.home}/${project.name}/src/${test.dir}/${interface.name}Test.java"/>
+ <property name="testng.file" value="${workspace.home}/${project.name}/src/${test.dir}/testng.xml"/>
+
+ </target>
+
+ <target name="entity-input">
+
+ <input addproperty="entity.name" message="Enter the entity class name"/>
+ <lowercaseProperty name="component.name" value="${entity.name}"/>
+
+ <lowercaseProperty name="masterPage.name.default" value="${component.name}List"/>
+ <input message="Enter the master page name [${masterPage.name.default}]"
+ addproperty="masterPage.name"
+ defaultvalue="${masterPage.name.default}"/>
+
+ <lowercaseProperty name="page.name.default" value="${component.name}"/>
+ <input message="Enter the detail page name [${page.name.default}]"
+ addproperty="page.name"
+ defaultvalue="${page.name.default}"/>
+
<property name="entity.file" value="${workspace.home}/${project.name}/src/${action.dir}/${entity.name}.java"/>
<property name="home.file" value="${workspace.home}/${project.name}/src/${action.dir}/${entity.name}Home.java"/>
<property name="list.file" value="${workspace.home}/${project.name}/src/${action.dir}/${entity.name}List.java"/>
<property name="page.file" value="${workspace.home}/${project.name}/view/${page.name}.xhtml"/>
<property name="masterPage.file" value="${workspace.home}/${project.name}/view/${masterPage.name}.xhtml"/>
- <property name="test.file" value="${workspace.home}/${project.name}/src/${test.dir}/${interface.name}Test.java"/>
- <property name="testng.file" value="${workspace.home}/${project.name}/src/${test.dir}/testng.xml"/>
+
+ </target>
+
+ <target name="setup-filters">
<filterset id="filters">
<filter token="interfaceName" value="${interface.name}"/>
@@ -55,6 +106,8 @@
<filter token="homeName" value="${component.name}Home"/>
</filterset>
+ </target>
+
<target name="create-folders">
<echo message="Creating Project Folders ..." />
<mkdir dir="${workspace.home}/${project.name}" />
@@ -89,11 +142,14 @@
<filter token="projectName" value="${project.name}" />
</filterset>
</copy>
- <move tofile="${workspace.home}/${project.name}/resources/${project.name}-ds.xml" file="${workspace.home}/${project.name}/resources/datasource-ds.xml" />
+ <move tofile="${workspace.home}/${project.name}/resources/${project.name}-ds.xml"
+ file="${workspace.home}/${project.name}/resources/datasource-ds.xml">
+ <filterset refid="jdbc"/>
+ </move>
<copy todir="${workspace.home}/${project.name}/view">
<fileset dir="${basedir}/view">
<include name="home.xhtml"/>
- <include name="index.xhtml"/>
+ <include name="index.html"/>
<include name="layout/*"/>
<include name="stylesheet/*"/>
</fileset>
@@ -114,6 +170,7 @@
<filter token="projectName" value="${project.name}" />
</filterset>
</copy>
+ <mkdir dir="${workspace.home}/${project.name}/src"/>
</target>
<target name="file-copy-wtp" depends="create-folders-wtp">
@@ -152,7 +209,8 @@
<filter token="projectName" value="${project.name}" />
</filterset>
</copy>
- <move file="${workspace.home}/${project.name}/EarContent/META-INF/application-wtp.xml" tofile="${workspace.home}/${project.name}/EarContent/META-INF/application.xml" />
+ <move file="${workspace.home}/${project.name}/EarContent/META-INF/application-wtp.xml"
+ tofile="${workspace.home}/${project.name}/EarContent/META-INF/application.xml" />
<copy todir="${workspace.home}/${project.name}/EarContent" overwrite="true">
<fileset dir="../lib">
<include name="jbpm-*.jar" />
@@ -161,11 +219,14 @@
<include name="jboss-seam.jar" />
</fileset>
</copy>
- <move tofile="${jboss.home}/server/default/deploy/${project.name}-ds.xml" file="${workspace.home}/${project.name}/EarContent/datasource-ds.xml" />
+ <move tofile="${jboss.home}/server/default/deploy/${project.name}-ds.xml"
+ file="${workspace.home}/${project.name}/EarContent/datasource-ds.xml">
+ <filterset refid="jdbc"/>
+ </move>
<copy todir="${workspace.home}/${project.name}Web/WebContent">
<fileset dir="${basedir}/view">
<include name="home.xhtml"/>
- <include name="index.xhtml"/>
+ <include name="index.html"/>
<include name="layout/*"/>
<include name="stylesheet/*"/>
</fileset>
@@ -206,8 +267,8 @@
</propertyfile>
</target>
- <target name="validate-project">
- <fail message="No project name specified">
+ <target name="validate-project" depends="validate-workspace">
+ <fail message="No project name specified (run 'seam new-project' first)">
<condition>
<or>
<not><isset property="project.name"/></not>
@@ -217,11 +278,22 @@
</fail>
</target>
- <target name="new-project" depends="validate-project,file-copy,set-default-project">
+ <target name="validate-workspace">
+ <fail message="No eclipse workspace specified (run 'seam setup' first)">
+ <condition>
+ <or>
+ <not><isset property="workspace.home"/></not>
+ <equals arg1="${workspace.home}" arg2=""/>
+ </or>
+ </condition>
+ </fail>
+ </target>
+
+ <target name="new-project" depends="validate-workspace,file-copy,set-default-project">
<echo message="A new Seam project called '${project.name}' was created in the ${workspace.home} directory"/>
</target>
- <target name="new-wtp-project" depends="validate-project,file-copy-wtp,set-default-project">
+ <target name="new-wtp-project" depends="validate-workspace,file-copy-wtp,set-default-project">
<echo message="A new WTP project was created in the ${workspace.home} directory"/>
</target>
@@ -283,7 +355,7 @@
<delete dir="${workspace.home}/${project.name}" />
</target>
- <target name="new-stateless-action" depends="validate-project">
+ <target name="new-action" depends="validate-project,action-input,setup-filters">
<echo message="Creating a new stateless session bean component with an action method" />
<copy file="src/ActionBean.java" tofile="${bean.file}">
<filterset refid="filters"/>
@@ -300,9 +372,10 @@
<copy file="view/action.xhtml" tofile="${page.file}">
<filterset refid="filters"/>
</copy>
+ <echo message="Go to http://localhost:8080/${project.name}/${page.name}.seam"/>
</target>
- <target name="new-stateful-action" depends="validate-project">
+ <target name="new-form" depends="validate-project,action-input,setup-filters">
<echo message="Creating a new stateful session bean component with an action method" />
<echo message="Creating a new stateless session bean component with an action method" />
<copy file="src/FormActionBean.java" tofile="${bean.file}">
@@ -314,9 +387,10 @@
<copy file="view/form.xhtml" tofile="${page.file}">
<filterset refid="filters"/>
</copy>
+ <echo message="Go to http://localhost:8080/${project.name}/${page.name}.seam"/>
</target>
- <target name="new-conversation" depends="validate-project">
+ <target name="new-conversation" depends="validate-project,action-input,setup-filters">
<echo message="Creating a new stateful session bean component with @Begin and @End methods" />
<copy file="src/ConversationBean.java" tofile="${bean.file}">
<filterset refid="filters"/>
@@ -327,9 +401,10 @@
<copy file="view/conversation.xhtml" tofile="${page.file}">
<filterset refid="filters"/>
</copy>
+ <echo message="Go to http://localhost:8080/${project.name}/${page.name}.seam"/>
</target>
- <target name="new-entity" depends="validate-project">
+ <target name="new-entity" depends="validate-project,entity-input,setup-filters">
<echo message="Creating a new entity bean, with home and list components" />
<copy file="src/Entity.java" tofile="${entity.file}">
<filterset refid="filters"/>
@@ -346,6 +421,7 @@
<copy file="view/list.xhtml" tofile="${masterPage.file}">
<filterset refid="filters"/>
</copy>
+ <echo message="Go to http://localhost:8080/${project.name}/${masterPage.name}.seam"/>
</target>
<target name="deploy" depends="validate-project">
@@ -374,7 +450,7 @@
</target>
<target name="help">
- <echo message="Refer to README doc, or type `seam help'" />
+ <print file="README"/>
</target>
<target name="setup">
More information about the jboss-cvs-commits
mailing list