Hi,
I'm modifying the Airlines example in the Middlegen download to point to a
set of my own tables. The build is running, and everything is getting built
except for the Struts .do files. Any ideas on what's wrong? Below is the
build.xml for Middlegen.
TIA,
david norwood
<?xml version="1.0"?>
<!--
The DOCTYPE declaration declares the location of product-specific parts of
the
Ant build file. You can change the values of these declarations to point to
other available files. This gives you an opportunity to choose what database
and EJB container to use for the Middlegen samples.
Note that this syntax has nothing to do with Ant or Middlegen. This
is the standard way defined by w3c to dynamically include external
files in an XML document. Any decent XML parser will do the include
transparently. Try to open this file in Internet Explorer and see
for yourself.
-->
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/db2.xml">
<!ENTITY ejb SYSTEM "file:./config/ejb/jboss.xml">
]>
<project name="DOC Opus" default="all" basedir=".">
<property file="${basedir}/build.properties"/>
<property name="name" value="oow"/>
<!-- This was added because we were several people (in a course)
deploying to same app server>
<property environment="env"/>
<property name="unique.name"
value="${name}.${env.COMPUTERNAME}"/-->
<property name="unique.name" value="${name}"/>
<property name="appxml.src.file"
value="${basedir}/src/application.xml"/>
<property name="lib.dir" value="${basedir}/lib"/>
<property name="src.dir" value="${basedir}/src"/>
<property name="java.src.dir" value="${src.dir}/java"/>
<property name="web.src.dir" value="${src.dir}/web"/>
<property name="build.dir"
value="${basedir}/build"/>
<property name="build.java.dir"
value="${build.dir}/java"/>
<property name="build.gen-src.dir"
value="${build.dir}/gen-src"/>
<property name="build.gen-webui.dir"
value="${build.dir}/gen-webui"/>
<property name="build.classes.dir"
value="${build.dir}/classes"/>
<property name="build.ejb-meta.dir"
value="${build.dir}/ejb-meta"/>
<property name="build.web-meta.dir"
value="${build.dir}/web-meta"/>
<property name="ear.dir"
value="${build.dir}/ear"/>
<property name="ear.file"
value="${ear.dir}/${unique.name}.ear"/>
<property name="ear.meta.dir"
value="${build.dir}/ear-meta"/>
<property name="ejb.dir"
value="${build.dir}/ejb"/>
<property name="ejb.jar.file"
value="${ejb.dir}/${unique.name}-ejb.jar"/>
<property name="war.dir"
value="${build.dir}/war"/>
<property name="war.file"
value="${war.dir}/${unique.name}-web.war"/>
<property name="build.html.dir"
value="${build.dir}/html"/>
<property name="build.jdo.dir"
value="${build.dir}/jdo"/>
<property name="build.xmi.dir"
value="${build.dir}/xmi"/>
&database;
&ejb;
<!-- define the datasource.jndi.name in case the imported ejb file
doesn't -->
<property name="datasource.jndi.name"
value="${name}/datasource"/>
<path id="lib.class.path">
<pathelement path="${database.driver.classpath}"/>
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<!-- The middlegen jars -->
<fileset dir="${basedir}/..">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<available property="xdoclet1.2+"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="lib.class.path"/>
</target>
<!--
=================================================================== -->
<!-- Fails if XDoclet 1.2.x is not on
-->
<!--
=================================================================== -->
<target name="fail-if-no-xdoclet-1.2" unless="xdoclet1.2+">
<fail>
You must download several jar files before you can build Middlegen.
Execute the "download-deps" target. Then try to build again.
If you are behind a proxy, you should define the properties
http.proxyHost and http.proxyPort. Example:
ant -Dhttp.proxyHost=foo -Dhttp.proxyPort=bar
It's also possible to download the jars manually.
</fail>
</target>
<target name="download-deps" depends="setproxy">
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-1.2b2.jar"
dest="${lib.dir}/xdoclet-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-apache-module-1.2b2.j
ar" dest="${lib.dir}/xdoclet-apache-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-bea-module-1.2b2.jar"
dest="${lib.dir}/xdoclet-bea-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-ejb-module-1.2b2.jar"
dest="${lib.dir}/xdoclet-ejb-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-hibernate-module-1.2b
2.jar" dest="${lib.dir}/xdoclet-hibernate-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-jboss-module-1.2b2.ja
r" dest="${lib.dir}/xdoclet-jboss-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-jdo-module-1.2b2.jar"
dest="${lib.dir}/xdoclet-jdo-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-jmx-module-1.2b2.jar"
dest="${lib.dir}/xdoclet-jmx-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-libelis-module-1.2b2.
jar" dest="${lib.dir}/xdoclet-libelis-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-mvcsoft-module-1.2b2.
jar" dest="${lib.dir}/xdoclet-mvcsoft-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-solarmetric-module-1.
2b2.jar" dest="${lib.dir}/xdoclet-solarmetric-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-tjdo-module-1.2b2.jar
" dest="${lib.dir}/xdoclet-tjdo-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-web-module-1.2b2.jar"
dest="${lib.dir}/xdoclet-web-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-xdoclet-module-1.2b2.
jar" dest="${lib.dir}/xdoclet-xdoclet-module-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/xdoclet/jars/xdoclet-xjavadoc-1.2b2.jar"
dest="${lib.dir}/xdoclet-xjavadoc-1.2b2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-collections/jars/commons-collectio
ns-2.1.jar" dest="${lib.dir}/commons-collections-2.1.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/commons-logging/jars/commons-logging-1.1-d
ev.jar" dest="${lib.dir}/commons-logging-1.1-dev.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/ejb/jars/ejb-2.0.jar"
dest="${lib.dir}/ejb-2.0.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/hsqldb/jars/hsqldb-1.7.1.jar"
dest="${lib.dir}/hsqldb-1.7.1.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/jdbc/jars/jdbc-2.0.jar"
dest="${lib.dir}/jdbc-2.0.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/jdo/jars/jdo-1.0.jar"
dest="${lib.dir}/jdo-1.0.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/log4j/jars/log4j-1.2.7.jar"
dest="${lib.dir}/log4j-1.2.7.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/servletapi/jars/servletapi-2.3.jar"
dest="${lib.dir}/servletapi-2.3.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/struts/jars/struts-1.0.2.jar"
dest="${lib.dir}/struts-1.0.2.jar"/>
<get usetimestamp="true" ignoreerrors="true"
src="http://www.ibiblio.org/maven/velocity/jars/velocity-1.4-dev.jar"
dest="${lib.dir}/velocity-1.4-dev.jar"/>
</target>
<target name="setproxy" if="http.proxyHost">
<setproxy proxyHost="http.proxyHost" proxyPort="http.proxyPort"/>
</target>
<!--
=================================================================== -->
<!-- Create
-->
<!--
=================================================================== -->
<target
name="create-tables"
depends="init,fail-if-no-xdoclet-1.2,check-driver-present,panic-if-driver-no
t-present"
description="Create tables"
>
<echo>Creating tables using URL ${database.url}</echo>
<sql
classpath="${database.driver.classpath}"
driver="${database.driver}"
url="${database.url}"
userid="${database.userid}"
password="${database.password}"
src="${database.script.file}"
print="true"
output="result.txt"
/>
</target>
<target name="check-driver-present">
<available file="${database.driver.file}" type="file"
property="driver.present"/>
</target>
<target name="panic-if-driver-not-present" unless="driver.present">
<fail>
The JDBC driver you have specified by including one of the files in
${basedir}/config/database
doesn't exist. You have to download this driver separately and put it
in ${database.driver.file}
Please make sure you're using a version that is equal or superior to
the one we looked for.
If you name the driver jar file differently, please update the
database.driver.file property
in the ${basedir}/config/database/xxx.xml file accordingly.
</fail>
</target>
<!--
=================================================================== -->
<!-- Run
-->
<!--
=================================================================== -->
<target
name="middlegen"
description="Run Middlegen"
unless="middlegen.skip"
depends="init,fail-if-no-xdoclet-1.2,check-driver-present,panic-if-driver-no
t-present"
>
<mkdir dir="${build.gen-src.dir}"/>
<taskdef
name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="lib.class.path"
/>
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
schema="${database.schema}"
catalog="${database.catalog}"
>
<table generate="true" name="FACT8AA1">
<crossref fktable="FACT8BU1" fkcolumn="CFFACLID"/>
</table>
<table generate="true" name="FACT8BU1"/>
<table generate="true" name="FACT8CU1">
<crossref fktable="FACT8BU1" fkcolumn="CFFACLID"
pkcolumn="CFFACLID"/>
</table>
<table generate="true" name="ASIT1BA1">
<crossref fktable="FACT8BU1" fkcolumn="CFCUSTODY"
pkcolumn="CDVALUE"/>
<crossref fktable="FACT8CU1" fkcolumn="CFBEDSMS"
pkcolumn="CDVALUE"/>
</table>
<!--
If you want m:n relations, they must be specified like this.
Note that tables declare in multiple locations must all have
the same value of the generate attribute.
-->
<!--many2many>
<tablea generate="true" name="persons"/>
<jointable name="reservations" generate="false"/>
<tableb generate="true" name="flights"/>
</many2many-->
<cmp20 destination="${build.gen-src.dir}" package="${name}.ejb"
interfacepackage="${name}.interfaces" jndiprefix="${unique.name}"
pkclass="false" dataobject="false" viewtype="local"
mergedir="${basedir}/src/middlegen" readonly="true" fkcmp="true"
guid="true">
<!-- Let the EJBs use The Sequence Block PK generation
pattern -->
<sequenceblock blocksize="5" retrycount="2"
table="SEQ_BLOCK"/>
<!-- We can use predicates to specify what columns we
want finders
for -->
<!--finders>
<and>
<indexed/>
<notkey/>
</and>
</finders-->
<!--
EJB containers can be specified here. They add aditional
features and perform additional validations. You don't have to
add them, they just provide "goodies".
-->
<weblogic/>
<jboss/>
</cmp20>
<!-- generate som read-only beans too -->
<!--cmp20
name="cmp20_ro"
destination="${build.gen-src.dir}"
package="${name}.ejb"
interfacepackage="${name}.interfaces"
jndiprefix="${unique.name}"
generatepk="false"
dataobject="false"
viewtype="local"
mergedir="${basedir}/src/middlegen"
readonly="true"
fkcmp="true"
suffix="RO"
>
<weblogic pkgen="false"/>
<jboss/>
</cmp20-->
<sunjdo10 destination="${build.gen-src.dir}"
package="${name}.jdo"/>
<html destination="${build.html.dir}">
<!--
We can override the plugin's templates
by specifying the id of the original template
and providing a new one from the file system.
Uncomment the line below to see it in action.
(This technique can be used for all plugins).
-->
<!--fileproducer
id="single-table"
template="${basedir}/src/templates/single-table.vm"
/-->
</html>
<!--
This illustrates the use of custom templates without the need to
write
a custom plugin. Just use the <plugin> task directly and specify as
many
<fileproducers> as you like. If the filename attribute contains a
{0},
one file will be generated per table, and the {0} will be
substituted by
the table name in the generated files. If there is no {0}, only one
file
will be generated. You can also narrow down the number of tables by
explicitly specifying nested <table> elements. If you don't specify
nested <table> elements, all tables will be used.
-->
<simple destination="${basedir}">
<fileproducer destination="${basedir}/build"
filename="toto-{0}.txt"
template="${basedir}/src/templates/simple.vm">
<table name="FACT8BU1"/>
<table name="FACT8CU1"/>
</fileproducer>
</simple>
<!-- Plugins "under construction" -->
<!--xmi
destination="${build.xmi.dir}"
/-->
<struts destination="${build.gen-src.dir}"
package="${name}.web.struts">
<jsp name="myjsp" destination="${build.gen-webui.dir}"/>
</struts>
</middlegen>
<mkdir dir="${build.classes.dir}"/>
</target>
<!--
=================================================================== -->
<!-- Run Ejbdoclet on Middlegen-generated sources
-->
<!--
=================================================================== -->
<target
name="ejbdoclet"
depends="middlegen"
>
<mkdir dir="${build.ejb-meta.dir}"/>
<taskdef
name="ejbdoclet"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="lib.class.path"
/>
<ejbdoclet
destdir="${build.gen-src.dir}"
excludedtags="@version,@author"
ejbspec="2.0"
>
<packageSubstitution packages="ejb" substituteWith="interfaces"/>
<fileset dir="${build.gen-src.dir}">
<include name="**/ejb/**/*Bean.java" />
</fileset>
<utilobject kind="physical" includeGUID="true"/>
<localinterface/>
<localhomeinterface/>
<!--dataobject/-->
<remoteinterface/>
<!--homeinterface/-->
<session/>
<entitypk/>
<entitycmp/>
<deploymentdescriptor
xmlencoding="ISO-8859-1"
destdir="${build.ejb-meta.dir}/META-INF"
validatexml="true"
/>
<weblogic
version="6.1"
xmlencoding="ISO-8859-1"
destdir="${build.ejb-meta.dir}/META-INF"
validatexml="true"
datasource="${datasource.jndi.name}"
createtables="true"
/>
<jboss
version="3.0"
xmlencoding="ISO-8859-1"
destdir="${build.ejb-meta.dir}/META-INF"
validatexml="true"
datasource="${datasource.jndi.name}"
datasourcemapping="${jboss.datasource.mapping}"
/>
<mvcsoft
xmlencoding="ISO-8859-1"
destdir="${build.ejb-meta.dir}/META-INF"
validatexml="true"
/>
</ejbdoclet>
</target>
<!--
=================================================================== -->
<!-- Run Webdoclet on Middlegen-generated
-->
<!--
=================================================================== -->
<target
name="webdoclet"
depends="postprocess-ejb-jar"
>
<mkdir dir="${build.web-meta.dir}"/>
<taskdef
name="webdoclet"
classname="xdoclet.modules.web.WebDocletTask"
classpathref="lib.class.path"
/>
<webdoclet
destdir="${build.web-meta.dir}/WEB-INF"
excludedtags="@version,@author"
>
<fileset dir="${build.gen-src.dir}">
<include name="**/web/**/*.java" />
</fileset>
<deploymentdescriptor
servletspec="2.3"
validatexml="true"
mergedir="${basedir}/src/xdoclet"
/>
<weblogicwebxml
description="Web application for ${ant.project.name}"
/>
<strutsconfigxml
destdir="${build.web-meta.dir}/WEB-INF"
>
<configParam name="version" value="1.0"/>
</strutsconfigxml>
<!--webworkconfigproperties destdir="${build.ejb.classes.dir}"/-->
</webdoclet>
</target>
<!--
=================================================================== -->
<!-- Run Jdodoclet on Middlegen-generated
-->
<!--
=================================================================== -->
<target
name="jdodoclet"
depends="middlegen"
>
<mkdir dir="${build.jdo.dir}/META-INF"/>
<taskdef
name="jdodoclet"
classname="xdoclet.modules.jdo.JdoDocletTask"
classpathref="lib.class.path"
/>
<jdodoclet
destdir="${build.classes.dir}"
excludedtags="@version,@author"
>
<fileset dir="${build.gen-src.dir}">
<include name="**/jdo/**/*.java" />
</fileset>
<jdometadata jdospec="1.0" generation="class"/>
<lido version="1.3"/>
<kodo version="2.3"/>
</jdodoclet>
</target>
<!--
=================================================================== -->
<!-- Make ear
-->
<!--
=================================================================== -->
<target
name="ear"
depends="war"
description="Make ear file"
>
<mkdir dir="${ear.meta.dir}/META-INF"/>
<copy todir="${ear.meta.dir}/META-INF" file="${appxml.src.file}">
<filterset>
<filter token="name" value="${unique.name}" />
<filter token="appname" value="${ant.project.name}" />
</filterset>
</copy>
<mkdir dir="${ear.dir}"/>
<ear
earfile="${ear.file}"
appxml="${ear.meta.dir}/META-INF/application.xml"
>
<fileset dir="${ejb.dir}"/>
<fileset dir="${war.dir}"/>
<fileset dir="${lib.dir}">
<include name="log4j*.jar"/>
</fileset>
</ear>
</target>
<!--
=================================================================== -->
<!-- Make war
-->
<!--
=================================================================== -->
<target name="war" depends="compile-web" description="Make ejb jar file">
<mkdir dir="${war.dir}"/>
<war
warfile="${war.file}"
webxml="${build.web-meta.dir}/WEB-INF/web.xml"
>
<classes dir="${build.classes.dir}">
<include name="**/web/**/*"/>
</classes>
<lib dir="${lib.dir}">
<include name="struts*.jar"/>
</lib>
<fileset dir="${build.web-meta.dir}">
<include name="WEB-INF/**/*"/>
<exclude name="WEB-INF/web.xml"/>
</fileset>
<fileset dir="${build.gen-webui.dir}">
<include name="**/*"/>
</fileset>
<fileset dir="${web.src.dir}">
<include name="**/*"/>
</fileset>
</war>
</target>
<!--
=================================================================== -->
<!-- Make ejb jar
-->
<!--
=================================================================== -->
<target name="ejb-jar" depends="compile-ejb" description="Make ejb jar
file">
<mkdir dir="${ejb.dir}"/>
<jar
jarfile="${ejb.jar.file}"
>
<fileset dir="${build.classes.dir}">
<include name="**/ejb/**/*"/>
<include name="**/interfaces/**/*"/>
</fileset>
<fileset dir="${build.ejb-meta.dir}"/>
</jar>
</target>
<!--
=================================================================== -->
<!-- Compile business logic
-->
<!--
=================================================================== -->
<target name="compile-ejb" depends="ejbdoclet" description="Compile
business logic (ejb)">
<javac
srcdir="${build.gen-src.dir}"
destdir="${build.classes.dir}"
classpathref="lib.class.path"
>
<include name="**/ejb/**/*"/>
<include name="**/interfaces/**/*"/>
</javac>
</target>
<!--
=================================================================== -->
<!-- Compile
-->
<!--
=================================================================== -->
<target name="compile-web" depends="webdoclet" description="Compile web">
<javac
srcdir="${build.gen-src.dir}"
destdir="${build.classes.dir}"
classpathref="lib.class.path"
>
<include name="**/web/**/*"/>
<include name="**/sql/**/*"/>
</javac>
</target>
<!--
=================================================================== -->
<!-- Compile business logic
-->
<!--
=================================================================== -->
<target name="compile-jdo" depends="jdodoclet" description="Compile
business logic (jdo)">
<javac
srcdir="${build.gen-src.dir}"
destdir="${build.classes.dir}"
classpathref="lib.class.path"
>
<include name="**/jdo/**/*"/>
</javac>
</target>
<!--
=================================================================== -->
<!-- Build
-->
<!--
=================================================================== -->
<target name="all" description="Build everything"
depends="ear,compile-jdo"/>
<!--
=================================================================== -->
<!-- Clean
-->
<!--
=================================================================== -->
<target name="clean" description="Clean all generated stuff">
<delete dir="${build.dir}"/>
</target>
<!--
=================================================================== -->
<!-- Brings up the hsqldb admin
-->
<!--
=================================================================== -->
<target name="hsqldb-gui" description="Brings up the hsqldb admin tool">
<property name="database.urlparams"
value="?user=${database.userid}&password=${database.password}"/>
<java
classname="org.hsqldb.util.DatabaseManager"
fork="yes"
classpath="${lib.dir}/hsqldb-1.7.1.jar;${database.driver.classpath}"
failonerror="true"
>
<arg value="-url"/>
<arg value="${database.url}${database.urlparams}"/>
<arg value="-driver"/>
<arg value="${database.driver}"/>
</java>
</target>
<!--
=================================================================== -->
<!-- generate a Clover html
-->
<!--
=================================================================== -->
<target name="clover">
<property name="cp" refid="lib.class.path"/>
<property name="cp2" value="${cp};${ant.home}/lib/clover.jar"/>
<java
classname="com.cortexeb.tools.clover.reporters.html.HtmlReporter"
fork="no"
classpath="${cp2}"
>
<arg line="-o ${build.dir}/clover -i
C:/temp/clover/demo_coverage.db -t 'Middlegen coverage'"/>
</java>
</target>
<!--
=================================================================== -->
<!-- Deploys ear
-->
<!--
=================================================================== -->
<target name="deploy-ear" depends="ear" description="Deploys ear file">
<copy file="${ear.file}" todir="${deploy.dir}"/>
</target>
</project>
-------------------------------------------------------
This SF.net email is sponsored by Dice.com.
Did you know that Dice has over 25,000 tech jobs available today? From
careers in IT to Engineering to Tech Sales, Dice has tech jobs from the
best hiring companies. http://www.dice.com/index.epl?rel_code=104
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user