Hibernate 2 Object-Relational Database Mapping

Public Targets

TargetDescription
gen.hbmgenerate hibernate mappings
hbm.cplist hibernate classpath

Source: hibernate2.xml

				<?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="&lt;module&gt;&lt;java&gt;${module.name}-${module.version}.jar&lt;/java&gt;&lt;/module&gt;&lt;module&gt;&lt;har&gt;${module.name}-${module.version}.har&lt;/har&gt;&lt;/module&gt;"/>
	JBoss sar/cactus deployment:
	<property name="target.modules" value="&lt;module&gt;&lt;web&gt;&lt;web-uri&gt;cactus.war&lt;/web-uri&gt;&lt;context-root&gt;test&lt;/context-root&gt;&lt;/web&gt;&lt;/module&gt;&lt;module&gt;&lt;java&gt;${module.name}-${module.version}.jar&lt;/java&gt;&lt;/module&gt;&lt;module&gt;&lt;java&gt;${module.name}-${module.version}.sar&lt;/java&gt;&lt;/module&gt;"/>
	-->
	<!-- ===================================================================== -->
	<!-- 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&apos;T&apos;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>