| Target | Description |
|---|
| gen.hbm | generate hibernate mappings |
| hbm.cp | list hibernate classpath |
<?xml version="1.0" encoding="UTF-8"?>
<project name="hibernate">
<description>
+ ==\_/============J=A=V=A=G=E=N===A=N=T===M=O=D=U=L=E=S================= +
+ \(_)/ +
+ -(_)- Hibernate 2 Object-Relational Database Mapping +
+ /(_)\ +
+ ======================================================================= +
+ Copyright (c) 2002-2005 Outsource Cafe, Inc. All rights reserved. +
+ ======================================================================= +
+
+ Import this module for creating Hibernate jar distributions.
+ This file defines generic targets for xdoclet hibernate code generation,
+ compilation, distribution creation, and clean up.
+ This file implements standard targets for module building.
+
+ Targets: gen.hbm
+
+ Prerequisite imports:
+ props-global.xml, classpath.xml, appserver-X.xml
+
+ developer: RichardEasterling@OutsourceCafe.com
+ ======================================================================= +
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ =J=A=M===========================================J=A=V=A=G=E=N=.=C=O=M= +
</description>
<property name="HIBERNATE.PRESENT" value="true"></property>
<!-- ===================================================================== -->
<!-- public targets - override as needed -->
<!-- ===================================================================== -->
<target name="gen.hbm" depends="hbm.doclet, hbm.xsl, hbm.v, hbm.tstamp" description="generate hibernate mappings"></target>
<!-- ===================================================================== -->
<!-- public properties -->
<!-- ===================================================================== -->
<property name="hibernate.home" location="${env.HIBERNATE_HOME}"></property>
<property name="hibernate.properties" location="${hibernate.home}/etc/hibernate.properties"></property>
<!--
<property name="hibernate.properties" location="${basedir}/hibernate.properties"/>
-->
<!-- ===================================================================== -->
<!-- example application.xml deployments for various hibernate configs -->
<!-- ===================================================================== -->
<!--
JBoss har deployment:
<property name="target.modules" value="<module><java>${module.name}-${module.version}.jar</java></module><module><har>${module.name}-${module.version}.har</har></module>"/>
JBoss sar/cactus deployment:
<property name="target.modules" value="<module><web><web-uri>cactus.war</web-uri><context-root>test</context-root></web></module><module><java>${module.name}-${module.version}.jar</java></module><module><java>${module.name}-${module.version}.sar</java></module>"/>
-->
<!-- ===================================================================== -->
<!-- sanity checks -->
<!-- ===================================================================== -->
<fail unless="PROPS-GLOBAL.PRESENT" message="props-global.xml must be imported before hibernate.xml in build file."></fail>
<fail unless="CLASSPATH.PRESENT" message="classpath.xml must be imported before hibernate.xml in build file. Regeneration of classpath.xml required when upgrading to JAM 2.1. Type: maven jam"></fail>
<!-- ===================================================================== -->
<!-- local properties -->
<!-- ===================================================================== -->
<property name="hibernate.version" value="2.0"></property>
<property name="hibernate.java.includes" value="**/*.java"></property>
<property name="hibernate.map.ext" value="hbm.xml"></property>
<property name="hibernate.map.includes" value="**/*.${hibernate.map.ext}"></property>
<property name="hibernate.map.dir" location="${xdoclet.build.dir}/mappings"></property>
<property name="hibernate.ddl.file" location="${dist.dir}/schema-export.sql"></property>
<property name="hibernate.table.create" value="true"></property>
<property name="hibernate.table.remove" value="true"></property>
<property name="hibernate.table.update" value="false"></property>
<property name="hibernate.transaction.manager" value="net.sf.hibernate.transaction.JBossTransactionManagerLookup"></property>
<property name="hibernate.transaction" value="net.sf.hibernate.transaction.JTATransactionFactory"></property>
<property name="hibernate.user.transaction" value="java:/UserTransaction"></property>
<property name="hibernate.jndi.name" value="java:/hibernate/SessionFactory"></property>
<property name="hibernate.service.name" value="SystemHibernateSessionFactory"></property>
<property name="hibernate.dialect" value="net.sf.hibernate.dialect.HSQLDialect"></property>
<property name="hibernate.datasource" value="java:/DefaultDS"></property>
<!-- com.mysql.jdbc.Driver, org.hsqldb.jdbcDriver -->
<property name="hibernate.driver" value="org.hsqldb.jdbcDriver"></property>
<!-- jdbc:hsqldb:test, jdbc:mysql:///test -->
<property name="hibernate.jdbc.url" value="jdbc:hsqldb:test"></property>
<property name="hibernate.username" value="sa"></property>
<property name="hibernate.password" value=""></property>
<property name="hibernate.show.sql" value="true"></property>
<xmlcatalog id="hibernate.catalog">
<!-- fixme: could not seem to use dtds from the hibernate.jar
<dtd publicID="-//Hibernate/Hibernate Mapping DTD 2.0//EN" location="net/sf/hibernate/hibernate-mapping-2.0.dtd"/>
<dtd publicID="-//Hibernate/Hibernate Configuration DTD 2.0//EN" location="net/sf/hibernate/hibernate-configuration-2.0.dtd"/>
-->
<dtd publicID="-//Hibernate/Hibernate Mapping DTD 2.0//EN" location="file:///${maven.repo}/hibernate/dtds/hibernate-mapping-2.0.dtd"></dtd>
<dtd publicID="-//Hibernate/Hibernate Configuration DTD 2.0//EN" location="file:///${maven.repo}/hibernate/dtds/hibernate-configuration-2.0.dtd"></dtd>
</xmlcatalog>
<property name="gen.hibernate.uptodate.file" location="${xdoclet.build.dir}/hibernate-uptodate.txt"></property>
<!--=====================================================================-->
<!-- hibernate classpath-->
<!--=====================================================================-->
<path id="hibernate.classpath">
<path refid="build.classpath"></path>
<pathelement location="${hibernate.home}/hibernate2.jar"></pathelement>
<!--
<fileset dir="${hibernate.home}/lib">
<include name="*.jar"/>
</fileset>
-->
</path>
<target name="hbm.cp" description="list hibernate classpath">
<pathconvert pathsep="${CR}" refid="hibernate.classpath" property="hibernate.classpath.list"></pathconvert>
<echo message="+ hibernate.classpath======================================== +"></echo>
<echo message="${hibernate.classpath.list}"></echo>
</target>
<!-- =================================================================== -->
<!-- uptodate compares java source to ${gen.hibernate.uptodate.file} -->
<!-- =================================================================== -->
<target name="hbm.doclet.uptodate">
<uptodate property="hbmdoclet-uptodate" targetfile="${gen.hibernate.uptodate.file}">
<srcfiles dir="${src.java.dir}"></srcfiles>
<srcfiles dir="${gen.java.dir}"></srcfiles>
</uptodate>
<echo>hbmdoclet-uptodate = ${hbmdoclet-uptodate}</echo>
</target>
<!-- =================================================================== -->
<!-- hibernatedoclettargets for building O-R mappings -->
<!-- =================================================================== -->
<target name="hbm.doclet" unless="hbmdoclet-uptodate" depends="hbm.doclet.uptodate">
<taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="xdoclet.classpath"></taskdef>
<hibernatedoclet destdir="${hibernate.map.dir}" excludedtags="${xdoclet.excludedtags}" force="${xdoclet.force}" mergedir="${xdoclet.merge.dir}" verbose="${xdoclet.verbose}">
<fileset dir="${src.java.dir}">
<include name="${hibernate.java.includes}"></include>
</fileset>
<fileset dir="${gen.java.dir}">
<include name="${hibernate.java.includes}"></include>
</fileset>
<hibernate version="${hibernate.version}"></hibernate>
<!-- XDoclet 1.2.1
<hibernatecfg
dialect="${hibernate.dialect}"
driver="${hibernate.dialect}"
jdbcUrl="${hibernate.jdbc.url}"
userName="${hibernate.username}"
password="${hibernate.password}"/>
-->
<jbossservice showSql="${hibernate.show.sql}" destdir="${hibernate.map.dir}/META-INF" transactionManagerStrategy="${hibernate.transaction.manager}" transactionStrategy="${hibernate.transaction}" userTransactionName="${hibernate.user.transaction}" jndiname="${hibernate.jndi.name}" servicename="${hibernate.service.name}" dialect="${hibernate.dialect}" datasource="${hibernate.datasource}"></jbossservice>
</hibernatedoclet>
</target>
<!-- =================================================================== -->
<!-- call after successful mapping generation -->
<!-- =================================================================== -->
<target name="hbm.tstamp">
<tstamp>
<format property="gen_hibernate_timestamp" pattern="yyyy-MM-dd'T'HH-mm-ss"></format>
</tstamp>
<echo file="${gen.hibernate.uptodate.file}" message="gen.hibernate.timestamp=${gen_hibernate_timestamp}"></echo>
</target>
<!-- =================================================================== -->
<!-- Post-proccess Hibernate mapping file -->
<!-- =================================================================== -->
<target name="hbm.xsl" unless="hbmdoclet-uptodate" depends="hbm.doclet.uptodate">
<delete>
<fileset dir="${hibernate.map.dir}" includes="**/*.temp"></fileset>
</delete>
<xslt basedir="${hibernate.map.dir}" destdir="${hibernate.map.dir}" includes="**/*.${hibernate.map.ext}" style="${jam.home}/xsl/hibernateMappingFix.xsl" extension=".temp" classpathref="hibernate.classpath">
<xmlcatalog refid="hibernate.catalog"></xmlcatalog>
</xslt>
<move todir="${hibernate.map.dir}">
<fileset dir="${hibernate.map.dir}" includes="**/*.temp"></fileset>
<mapper type="glob" from="*.hbm.temp" to="*.${hibernate.map.ext}"></mapper>
</move>
</target>
<!-- =================================================================== -->
<!-- validate mapping files -->
<!-- =================================================================== -->
<target name="hbm.v" unless="hbmdoclet-uptodate" depends="hbm.doclet.uptodate">
<xmlvalidate warn="true" classpathref="hibernate.classpath">
<fileset dir="${hibernate.map.dir}" includes="**/*.${hibernate.map.ext}"></fileset>
<xmlcatalog refid="hibernate.catalog"></xmlcatalog>
</xmlvalidate>
</target>
<!-- =================================================================== -->
<!-- exports hibernate schema from mapping file -->
<!-- =================================================================== -->
<target name="hbm2ddl">
<taskdef name="schemaexport" classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="hibernate.classpath"></taskdef>
<mkdir dir="${dist.dir}"></mkdir>
<schemaexport properties="${hibernate.properties}" quiet="no" text="no" drop="no" delimiter=";" output="${hibernate.ddl.file}">
<fileset dir="${hibernate.map.dir}">
<include name="${hibernate.map.includes}"></include>
</fileset>
</schemaexport>
</target>
<!-- =================================================================== -->
<!-- JBoss sar distribution -->
<!-- =================================================================== -->
<target name="hbm.sar">
<mkdir dir="${dist.dir}"></mkdir>
<jar jarfile="${dist.dir}/${module.name}-${module.version}.sar">
<fileset dir="${hibernate.map.dir}" includes="${hibernate.map.includes},META-INF/jboss-service.xml"></fileset>
</jar>
</target>
<!-- =================================================================== -->
<!-- JBoss har distribution -->
<!-- =================================================================== -->
<target name="hbm.har">
<mkdir dir="${dist.dir}"></mkdir>
<jar jarfile="${dist.dir}/${module.name}-${module.version}.har">
<fileset dir="${hibernate.map.dir}" includes="${hibernate.map.includes},META-INF/hibernate-service.xml"></fileset>
</jar>
</target>
<!-- =================================================================== -->
<!-- schemaexport -->
<!-- ===================================================================
<fileset dir="${xdoclet.build.dir}" includes="META-INF/jboss-service.xml"/>
<target name="schemaexport">
<schemaexport properties="hibernate.properties" output="schema-export.sql" quiet="no" text="no" drop="no" delimiter=";">
<fileset dir="src">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaexport>
</target>
-->
<!-- The minumal project.xml resources for Hibernate:
<build>
<sourceDirectory>src/java</sourceDirectory>
<resources>
<resource>
<directory>src/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src-gen/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>target/xdoclet</directory>
<includes>
<include>META-INF/*</include>
</includes>
</resource>
</resources>
</build>
-->
</project>