| <!--/******************************************************************************* |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 |
| * which accompanies this distribution. |
| * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| * and the Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * Rick Curtis- initial API and implementation |
| #******************************************************************************/--> |
| <project name="eclipselink.jpa.test.jse" default="test" basedir="."> |
| <property name="jse.el.root" value="${basedir}/../.."/> |
| <property name="jse.jpa.root" value="${basedir}/.."/> |
| |
| <property name="jse.src.dir" value="${basedir}/src"/> |
| <property name="jse.classes.dir" value="${basedir}/classes" /> |
| <!-- Use common property name to allow override --> |
| <property name="reports.dir" value="${basedir}/reports" /> |
| |
| <property name="jse.el.plugins.dir" value="${jse.el.root}/plugins"/> |
| <property name="jse.jpa.plugins.dir" value="${jse.jpa.root}/plugins"/> |
| |
| <!-- Not sure if there is a better way to refer to dependencies? --> |
| <property name="jse.eclipselink.jar" value="${jse.el.root}/eclipselink.jar"/> |
| <property name="javax.transaction" value="${jse.el.plugins.dir}/javax.transaction_1.1.0.v201002051055.jar"/> |
| <property name="javax.validation" value="${jse.el.plugins.dir}/javax.validation.api_2.0.1.Final.jar"/> |
| <property name="javax.persistence" value="${jse.jpa.plugins.dir}/javax.persistence_2.2.0.v201708071007.jar"/> |
| |
| <property file="${user.home}/build.properties"/> |
| <property file="${test.properties}" /> |
| <property file="./antbuild.properties" /> |
| <property file="./test.properties" /> |
| |
| <!-- JVM used to run tests --> |
| <property name="test.junit.jvm" value="${env.JAVA_HOME}"/> |
| <property name="test.junit.jvm.exec" value="${test.junit.jvm}/bin/java"/> |
| |
| <path id="compile.jse.path"> |
| <pathelement path="${jse.el.root}/eclipselink.jar" /> |
| <pathelement path="${javax.transaction}" /> |
| <pathelement path="${javax.validation}" /> |
| <pathelement path="${javax.persistence}" /> |
| <pathelement path="${junit.lib}" /> |
| </path> |
| <path id="run.jse.path"> |
| <pathelement path="${jse.classes.dir}" /> |
| <pathelement path="${jse.eclipselink.jar}" /> |
| <pathelement path="${javax.transaction}" /> |
| <pathelement path="${javax.validation}" /> |
| <pathelement path="${javax.persistence}" /> |
| <pathelement path="${junit.lib}" /> |
| <pathelement path="${jdbc.driver.jar}" /> |
| </path> |
| |
| <pathconvert property="jse.compile.cp" refid="compile.jse.path"/> |
| <pathconvert property="jse.run.cp" refid="run.jse.path"/> |
| |
| <echo message="jse.el.root = ${jse.el.root}"/> |
| <echo message="jse.jpa.root = ${jse.jpa.root}"/> |
| <echo message="jse.eclipselink.jar = ${jse.eclipselink.jar}"/> |
| <echo message="jse.classes.dir = ${jse.classes.dir}"/> |
| <echo message="jse.src.dir = ${jse.src.dir}"/> |
| <echo message="compile classpath = ${jse.compile.cp}"/> |
| <echo message="run classpath = ${jse.run.cp}"/> |
| <echo message="report dir = ${reports.dir}"/> |
| <echo message="basedir = ${basedir}"/> |
| <echo message="junitlib = ${junit.lib}"/> |
| <echo message="jse.run.cp = ${jse.run.cp}"/> |
| |
| <target name="test-no-report" depends="test-run"/> |
| <target name="test" depends="test-run, test-report"/> |
| |
| <target name="test-run" depends="compile, weave"> |
| <mkdir dir="${reports.dir}"/> |
| <property name="rmi.port" value="1099"/> |
| <property name="additional.jvmargs" value="-Ddummy2=dummy"/> |
| <property name="debugargs" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777"/> |
| <property name="rmi" value="-Djava.naming.provider.url=rmi://localhost:${rmi.port} -Djava.naming.factory.initial=com.sun.jndi.rmi.registry.RegistryContextFactory"/> |
| <junit jvm="${test.junit.jvm.exec}" printsummary="on" haltonfailure="false" failureproperty="fail" fork="yes" dir="${jse.classes.dir}" forkmode="once"> |
| <jvmarg line="${additional.jvmargs} ${rmi}"/> |
| <sysproperty key="javax.persistence.jdbc.url" value="${db.url}"/> |
| <sysproperty key="javax.persistence.jdbc.driver" value="${db.driver}"/> |
| <sysproperty key="javax.persistence.jdbc.user" value="${db.user}"/> |
| <sysproperty key="javax.persistence.jdbc.password" value="${db.pwd}"/> |
| <sysproperty key="rmi.port" value="${rmi.port}"/> |
| <classpath> |
| <path refid="run.jse.path" /> |
| </classpath> |
| |
| <formatter type="xml"/> |
| |
| <batchtest todir="${reports.dir}"> |
| <fileset dir="${jse.src.dir}"> |
| <include name="**/Test*.java"/> |
| </fileset> |
| </batchtest> |
| |
| </junit> |
| </target> |
| |
| <target name="test-report"> |
| <junitreport todir="./reports"> |
| <fileset dir="./reports"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="frames" todir="./reports/html"/> |
| </junitreport> |
| <echo message="JUNIT results in ${user.dir}/reports/html"/> |
| <fail if="fail" message="Test failures detected, please check the results."/> |
| </target> |
| |
| <!-- |
| Ideally we could do something smart here to have different weaving targets to weave with different properties. |
| We can cross that bridge when / if it is needed. |
| --> |
| <target name="weave"> |
| <weave source="${jse.classes.dir}" target="${jse.classes.dir}" loglevel="WARNING"> |
| <classpath> |
| <path refid="compile.jse.path" /> |
| </classpath> |
| </weave> |
| </target> |
| |
| <target name="compile"> |
| <mkdir dir="${jse.classes.dir}"/> |
| <copy todir="${jse.classes.dir}/META-INF"> |
| <fileset dir="${jse.src.dir}/META-INF" includes="**/*" excludes=".git*"/> |
| </copy> |
| |
| <javac debug="true" destdir="${jse.classes.dir}" includeantruntime="false" source="${javac.version}" target="${javac.version}"> |
| <classpath refid="compile.jse.path"/> |
| <src path="src"/> |
| </javac> |
| </target> |
| <target name="clean"> |
| <delete dir="${jse.classes.dir}" /> |
| <delete dir="${reports.dir}" /> |
| </target> |
| |
| <taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask"> |
| <classpath> |
| <path refid="compile.jse.path" /> |
| </classpath> |
| </taskdef> |
| </project> |