-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 
Author Message
 Post subject: build.xml:217: taskdef class net.sf.hibernate.tool.hbm2java.
PostPosted: Mon Aug 09, 2004 2:47 pm 
Newbie

Joined: Fri Aug 06, 2004 4:24 pm
Posts: 3
Hibernate version: middlegen-r5

Mapping documents:
<?xml version="1.0"?>

<!--
This is a testing platform for the middlegen hibernate plugin. It is a stripped
down version of the samples application. At the moment it is only concerned
with the generation of the mapping documents so that various tests etc can be
done on the generated package.

David Channon


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.

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/mssql.xml">
]>


<project name="Middlegen Hibernate" default="all" basedir=".">

<!-- project name="Middlegen Hibernate" default="all" basedir="." -->

<property file="${basedir}/build.properties"/>
<property name="name" value="airline"/>

<!-- 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="gui" value="true"/>

<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.classes.dir" value="${build.dir}/classes"/>

&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}/.."-->
<fileset dir="${basedir}/middlegen-lib">
<include name="*.jar"/>
</fileset>
</path>

<target name="init">
<available property="xdoclet1.2+" classname="xdoclet.modules.hibernate.HibernateDocletTask" 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.
</fail>
</target>

<!-- =================================================================== -->
<!-- Create tables -->
<!-- =================================================================== -->
<target
name="create-tables"
depends="init,fail-if-no-xdoclet-1.2,check-driver-present,panic-if-driver-not-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 Middlegen -->
<!-- =================================================================== -->
<target
name="middlegen"
description="Run Middlegen"
unless="middlegen.skip"
depends="init,fail-if-no-xdoclet-1.2,check-driver-present,panic-if-driver-not-present"
>
<mkdir dir="${build.gen-src.dir}"/>

<echo message="Class path = ${basedir}"/>
<taskdef
name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="lib.class.path"
/>

<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
providerURL="${java.naming.provider.url}"
driver="${database.driver}"
schema="${database.schema}"
catalog="${database.catalog}"
username="${database.userid}"
password="${database.password}"


>

<!--
We can specify what tables we want Data generated for.
If none are specified, Data will be generated for all tables.
Comment out the <table> elements if you want to generate for all tables.
Also note that table names are CASE SENSITIVE for certain databases,
so on e.g. Oracle you should specify table names in upper case.
-->
<!--table generate="true" name="flights" pktable="flights_pk"/>
<table name="reservations"/-->

<!--
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-->


<!-- Plugins - Only Hibernate Plugin has been included with this special distribution -->

<!--
If you want to generate XDoclet markup for hbm2java to include in the POJOs then
set genXDocletTags to true. Also, composite keys are generated as external classes which is
recommended. If you wish to keep them internal then set genIntergratedCompositeKeys to true.
Since r4 the ability to customise the selection of JavaTypes is now provided. The is a
recommended type mapper provided as shown. It is optional - if not provided then Middlegen
itself will select the Java mapping (as it did previously).
These settings are optional thus if they are not define here values default to false.
-->
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
genXDocletTags="false"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>

</middlegen>

<mkdir dir="${build.classes.dir}"/>
</target>

<!-- =================================================================== -->
<!-- Compile business logic (hibernate) -->
<!-- =================================================================== -->
<target name="compile-hibernate" depends="middlegen" description="Compile hibernate Business Domain Model">
<javac
srcdir="${build.gen-src.dir}"
destdir="${build.classes.dir}"
classpathref="lib.class.path"
>
<include name="**/hibernate/**/*"/>
</javac>
</target>

<!-- =================================================================== -->
<!-- Run hbm2java depends="middlegen" -->
<!-- =================================================================== -->
<taskdef
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="lib.class.path"
/>
<target name="hbm2java" description="Generate .java from .hbm files.">


<hbm2java output="${build.gen-src.dir}">
<fileset dir="${build.gen-src.dir}">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</target>

<!-- =================================================================== -->
<!-- Build everything -->
<!-- =================================================================== -->
<target name="all" description="Build everything" depends="compile-hibernate"/>

<!-- =================================================================== -->
<!-- Clean everything -->
<!-- =================================================================== -->
<target name="clean" description="Clean all generated stuff">
<delete dir="${build.dir}"/>
</target>

<!-- =================================================================== -->
<!-- Brings up the hsqldb admin tool -->
<!-- =================================================================== -->
<target name="hsqldb-gui" description="Brings up the hsqldb admin tool">
<property name="database.urlparams" value="?user=${database.userid}&amp;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>

<!-- ==================================================================== -->
<!-- Validate the generated xml mapping documents -->
<!-- ==================================================================== -->
<target name="validate">
<xmlvalidate failonerror="no" lenient="no" warn="yes">
<fileset dir="${build.gen-src.dir}/airline/hibernate" includes="*.xml" />
</xmlvalidate>
</target>

</project>



Code between sessionFactory.openSession() and session.close():

Full stack trace of any exception that occurs:

Name and version of the database you are using:SqlServer

Debug level Hibernate log excerpt:

It appears that the Hbm2Java class is missing? See the console ouput from my ant task.

I ran middlegen previously and it created 5 hbm.xml files. When i exit out of middlegen nothing else happens. So i ran the hbm2java ant command task...

Am i missing something? I looked in all of the jar files I have and I don't see the class in there.

C:\middlegen>ant hbm2java
Buildfile: build.xml

hbm2java:

BUILD FAILED
C:\middlegen\build.xml:217: taskdef class net.sf.hibernate.tool.hbm2java.Hbm2J
aTask cannot be found

Total time: 1 second


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 09, 2004 2:51 pm 
Newbie

Joined: Fri Aug 06, 2004 4:24 pm
Posts: 3
i made a cut and paste error the hb2java section of my build.xml file is actually this:

Code:
   <target name="hbm2java" 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>



I still get the error. In the original posting i was messing around with the build.xml file trying to get it to work and find the Hbm2javaTask


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 09, 2004 3:39 pm 
Newbie

Joined: Fri Aug 06, 2004 4:24 pm
Posts: 3
I resolved the issue. there were some missing .jar files that were missing. I just redownloaded.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 09, 2004 9:12 pm 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 7:19 pm
Posts: 2364
Location: Brisbane, Australia
I don't supply hibernate or the extensions library jars with the R5 (or earlier) releases. I have assumed that you would have them already and it makes the package smaller. Maybe I should include them. What do people think?


Top
 Profile  
 
 Post subject: Include Jars
PostPosted: Tue Aug 10, 2004 8:24 pm 
Newbie

Joined: Sat Apr 24, 2004 6:25 pm
Posts: 14
Location: Rochester, NY
Yes, the jars should be included. The extra time of the download is significantly smaller than trying to figure out how to fix it. I would rather the jars be included and worked out of the box.

Ben


Top
 Profile  
 
 Post subject:
PostPosted: Sun Aug 29, 2004 12:19 am 
Newbie

Joined: Thu Aug 12, 2004 6:00 am
Posts: 1
I can't agree more!
It's more convenient for users to download the main jar and extension jars together.
david wrote:
I don't supply hibernate or the extensions library jars with the R5 (or earlier) releases. I have assumed that you would have them already and it makes the package smaller. Maybe I should include them. What do people think?


Top
 Profile  
 
 Post subject:
PostPosted: Sun Aug 29, 2004 4:27 am 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 7:19 pm
Posts: 2364
Location: Brisbane, Australia
OK [assuming I remember] R6 will include the latest Hibernate (stable) release jars and extensions [but only enough libs to generate the Java POJO using hbm2java]


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.