Discussion:
[Middlegen-user] MiddlegenPopulator 256 ) WARNING: Middlegen couldn't find any relations ...
Ray Tayek
2004-03-23 22:20:08 UTC
Permalink
Hi,I have successfully reversed 4 database using middlegen (thank you very
much). But none of then had any relaions (using mysql 3). We put some into a
test databse. Running the ant script (the one that cam with the middlegen
sample that I hacked up to just do reversing - see below) works find when
run under *eclipse* - I get a Set in my java class!

But when I try to run the same script from the command line. I get the 256
(see below). Running the ant script under eclipse also is a lot more verbose
(see below), so maybe eclipse is doing something strange or I am forgetting
to define some property from the command line. Can't figure out how to turn
on debug or verbose from inside ant so I'm sorta lost. Maybe someone else
has experienced something similar?

Any pointer will be appreciated.

Thanks

Ant output from command line with -verbose and -debug (fails with a 256):

Detected Java version: 1.3 in: /usr/local/jdk1.3.1_04/jre
Detected OS: Linux
parsing buildfile build.xml with URI =
file:/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/build.xml
Project base dir set to: /Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples
[property] Loading
/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/build.properties
[property] Unable to find property file:
/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/build.properties
resolving systemId: file:./config/database/mysql.xml
Build sequence for target `hbm2java' is [init, fail-if-no-xdoclet-1.2,
check-driver-present, panic-if-driver-not-present, middlegen, hbm2java]
Complete build sequence is [init, fail-if-no-xdoclet-1.2,
check-driver-present, panic-if-driver-not-present, middlegen, hbm2java,
setproxy, download-deps, clean, jdodoclet, all, compile-jdo]

init:
[echo] /Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/lib

fail-if-no-xdoclet-1.2:
Skipped because property 'xdoclet1.2+' set.

check-driver-present:
[available] Found file: lib/mysql-connector-java-3.0.0-beta-bin.jar

panic-if-driver-not-present:
Skipped because property 'driver.present' set.

middlegen:
Property ${gui} has not been set
[middlegen] Database URL:jdbc:mysql://204.1.213.186/fkey_test
Property ${java.naming.factory.initial} has not been set
Property ${java.naming.provider.url} has not been set
[middlegen] No <table> elements specified. Reading all tables. This might
take a while...
[middlegen] (middlegen.MiddlegenPopulator 256 ) WARNING: Middlegen
couldn't find any relations between any tables. This may be intentional from
the design of the database, but it may also be because you have incorrectly
defined the relationships. It could also be because the JDBC driver you're
using doesn't correctly implement DatabaseMetaData. See the samples (for an
example on how to define relationships) and verify that your driver
correctly implements DatabaseMetaData.
[middlegen] Updated preferences in
/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/src/fkey_test-prefs.prope
rties

hbm2java:
[hbm2java] Processing 2 files.
[hbm2java] Building hibernate objects

BUILD SUCCESSFUL
Total time: 5 seconds

Ant output when run from eclipse (works fine):

Buildfile: U:\projects\mg1\middlegen-2.0-vo\samples\build.xml

init:
[echo] U:\projects\mg1\middlegen-2.0-vo\samples/lib

fail-if-no-xdoclet-1.2:

check-driver-present:

panic-if-driver-not-present:

middlegen:
[mkdir] Created dir:
U:\projects\mg1\middlegen-2.0-vo\samples\build\gen-src
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
simple->middlegen.Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
java->middlegen.javax.JavaPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
plugin->middlegen.Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
bmp20->middlegen.plugins.entitybean.BMP20Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
cmp20->middlegen.plugins.entitybean.CMP20Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
hibernate->middlegen.plugins.hibernate.HibernatePlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
html->middlegen.plugins.html.HTMLReportPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
sunjdo10->middlegen.plugins.jdo.sun.SunJDO10Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
servlet->middlegen.plugins.servlet.ServletPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
struts->middlegen.plugins.struts.StrutsPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
jsp->middlegen.plugins.struts.JspPlugin
[middlegen] Database URL:jdbc:mysql://204.1.213.186/fkey_test
[middlegen] No <table> elements specified. Reading all tables. This might
take a while...
[middlegen] (middlegen.Middlegen 396 ) Validating html
[middlegen] (middlegen.Middlegen 396 ) Validating
hibernate
[middlegen] (middlegen.Middlegen 414 ) Invoking plugin
html
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\index.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/index.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\child.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\parent.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\toc.html using template
from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/toc.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\all-tables.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/all-tables.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\child.txt using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table-txt.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\parent.txt using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table-txt.vm
[middlegen] (middlegen.Middlegen 414 ) Invoking plugin
hibernate
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\gen-src\fkey_test\hibernate\C
hild.hbm.xml using template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-hibernate-plugin-2.0-vo.
jar!/middlegen/plugins/hibernate/hibernate.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\gen-src\fkey_test\hibernate\P
arent.hbm.xml using template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-hibernate-plugin-2.0-vo.
jar!/middlegen/plugins/hibernate/hibernate.vm
[middlegen] Updated preferences in
U:\projects\mg1\middlegen-2.0-vo\samples\src\fkey_test-prefs.properties
[mkdir] Created dir:
U:\projects\mg1\middlegen-2.0-vo\samples\build\classes

hbm2java:
[hbm2java] Processing 2 files.
[hbm2java] Building hibernate objects
BUILD SUCCESSFUL
Total time: 20 seconds


Hacked up ant script to just do reversing (mostly I just removed stuff that
appeared to have nothing to do with reversing):

<?xml version="1.0"?>
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/mysql.xml">
]>
<!-- this is a hacked up copy of the original build file
it should reverse a database when you build the hbm2java target
-->
<project name="mg1" default="all" basedir=".">
<property file="${basedir}/build.properties"/>
<property name="name" value="fkey_test"/>
<property name="unique.name" value="${name}.uniq"/>
<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="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;

<!-- 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">
<echo message="${lib.dir}"/>
<available property="xdoclet1.2+"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="lib.class.path"/>
</target>

<!-- ===================================================================
-->
<!-- Fails if XDoclet 1.2.x is not on classpath
-->
<!-- ===================================================================
-->
<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>
<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>
<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}">
<!--sunjdo10 destination="${build.gen-src.dir}"
package="${name}.jdo"/-->
<html destination="${build.html.dir}">
<!--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="RESERVATIONS"/>
<table name="PERSONS"/>
</fileproducer>
</simple-->
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/>
</middlegen>
<mkdir dir="${build.classes.dir}"/>
</target>
<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>
<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>
<target name="all" description="Build everything" depends="init"/>
<target name="clean" description="Clean all generated stuff">
<delete dir="${build.dir}"/>
</target>
<target name="hbm2java" depends="middlegen" description="Generate
.java from .hbm files.">
<taskdef
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="lib.class.path"
/>

<hbm2java output="${build.gen-src.dir}">
<fileset dir="${build.gen-src.dir}">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</target>
</project>
Eivind Waaler
2004-03-24 07:37:06 UTC
Permalink
That is weird. I guess Eclipse sets some more classpath than what the
build script does.

The logging can be enabled from command line as well, just make sure the
log4j.properties is found in classpath.

This does not explain why it works from Eclipse, but I would think there
is a difference in the classpath. Maybe Eclipse sets a different jdbc
driver somehow? Anyway reading relationships should work fine when running
from command line.

.eivind
Post by Ray Tayek
Hi,I have successfully reversed 4 database using middlegen (thank you very
much). But none of then had any relaions (using mysql 3). We put some into a
test databse. Running the ant script (the one that cam with the middlegen
sample that I hacked up to just do reversing - see below) works find when
run under *eclipse* - I get a Set in my java class!
But when I try to run the same script from the command line. I get the 256
(see below). Running the ant script under eclipse also is a lot more verbose
(see below), so maybe eclipse is doing something strange or I am forgetting
to define some property from the command line. Can't figure out how to turn
on debug or verbose from inside ant so I'm sorta lost. Maybe someone else
has experienced something similar?
Any pointer will be appreciated.
Thanks
Detected Java version: 1.3 in: /usr/local/jdk1.3.1_04/jre
Detected OS: Linux
parsing buildfile build.xml with URI =
file:/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/build.xml
Project base dir set to: /Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples
[property] Loading
/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/build.properties
/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/build.properties
resolving systemId: file:./config/database/mysql.xml
Build sequence for target `hbm2java' is [init, fail-if-no-xdoclet-1.2,
check-driver-present, panic-if-driver-not-present, middlegen, hbm2java]
Complete build sequence is [init, fail-if-no-xdoclet-1.2,
check-driver-present, panic-if-driver-not-present, middlegen, hbm2java,
setproxy, download-deps, clean, jdodoclet, all, compile-jdo]
[echo] /Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/lib
Skipped because property 'xdoclet1.2+' set.
[available] Found file: lib/mysql-connector-java-3.0.0-beta-bin.jar
Skipped because property 'driver.present' set.
Property ${gui} has not been set
[middlegen] Database URL:jdbc:mysql://204.1.213.186/fkey_test
Property ${java.naming.factory.initial} has not been set
Property ${java.naming.provider.url} has not been set
[middlegen] No <table> elements specified. Reading all tables. This might
take a while...
[middlegen] (middlegen.MiddlegenPopulator 256 ) WARNING: Middlegen
couldn't find any relations between any tables. This may be intentional from
the design of the database, but it may also be because you have incorrectly
defined the relationships. It could also be because the JDBC driver you're
using doesn't correctly implement DatabaseMetaData. See the samples (for an
example on how to define relationships) and verify that your driver
correctly implements DatabaseMetaData.
[middlegen] Updated preferences in
/Z/Users/ray/projects/mg1/middlegen-2.0-vo/samples/src/fkey_test-prefs.prope
rties
[hbm2java] Processing 2 files.
[hbm2java] Building hibernate objects
BUILD SUCCESSFUL
Total time: 5 seconds
Buildfile: U:\projects\mg1\middlegen-2.0-vo\samples\build.xml
[echo] U:\projects\mg1\middlegen-2.0-vo\samples/lib
U:\projects\mg1\middlegen-2.0-vo\samples\build\gen-src
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
simple->middlegen.Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
java->middlegen.javax.JavaPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
plugin->middlegen.Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
bmp20->middlegen.plugins.entitybean.BMP20Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
cmp20->middlegen.plugins.entitybean.CMP20Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
hibernate->middlegen.plugins.hibernate.HibernatePlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
html->middlegen.plugins.html.HTMLReportPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
sunjdo10->middlegen.plugins.jdo.sun.SunJDO10Plugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
servlet->middlegen.plugins.servlet.ServletPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
struts->middlegen.plugins.struts.StrutsPlugin
[middlegen] (middlegen.Middlegen 352 ) Registering plugin
jsp->middlegen.plugins.struts.JspPlugin
[middlegen] Database URL:jdbc:mysql://204.1.213.186/fkey_test
[middlegen] No <table> elements specified. Reading all tables. This might
take a while...
[middlegen] (middlegen.Middlegen 396 ) Validating html
[middlegen] (middlegen.Middlegen 396 ) Validating
hibernate
[middlegen] (middlegen.Middlegen 414 ) Invoking plugin
html
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\index.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/index.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\child.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\parent.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\toc.html using template
from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/toc.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\all-tables.html using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/all-tables.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\child.txt using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table-txt.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\html\tables\parent.txt using
template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-html-plugin-2.0-vo.jar!/
middlegen/plugins/html/single-table-txt.vm
[middlegen] (middlegen.Middlegen 414 ) Invoking plugin
hibernate
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\gen-src\fkey_test\hibernate\C
hild.hbm.xml using template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-hibernate-plugin-2.0-vo.
jar!/middlegen/plugins/hibernate/hibernate.vm
[middlegen] (middlegen.FileProducer 404 ) Generating
U:\projects\mg1\middlegen-2.0-vo\samples\build\gen-src\fkey_test\hibernate\P
arent.hbm.xml using template from
jar:file:U:\projects\mg1\middlegen-2.0-vo\middlegen-hibernate-plugin-2.0-vo.
jar!/middlegen/plugins/hibernate/hibernate.vm
[middlegen] Updated preferences in
U:\projects\mg1\middlegen-2.0-vo\samples\src\fkey_test-prefs.properties
U:\projects\mg1\middlegen-2.0-vo\samples\build\classes
[hbm2java] Processing 2 files.
[hbm2java] Building hibernate objects
BUILD SUCCESSFUL
Total time: 20 seconds
Hacked up ant script to just do reversing (mostly I just removed stuff that
<?xml version="1.0"?>
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/mysql.xml">
]>
<!-- this is a hacked up copy of the original build file
it should reverse a database when you build the hbm2java target
-->
<project name="mg1" default="all" basedir=".">
<property file="${basedir}/build.properties"/>
<property name="name" value="fkey_test"/>
<property name="unique.name" value="${name}.uniq"/>
<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="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;
<!-- 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">
<echo message="${lib.dir}"/>
<available property="xdoclet1.2+"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="lib.class.path"/>
</target>
<!-- ===================================================================
-->
<!-- Fails if XDoclet 1.2.x is not on classpath
-->
<!-- ===================================================================
-->
<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
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>
<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>
<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}">
<!--sunjdo10 destination="${build.gen-src.dir}"
package="${name}.jdo"/-->
<html destination="${build.html.dir}">
<!--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="RESERVATIONS"/>
<table name="PERSONS"/>
</fileproducer>
</simple-->
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/>
</middlegen>
<mkdir dir="${build.classes.dir}"/>
</target>
<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}"
<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>
<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>
<target name="all" description="Build everything" depends="init"/>
<target name="clean" description="Clean all generated stuff">
<delete dir="${build.dir}"/>
</target>
<target name="hbm2java" depends="middlegen" description="Generate
.java from .hbm files.">
<taskdef
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="lib.class.path"
/>
<hbm2java output="${build.gen-src.dir}">
Ray Tayek
2004-03-27 22:58:07 UTC
Permalink
-----Original Message-----
Of Eivind Waaler
Sent: Wednesday, March 24, 2004 1:36 AM
Subject: Re: [Middlegen-user] MiddlegenPopulator 256 )
WARNING: Middlegen couldn't find any relations ...
That is weird. I guess Eclipse sets some more classpath ...
The logging can be enabled from command line as well,...
This does not explain why it works from Eclipse, ....
I found the way to turn on verbose and debug from eclipse. it's on the ant
lauch config page, so I will be able to finger it out.

Thanks
Hi,I have successfully reversed 4 database using middlegen ...
works find when run under *eclipse* - I get a Set in my java
class!
But when I try to run the same script from the command
line. I get the 256 ...
Loading...