All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.tsl2.nano.directaccess.2.5.3.source-code.reverse-eng.xml Maven / Gradle / Ivy

<?xml version="1.0" encoding="UTF-8"?>
<!-- This reverse engineering script provides targets for hibernate-tools and openjpa -->
<project name="reverse-eng" basedir="." default="create.bean.jar">
	<property file="jdbc-connection.properties"/>

	<property name="plugin.dir" value="${basedir}/.." />
	<property name="src.dir" value="generated-src" />
	<property name="bin.dir" value="generated-bin" />
	<property name="lib.dir" value="lib" />
	<property name="packagename" value="org.anonymous.project" />
	<property name="packagepath" value="org/anonymous/project" />
	<property name="bean.jar.path" value="${jdbc.database}.jar" />
	<property name="resources.dir" value="src/main/resources" />
	<property name="resources.db.dir" value="${resources.dir}/db" />
	<property name="server.db-config.file" value="jdbc-connection.properties" />
	<property name="schema" value="PUBLIC" />
	<property name="hibernate.reveng.xml" value="hibernate.reveng.xml" />

	<property file="${server.db-config.file}" />

	<!-- FALLBACK: generator to use:
		1. hibernate-tools: 'hibernate-tools'
		2. openjpa        : 'openjpa-reverse-eng' -->
	<property name="generator" value="hibernate-tools" />

	<!-- Hibernate properties -->
	<property name="hbm.conf.xml" value="${basedir}/hibernate.cfg.xml" />
	<!-- Environment -->
	<property environment="env" />

	<target name="mkdirs" description="create paths">
		<mkdir dir="${src.dir}" />
		<mkdir dir="${bin.dir}" />
		<mkdir dir="${lib.dir}" />
	</target>

	<target name="extract.plugin.libs" if="plugin_isjar">
		<!-- if it a jar-packed plugin in the eclipse dir, we unpack it -->
		<unjar src="${plugin.dir}" dest="." overwrite="false">
			<patternset includes="${lib.dir}/**" />
		</unjar>
	</target>
	<target name="copy.plugin.libs" unless="plugin_isjar">
		<!-- if it a jar-packed plugin in the eclipse dir, we unpack it -->
		<copy todir="${lib.dir}" overwrite="false">
			<fileset dir="${plugin.dir}" includes="**" />
		</copy>
	</target>
	<target name="init" depends="mkdirs" description="create paths and libs">
		<!-- only one of the following will be succeded -->
		<!-- <antcall target="extract.plugin.libs" /> -->
		<!-- <antcall target="copy.plugin.libs" /> -->
		<!-- compiler -->
		<path id="compiler.classpath" path="${env.java_home}/lib/tools.jar" />
		<path id="project.classpath">
			<path path="./" />
			<!-- to find resources like META-INF -->
			<path path="${bin.dir}" />
			<path refid="compiler.classpath" />
			<!-- <fileset dir="${plugin.dir}">
				<include name="**/*.jar" />
			</fileset> -->
			<fileset dir="${basedir}">
				<include name="**/*.jar" />
			</fileset>
		</path>
	</target>

	<target name="inithbm" depends="init">
		<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="project.classpath" />
	</target>

	<target name="hbm2ddl" depends="inithbm" description="create ddl statements">
		<hibernatetool destdir="${basedir}">
			<jdbcconfiguration packagename="${packagename}" revengfile="${hibernate.reveng.xml}" configurationfile="${hbm.conf.xml}" propertyfile="${server.db-config.file}" detectmanytomany="true" />
			<hbm2ddl export="false" outputfilename="${resources.db.dir}/bean.ddl" format="true" />
		</hibernatetool>
	</target>

	<target name="hbm2java" depends="inithbm" description="Create java-bean classes">
		<hibernatetool destdir="${basedir}">
			<jdbcconfiguration packagename="${packagename}" propertyfile="${server.db-config.file}" detectmanytomany="true" />
			<hbm2java destdir="${src.dir}" jdk5="true" ejb3="true" />
		</hibernatetool>
	</target>

	<target name="hbm2doc" depends="inithbm" description="create doc for database">
		<hibernatetool destdir="${basedir}">
			<jdbcconfiguration packagename="${packagename}" revengfile="${hibernate.reveng.xml}" propertyfile="${server.db-config.file}" detectmanytomany="true" />
			<hbm2doc destdir="doc/${jdbc.database}" />
		</hibernatetool>
	</target>

	<target name="hibernate-tools" depends="hbm2java">
		<antcall target="hbm2doc" />
	</target>

	<!-- ================================= 
          target: openjpa-reverse-engineering              
         ================================= -->
	<target name="openjpa-reverse-eng" depends="init">
		<!--		<taskdef name="reversemappingtool" classname="org.apache.openjpa.jdbc.ant.ReverseMappingToolTask" classpathref="project.classpath" />
		<reversemappingtool package="${packagename}" directory="${src.dir}" metadata="none" generateAnnotations="true">
			 <config propertiesFile="META-INF/persistence.xml" />
		</reversemappingtool> -->
		<antcall target="schematool" />
		<!-- do some project-specific WORKAROUNDs -->

		<!-- WORKAROUND END -->
		<antcall target="openjpa-reverse-engineering" />
	</target>

	<target name="openjpa-reverse-engineering">
		<exec executable="java">
			<arg value="-cp" />
			<arg value="*" />
			<arg value="org.apache.openjpa.jdbc.meta.ReverseMappingTool" />
			<arg value="-directory" />
			<arg value="generated-src" />
			<arg value="-accessType" />
			<arg value="fields" />
			<arg value="-useGenericCollections" />
			<arg value="true" />
			<arg value="-package" />
			<arg value="${packagename}" />
			<arg value="-metadata" />
			<arg value="none" />
			<arg value="-annotations" />
			<arg value="true" />
			<arg value="-innerIdentityClasses" />
			<arg value="false" />
			<arg value="-useBuiltinIdentityClass" />
			<arg value="false" />
			<arg value="-primaryKeyOnJoin" />
			<arg value="false" />
			<arg value="${schema}-schema.xml" />
		</exec>
	</target>

	<target name="schematool">
		<exec executable="java">
			<arg value="-cp" />
			<arg value="*" />
			<arg value="org.apache.openjpa.jdbc.schema.SchemaTool" />
			<arg value="-schema" />
			<arg value="${schema}" />
<!--			<arg value="-readSchema" />
			<arg value="true" />
			<arg value="-primaryKeys" />
			<arg value="true" /> -->
			<arg value="-a" />
			<arg value="reflect" />
			<arg value="-f" />
			<arg value="${schema}-schema.xml" />
		</exec>
	</target>

	<!-- ================================= 
          target: create.bean.jar              
         ================================= -->
	<target name="create.bean.jar" depends="init" description="Create jar-file with bean classes">
		<property name="dest.file" value="${bean.jar.path}" />
		<antcall target="${generator}" />
		<!-- hbm2java or openjpa-reverse-eng -->
		<echo message="compiler-path: ${env.java_home}" />

		<!-- do some project-specific WORKAROUNDs -->
	    <!--   <replaceregexp>
	            <fileset dir="${src.dir}"><include name="**/*.java"/></fileset>
	            <regexp pattern="@Version"/>
	            <substitution expression="//@Version"/>
	        </replaceregexp> -->
		<!-- WORKAROUND END -->
		<javac classpathref="project.classpath" srcdir="${src.dir}" destdir="${bin.dir}" fork="true" failonerror="true" />

		<!-- check, if any class file was created (while jar.whenempty doesn't seem to work) -->
		<available property="compiled.successful" type="dir" file="${bin.dir}/${packagepath}" />
		<fail unless="compiled.successful" />

		<jar destfile="${dest.file}" whenempty="fail">
			<fileset dir="${bin.dir}">
				<include name="**" />
			</fileset>
		</jar>
	</target>

</project>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy