Enhancement with ANT has been created by Donald Woods (May 18, 2009).

Content:

The following shows how to define a OpenJPA enhancer task and how to invoke the task in ANT.

First you'll need to compile the Entites. (Note: as a prereq to running the enhance task, I copied my persistence.xml file to my /build directory. You might not need to do this, but the persistence.xml has to be in the classpath.)

Next you'll need to configure the enhancer task and a classpath where the task can be found.

The final step is to call the enhance task. A snippet is provided below, but the entire project can be downloaded here.

<path id="jpa.enhancement.classpath">
            <pathelement location="bin"/>

            <!-- lib contains all of the jars that came with the OpenJPA binary download -->
            <fileset dir="lib">
                <include name="**/*.jar"/>
            </fileset>
        </path>


        <target name="enhance" depends="build">
        <!-- This is a bit of a hack, but I needed to copy the persistence.xml file from my src dir
            to the build dir when we run enhancement -->
        <copy includeemptydirs="false" todir="bin">
            <fileset dir="src" excludes="**/*.launch, **/*.java"/>
        </copy>


        <!-- define the openjpac task -->
        <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
            <classpath refid="jpa.enhancement.classpath"/>
        </taskdef>
            
        <!-- invoke enhancer the enhancer -->
        <openjpac>
            <classpath refid="jpa.enhancement.classpath"/>
        </openjpac>
        <echo message="Enhancing complete."/>
    </target>

Reply via email to