-<?xml version="1.0" encoding="UTF-8"?>\r
-\r
-<project default="jabaws" name="Build Java Bioinformatics Analysis Web Services" basedir=".">\r
-\r
- <property name="basedir" location="${basedir}/log" />\r
- <property name="LD_LIBRARY_PATH" value="/gridware/sge/lib/lx24-amd64"/>\r
-\r
- <!-- Distributive file names-->\r
- <property name="distdir" value="website/archive"/>\r
- <mkdir dir="${distdir}" />\r
- \r
- <!-- projects details -->\r
- <property name="project.url" value="http://www.compbio.dundee.ac.uk/jabaws"/>\r
- <property name="product" value="Java Bioinformatics Analyses Web Services"/>\r
- <property name="author" value="Peter Troshin"/>\r
- \r
- <!-- dependencies on other compbio projects -->\r
- <property name="compbio-annotation" value="compbio-annotations-1.0.jar"/>\r
- <property name="compbio-util" value="compbio-util-1.4.jar"/>\r
- <property name="compbio-ga" value="compbio-ga-1.0.jar"/>\r
- \r
- <!-- products -->\r
- <property name="jaba_version" value="2.0.1"/>\r
- <property name="datamodel" value="${distdir}/datamodel-${jaba_version}.jar"/>\r
- <property name="datamodel-src" value="${distdir}/datamodel-src-${jaba_version}.jar"/>\r
- <property name="min-jaba-client" value="${distdir}/min-jaba-client-${jaba_version}.jar"/>\r
- <property name="min-jaba-client-nolog" value="${distdir}/min-jaba-client-nolog-${jaba_version}.jar"/>\r
- <property name="jaba-client-src" value="${distdir}/jabaws-client-src-${jaba_version}.jar"/>\r
- <property name="aacon-ws-client" value="${distdir}/aacon-ws-client.jar"/>\r
- <property name="full-jaba-client" value="${distdir}/full-jaba-client-${jaba_version}.jar"/>\r
- <property name="jaba-source-jar" value="${distdir}/jabaws-src-${jaba_version}.jar"/>\r
- <property name="full-jaba-client-pack" value="${distdir}/full-jaba-client-${jaba_version}-pack.zip"/>\r
- <property name="jaba" value="${distdir}/jabaws.war"/>\r
- <!-- TODO \r
- <property name="jaba-dundee" value="${distdir}/jaba-dundee.war"/>\r
- -->\r
- <property name="jaba-no-binaries" value="${distdir}/jabaws-no-binaries.war"/>\r
- <property name="binaries" value="${distdir}/binaries.zip"/>\r
- <property name="jaba-devel-web" value="${distdir}/jaba-devel-website.zip"/>\r
-\r
- <!--Whole project archive -->\r
- <property name="jaba-project" value="${distdir}/jaba-project.zip"/>\r
-\r
- <!-- java -->\r
- <property name="test.src" location="${basedir}/testsrc" />\r
- <property name="classes" location="${basedir}/WEB-INF/classes" />\r
- <property name="lib.path" location="${basedir}/lib" />\r
- <property name="web.lib.path" location="${basedir}/WEB-INF/lib" />\r
- <property name="test.lib.path" location="${basedir}/testsrc/lib" />\r
- <property name="activity.log" location="${basedir}/activity.log" />\r
-\r
- <!-- add libraries -->\r
- <path id="project.classpath">\r
- <fileset dir="${lib.path}">\r
- <include name="*.jar" />\r
- </fileset>\r
- <fileset dir="${web.lib.path}">\r
- <include name="*.jar" />\r
- </fileset>\r
- </path>\r
-\r
- <!-- add test classes -->\r
- <path id="test.classpath">\r
- <fileset dir="${test.lib.path}">\r
- <include name="*.jar" />\r
- </fileset>\r
- <pathelement location="${classes}" />\r
- </path>\r
-\r
- <fileset dir="${basedir}/WEB-INF/classes/" id="fullclient">\r
- <!-- Datamodel -->\r
- <include name="compbio/data/**"/>\r
- <include name="compbio/metadata/**"/>\r
- <!-- Engines -->\r
- <include name="compbio/engine/**"/>\r
- <!-- Runners -->\r
- <include name="compbio/runner/**"/>\r
- <!-- Logging configuration -->\r
- </fileset>\r
-\r
- <!-- Clean temp directories -->\r
- <target name="clean">\r
- <delete dir="${classes}" />\r
- <delete file="${distdir}/binaries.zip" />\r
- <delete file="${basedir}/activity.log" />\r
- <delete file="${basedir}/derby.log" />\r
- <mkdir dir="${classes}" />\r
- <copy file="${basedir}/conf/log4j.properties" tofile="${classes}/log4j.properties" />\r
- </target>\r
-\r
- <!-- Clean up temp directories and dist directory (all jar, zip, and war files deleted) -->\r
- <target name="full-clean" depends="clean">\r
- <delete>\r
- <fileset dir="${distdir}">\r
- <include name="*.jar"/>\r
- <include name="*.zip"/>\r
- <include name="*.war"/>\r
- </fileset>\r
- </delete>\r
- </target>\r
-\r
- <target name="clearStatDB" description="Remove all records from statistics database">\r
- <echo>Cleaning Statistics database</echo>\r
- <java classname="compbio.stat.collector.StatDB" fork="false" failonerror="true" classpath="${classes}">\r
- <classpath refid="project.classpath" />\r
- </java>\r
- </target>\r
-\r
- <!--\r
- The compilation order is \r
- 1. datamodel \r
- 2. engine\r
- 3. runner\r
- 4. testscr\r
- 5. webservices\r
- Packages of the lower order could not have dependencies on the packages on the next layer. \r
- So runners (layer 3) depends on the engines and the datamodel but engines does not depend on \r
- anything in runners or any other layers above. Testsrc is not allowed to test webservices. \r
- -->\r
- <target name="compile_with_debug" depends="clean" description="Perform a multiple step compilation to ensure layered structure is preserved. Debug enabled.">\r
- <!-- copy files to class path-->\r
- <copy file="${basedir}/conf/log4j.properties" tofile="${classes}/log4j.properties" />\r
- <!-- Complile the datamodel first -->\r
- <javac srcdir="${basedir}/datamodel" destdir="${classes}" target="1.6"\r
- source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >\r
- <compilerarg value="-Xlint:unchecked"/>\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the engines -->\r
- <javac srcdir="${basedir}/engine" destdir="${classes}" target="1.6"\r
- source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >\r
- <compilerarg value="-Xlint:unchecked"/>\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the runners -->\r
- <javac srcdir="${basedir}/runner" destdir="${classes}" target="1.6"\r
- source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >\r
- <compilerarg value="-Xlint:unchecked"/>\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the webservices -->\r
- <javac srcdir="${basedir}/webservices" destdir="${classes}" target="1.6"\r
- source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >\r
- <compilerarg value="-Xlint:unchecked"/>\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the tests -->\r
- <javac srcdir="${basedir}/testsrc" destdir="${classes}" target="1.6"\r
- source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >\r
- <compilerarg value="-Xlint:unchecked"/>\r
- <classpath refid="project.classpath" />\r
- <classpath refid="test.classpath" />\r
- </javac>\r
- </target>\r
-\r
- <!--\r
- Compile with optimisation. Do not compile testsrc\r
- The compilation order is \r
- 1. datamodel \r
- 2. engine\r
- 3. runner\r
- 4. webservices\r
- Packages of the lower order could not have dependencies on the packages on the next layer. \r
- So runners (layer 3) depends on the engines and the datamodel but engines does not depend \r
- on anything in runners or any other layers above.\r
- -->\r
- <target name="compile" depends="clean" description="Perform a multiple step compilation to ensure layered structure is preserved. Debug disabled, optimisation enabled. Tests are not compiled.">\r
- <!-- copy files to class path-->\r
- <copy file="${basedir}/conf/log4j.properties" tofile="${classes}/log4j.properties" />\r
- <!-- Complile the datamodel first -->\r
- <javac srcdir="${basedir}/datamodel" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">\r
- <compilerarg value="-Xlint:-unchecked" />\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the engines -->\r
- <javac srcdir="${basedir}/engine" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">\r
- <compilerarg value="-Xlint:-all" />\r
- <compilerarg value="-Xlint:-unchecked" />\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the runners -->\r
- <javac srcdir="${basedir}/runner" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">\r
- <compilerarg value="-Xlint:-unchecked" />\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- <!-- Complile the webservices -->\r
- <javac srcdir="${basedir}/webservices" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">\r
- <compilerarg value="-Xlint:-unchecked" />\r
- <classpath refid="project.classpath" />\r
- </javac>\r
- </target>\r
-\r
- <target name="datamodel-jar" depends="compile" description="Pack data model classes">\r
- <echo>Jar file: Minimal WS client jar</echo>\r
- <delete file="${basedir}/${datamodel}">\r
- </delete>\r
- <jar jarfile="${basedir}/${datamodel}">\r
- <zipgroupfileset excludes="META-INF/*.SF" dir="${web.lib.path}" >\r
- <include name="${compbio-util}"/>\r
- <include name="${compbio-annotation}"/>\r
- </zipgroupfileset>\r
- <fileset dir="${basedir}/WEB-INF/classes/">\r
- <include name="compbio/data/sequence/*.class"/>\r
- <include name="compbio/metadata/*.class"/>\r
- </fileset>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Implementation-Title" value="Datamodel for ${product} " />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="jaba-client-src-jar" depends="datamodel-source-jar" description="Pack metadata, data model, WS interfaces, a simple ws client class">\r
- <echo>Jar file: JABAWS client source</echo>\r
- <delete file="${jaba-client-src}">\r
- </delete>\r
- <jar jarfile="${jaba-client-src}">\r
- <zipgroupfileset excludes="META-INF/*.MF" file="${datamodel-src}"/>\r
- <fileset dir="${basedir}/webservices">\r
- <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->\r
- <include name="compbio/data/msa/**"/>\r
- <exclude name="compbio/ws/client/ServicesUtil**"/>\r
- <exclude name="compbio/ws/client/AAConClient**"/>\r
- <include name="compbio/ws/client/**"/>\r
- </fileset>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Implementation-Title" value="${product} Client Source Code" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="minimal-jaba-client-jar" depends="compile, datamodel-jar" description="Pack metadata, data model, WS interfaces, a simple ws client class">\r
- <echo>Jar file: Minimal WS client jar</echo>\r
- <delete file="${basedir}/${min-jaba-client}"></delete>\r
- <jar jarfile="${basedir}/${min-jaba-client}">\r
- <zipgroupfileset excludes="META-INF/*.SF" dir="" includes="${datamodel}" />\r
- <fileset dir="${basedir}/WEB-INF/classes/">\r
- <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->\r
- <include name="compbio/data/msa/**"/>\r
- <include name="compbio/ws/client/**"/>\r
- </fileset>\r
- <zipgroupfileset excludes="META-INF/*" dir="" includes="WEB-INF/lib/log4j-1.2.15.jar" />\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Main-Class" value="compbio.ws.client.Jws2Client" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Implementation-Title" value="Minimal ${product} Client" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- <delete file="${basedir}/${min-jaba-client-nolog}"></delete>\r
- <jar jarfile="${basedir}/${min-jaba-client-nolog}">\r
- <zipgroupfileset excludes="META-INF/*.SF" dir="" includes="${datamodel}" />\r
- <fileset dir="${basedir}/WEB-INF/classes/">\r
- <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->\r
- <include name="compbio/data/msa/**"/>\r
- <include name="compbio/ws/client/**"/>\r
- </fileset>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Main-Class" value="compbio.ws.client.Jws2Client" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Implementation-Title" value="Minimal ${product} Client" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="full-jaba-client-jar" depends="compile" description="Pack datamodel, engine and runners">\r
- <echo>Jar file: Full WS client jar</echo>\r
- <delete file="${full-jaba-client}">\r
- </delete>\r
- <jar jarfile="${full-jaba-client}">\r
- <zipgroupfileset excludes="META-INF/*.SF" dir="${web.lib.path}" >\r
- <include name="${compbio-util}"/>\r
- <include name="${compbio-annotation}"/>\r
- <include name="drmaa.jar"/>\r
- </zipgroupfileset>\r
- <fileset refid="fullclient"/>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Implementation-Title" value="Full ${product} Client" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="aacon-ws-client-jar" depends="compile, datamodel-jar" description="Pack metadata, data model, WS interfaces, a simple ws client class">\r
- <echo>Jar file: AAConWS client jar</echo>\r
- <delete file="${basedir}/${aacon-ws-client}">\r
- </delete>\r
- <jar jarfile="${basedir}/${aacon-ws-client}">\r
- <zipgroupfileset excludes="META-INF/*.SF" dir="" includes="${datamodel}" />\r
- <fileset dir="${basedir}/WEB-INF/classes/">\r
- <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->\r
- <include name="compbio/data/msa/**"/>\r
- <include name="compbio/ws/client/**"/>\r
- </fileset>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Main-Class" value="compbio.ws.client.AAConClient" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Implementation-Title" value="AACon Client" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="http://www.compbio.dundee.ac.uk/aacon" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="full-jaba-client" depends="full-jaba-client-jar, pack-binaries" description="Pack binaries with sources and configuration files">\r
- <echo>Packing binaries, and configuration files</echo>\r
- <zip destfile="${full-jaba-client-pack}" >\r
- <zipgroupfileset file="${binaries}" />\r
- <zipfileset dir="conf" prefix="conf" >\r
- <exclude name="**/temp/**"/>\r
- </zipfileset>\r
- <fileset file="${full-jaba-client}" />\r
- </zip>\r
- </target>\r
-\r
-\r
- <target name="source-jar" depends="datamodel-source-jar" description="Pack java sources">\r
- <delete file="${basedir}/${jaba-source-jar}">\r
- </delete>\r
- <jar jarfile="${basedir}/${jaba-source-jar}">\r
- <zipgroupfileset excludes="META-INF/*.MF" file="${datamodel-src}"/>\r
- <fileset dir="${basedir}/runner">\r
- <include name="**"/>\r
- </fileset>\r
- <fileset dir="${basedir}/engine">\r
- <include name="**"/>\r
- </fileset>\r
- <fileset dir="${basedir}/webservices/">\r
- <include name="**"/>\r
- </fileset>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Implementation-Title" value="${product} Source Code Archive" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="datamodel-source-jar" depends="compile" description="Pack java sources">\r
- <delete file="${datamodel-src}">\r
- </delete>\r
- <jar jarfile="${datamodel-src}">\r
- <fileset dir="${basedir}/datamodel">\r
- <include name="**"/>\r
- </fileset>\r
- <zipgroupfileset excludes="META-INF/*.MF" dir="${lib.path}/src">\r
- <include name="**"/>\r
- </zipgroupfileset>\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Implementation-Title" value="${product} Datamodel Source Code Archive" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="full-jaba-jar" depends="compile" description="Pack datamodel, engine, runners, configuration, binaries and webservices">\r
- <echo>Jar file: Full WS client jar</echo>\r
- <delete file="${full-jaba-client}">\r
- </delete>\r
- <jar jarfile="${full-jaba-client}">\r
- <zipgroupfileset excludes="META-INF/*.SF" dir="${web.lib.path}" >\r
- <include name="log4j-1.2.15.jar"/>\r
- <include name="${compbio-util}"/>\r
- <include name="${compbio-annotation}"/>\r
- <include name="drmaa.jar"/>\r
- </zipgroupfileset>\r
- <fileset refid="fullclient">\r
- </fileset>\r
- <fileset dir="${basedir}/WEB-INF/classes/">\r
- <!-- Statistics web application -->\r
- <include name="compbio/stat/**"/>\r
- <!-- Web services-->\r
- <include name="compbio/ws/**"/>\r
- </fileset>\r
- <!-- Set WSTester as main to help user to test their deployments -->\r
- <manifest>\r
- <attribute name="Built-By" value="${author}" />\r
- <attribute name="Class-Path" value="." />\r
- <attribute name="Main-Class" value="compbio.ws.client.WSTester" />\r
- <attribute name="Implementation-Title" value="${product}" />\r
- <attribute name="Implementation-Vendor" value="${author}" />\r
- <attribute name="Implementation-URL" value="${project.url}" />\r
- </manifest>\r
- </jar>\r
- </target>\r
-\r
- <target name="pack-binaries" description="Zip all binary files">\r
- <delete file="${binaries}" failonerror="false"/>\r
- <zip destfile="${binaries}" >\r
- <zipfileset dir="${basedir}/binaries" prefix="binaries" excludes="**/linux*/**"/>\r
- </zip>\r
- </target>\r
-\r
- <target name="jaba-no-binaries" depends="full-jaba-jar, clearStatDB" description="Prepare JABAWS war file without native binaries">\r
- <echo>Preparing a war file without binaries</echo>\r
- <delete file="${jaba-no-binaries}">\r
- </delete>\r
- <zip destfile="${jaba-no-binaries}" whenempty="create">\r
- <zipfileset dir="${basedir}/WEB-INF" prefix="WEB-INF">\r
- <exclude name="classes"/>\r
- <!-- These are included into JABA client so exclude the jars -->\r
- <exclude name="lib/drmaa.jar"/>\r
- <exclude name="lib/log4j-1.2.15.jar"/>\r
- <exclude name="lib/${compbio-annotation}"/>\r
- <exclude name="lib/${compbio-util}"/>\r
- \r
- <include name="web.xml"/>\r
- <include name="sun-jaxws.xml"/>\r
- <include name="lib/*"/>\r
- </zipfileset>\r
- <zipfileset dir="${basedir}/ExecutionStatistic" prefix="ExecutionStatistic" />\r
- <zipfileset dir="${basedir}/statpages" prefix="statpages" />\r
- <zipfileset dir="${basedir}/jobsout" prefix="jobsout" excludes="**/*"/>\r
- <zipfileset dir="conf" prefix="conf" >\r
- <exclude name="**/temp/**"/>\r
- <exclude name="**/log4j.properties*"/>\r
- </zipfileset>\r
- <!-- Add JABAWS web site apart from the binary archive -->\r
- <zipfileset dir="${basedir}/website" excludes="archive/**, devel*.html, tests/**, template.html"/>\r
- <zipfileset dir="." includes="${full-jaba-client}" fullpath="WEB-INF/lib/jaba-client.jar"/>\r
- <!-- Put a copy of log4j configuration file where it can be used -->\r
- <zipfileset dir="conf" includes="log4j.properties" prefix="WEB-INF/classes"/>\r
- </zip>\r
- </target>\r
-\r
- <target name="build-devel-website" description="Pack developement related pages, tests, javadoc" >\r
- <echo>Packing data for internal web site</echo>\r
- <delete file="${jaba-devel-web}">\r
- </delete>\r
- <zip destfile="${jaba-devel-web}" whenempty="create">\r
- <!-- Add JABAWS web site apart from the binary archive -->\r
- <zipfileset dir="${basedir}/website" excludes="template.html, download.html, index.html, manual.html, howto.html, archive/**, prog_docs/**"/>\r
- </zip>\r
- </target>\r
-\r
- <target name="jaba-complete" depends="jaba-no-binaries, pack-binaries" description="Prepare JABAWS war file without runtime dependency - JAXWS jars">\r
- <echo>Preparing a complete war file</echo>\r
- <delete file="${jaba}">\r
- </delete>\r
- <copy tofile="${jaba}" file="${jaba-no-binaries}"/>\r
- <zip destfile="${jaba}" update="true" >\r
- <zipgroupfileset file="${binaries}" />\r
- </zip>\r
- </target>\r
-\r
- <target name="build-all" depends="full-jaba-client, minimal-jaba-client-jar, jaba-no-binaries, jaba-complete, datamodel-jar, datamodel-source-jar, source-jar, jaba-client-src-jar" description="Build-all the distributives"/>\r
-\r
- <!-- This task does not really depends on compile, but it is better to make sure that the code is sound -->\r
- <target name="archive-project" description="Pack everything in the project for those who do not have access to SVN" depends="compile">\r
- <delete file="${jaba-project}">\r
- </delete>\r
- <zip destfile="${jaba-project}" whenempty="create" >\r
- <fileset dir="." excludes="${distdir}/**, jobsout/**, test-output/**, **.svn, dundee-conf/**, TODO.txt, IDEAS.txt, ${activity.log}, **/*.zip, **/*.war"/>\r
- <!-- Add jobsout directory but no content -->\r
- <zipfileset dir="${basedir}/jobsout" prefix="jobsout" excludes="*/**"/>\r
- </zip>\r
- </target>\r
-\r
-<!-- Test targets -->\r
- <taskdef name="testNG" classname="org.testng.TestNGAntTask">\r
- <classpath refid="test.classpath">\r
- </classpath>\r
- </taskdef>\r
-\r
- <target name="CustomTest" depends="compile_with_debug">\r
- <delete file="${activity.log}"/>\r
- <testNG haltonfailure="true" enableassert="true" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <xmlfileset dir="." includes="temp-testng-customsuite.xml"/>\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="Run_cluster_dependent_test" depends="compile_with_debug">\r
- <delete file="${activity.log}"/>\r
- <testNG groups="cluster" haltonfailure="true" enableassert="true" parallel="false" verbose="3">\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="Test" depends="compile_with_debug">\r
- <delete file="${activity.log}"/>\r
- <testNG haltonfailure="true" enableassert="true" verbose="3" excludedgroups="performance, webservices" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="Performance_tests" depends="compile_with_debug">\r
- <delete file="${activity.log}"/>\r
- <testNG haltonfailure="true" enableassert="true" verbose="3" groups="performance" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="Test_runners" depends="compile_with_debug">\r
- <delete file="${activity.log}"/>\r
- <testNG groups="runner" haltonfailure="true" verbose="3" enableassert="true" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="Test_engines" depends="compile_with_debug">\r
- <delete file="${activity.log}"/>\r
- <testNG groups="engine" haltonfailure="true" verbose="3" enableassert="true" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="All_cluster_independent_windows_only_tests" depends="compile_with_debug">\r
- <delete file="${activity.log}" failonerror="false"/>\r
- <testNG excludedgroups="cluster, non_windows" haltonfailure="true" verbose="3" enableassert="true" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="All_cluster_independent_tests" depends="compile_with_debug">\r
- <delete file="${activity.log}" failonerror="false"/>\r
- <testNG excludedgroups="cluster, performance" haltonfailure="true" verbose="3" enableassert="true" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <classfileset dir="${classes}" includes="**/*.class" />\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-\r
- <target name="Rerun_failed_tests" depends="compile_with_debug">\r
- <delete file="${activity.log}" failonerror="false"/>\r
- <testNG haltonfailure="true" enableassert="true" verbose="9" >\r
- <jvmarg value="-server" />\r
- <jvmarg value="-enableassertions" />\r
- <jvmarg value="-Xms1024m" />\r
- <jvmarg value="-Xmx1024m" />\r
- <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>\r
- <classpath refid="test.classpath" />\r
- <classpath refid="project.classpath" />\r
- <xmlfileset dir="." includes="test-output/testng-failed.xml"/>\r
- <sysproperty key="TestingDataPath" value="${data.src}"/>\r
- </testNG>\r
- </target>\r
-</project>\r
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project default="jabaws" name="Build Java Bioinformatics Analysis Web Services" basedir=".">
+
+ <property name="basedir" location="${basedir}/log" />
+ <property name="LD_LIBRARY_PATH" value="/gridware/sge/lib/lx24-amd64"/>
+
+ <!-- Distributive file names-->
+ <property name="distdir" value="website/archive"/>
+ <mkdir dir="${distdir}" />
+
+ <!-- projects details -->
+ <property name="project.url" value="http://www.compbio.dundee.ac.uk/jabaws"/>
+ <property name="product" value="Java Bioinformatics Analyses Web Services"/>
+ <property name="author" value="Alexander Sherstnev, Peter Troshin"/>
+
+ <!-- dependencies on other compbio projects -->
+ <property name="compbio-annotation" value="compbio-annotations-1.0.jar"/>
+ <property name="compbio-util" value="compbio-util-1.4.jar"/>
+ <property name="compbio-ga" value="compbio-ga-1.0.jar"/>
+
+ <!-- products -->
+ <property name="jaba_version" value="2.0.1"/>
+ <property name="datamodel" value="${distdir}/datamodel-${jaba_version}.jar"/>
+ <property name="datamodel-src" value="${distdir}/datamodel-src-${jaba_version}.jar"/>
+ <property name="min-jaba-client" value="${distdir}/min-jaba-client-${jaba_version}.jar"/>
+ <property name="min-jaba-client-nolog" value="${distdir}/min-jaba-client-nolog-${jaba_version}.jar"/>
+ <property name="jaba-client-src" value="${distdir}/jabaws-client-src-${jaba_version}.jar"/>
+ <property name="aacon-ws-client" value="${distdir}/aacon-ws-client.jar"/>
+ <property name="full-jaba-client" value="${distdir}/full-jaba-client-${jaba_version}.jar"/>
+ <property name="jaba-source-jar" value="${distdir}/jabaws-src-${jaba_version}.jar"/>
+ <property name="full-jaba-client-pack" value="${distdir}/full-jaba-client-${jaba_version}-pack.zip"/>
+ <property name="jaba" value="${distdir}/jabaws.war"/>
+ <!-- TODO
+ <property name="jaba-dundee" value="${distdir}/jaba-dundee.war"/>
+ -->
+ <property name="jaba-no-binaries" value="${distdir}/jabaws-no-binaries.war"/>
+ <property name="binaries" value="${distdir}/binaries.zip"/>
+ <property name="jaba-devel-web" value="${distdir}/jaba-devel-website.zip"/>
+
+ <!--Whole project archive -->
+ <property name="jaba-project" value="${distdir}/jaba-project.zip"/>
+
+ <!-- java -->
+ <property name="test.src" location="${basedir}/testsrc" />
+ <property name="classes" location="${basedir}/WEB-INF/classes" />
+ <property name="lib.path" location="${basedir}/lib" />
+ <property name="web.lib.path" location="${basedir}/WEB-INF/lib" />
+ <property name="test.lib.path" location="${basedir}/testsrc/lib" />
+ <property name="activity.log" location="${basedir}/activity.log" />
+
+ <!-- add libraries -->
+ <path id="project.classpath">
+ <fileset dir="${lib.path}">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${web.lib.path}">
+ <include name="*.jar" />
+ </fileset>
+ </path>
+
+ <!-- add test classes -->
+ <path id="test.classpath">
+ <fileset dir="${test.lib.path}">
+ <include name="*.jar" />
+ </fileset>
+ <pathelement location="${classes}" />
+ </path>
+
+ <fileset dir="${basedir}/WEB-INF/classes/" id="fullclient">
+ <!-- Datamodel -->
+ <include name="compbio/data/**"/>
+ <include name="compbio/metadata/**"/>
+ <!-- Engines -->
+ <include name="compbio/engine/**"/>
+ <!-- Runners -->
+ <include name="compbio/runner/**"/>
+ <!-- Logging configuration -->
+ </fileset>
+
+ <!-- Clean temp directories -->
+ <target name="clean">
+ <delete dir="${classes}" />
+ <delete file="${distdir}/binaries.zip" />
+ <delete file="${basedir}/activity.log" />
+ <delete file="${basedir}/derby.log" />
+ <mkdir dir="${classes}" />
+ <copy file="${basedir}/log/log4j.properties" tofile="${classes}/log4j.properties" />
+ </target>
+
+ <!-- Clean up temp directories and dist directory (all jar, zip, and war files deleted) -->
+ <target name="full-clean" depends="clean">
+ <delete>
+ <fileset dir="${distdir}">
+ <include name="*.jar"/>
+ <include name="*.zip"/>
+ <include name="*.war"/>
+ </fileset>
+ </delete>
+ </target>
+
+ <target name="clearStatDB" description="Remove all records from statistics database">
+ <echo>Cleaning Statistics database</echo>
+ <java classname="compbio.stat.collector.StatDB" fork="false" failonerror="true" classpath="${classes}">
+ <classpath refid="project.classpath" />
+ </java>
+ </target>
+
+ <!--
+ The compilation order is
+ 1. datamodel
+ 2. engine
+ 3. runner
+ 4. testscr
+ 5. webservices
+ Packages of the lower order could not have dependencies on the packages on the next layer.
+ So runners (layer 3) depends on the engines and the datamodel but engines does not depend on
+ anything in runners or any other layers above. Testsrc is not allowed to test webservices.
+ -->
+ <target name="compile_with_debug" depends="clean" description="Perform a multiple step compilation to ensure layered structure is preserved. Debug enabled.">
+ <!-- copy files to class path-->
+ <copy file="${basedir}/log/log4j.properties" tofile="${classes}/log4j.properties" />
+ <!-- Complile the datamodel first -->
+ <javac srcdir="${basedir}/datamodel" destdir="${classes}" target="1.6"
+ source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >
+ <compilerarg value="-Xlint:unchecked"/>
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the engines -->
+ <javac srcdir="${basedir}/engine" destdir="${classes}" target="1.6"
+ source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >
+ <compilerarg value="-Xlint:unchecked"/>
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the runners -->
+ <javac srcdir="${basedir}/runner" destdir="${classes}" target="1.6"
+ source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >
+ <compilerarg value="-Xlint:unchecked"/>
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the webservices -->
+ <javac srcdir="${basedir}/webservices" destdir="${classes}" target="1.6"
+ source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >
+ <compilerarg value="-Xlint:unchecked"/>
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the tests -->
+ <javac srcdir="${basedir}/testsrc" destdir="${classes}" target="1.6"
+ source="1.6" debug="on" encoding="UTF-8" verbose="false" nowarn="true" >
+ <compilerarg value="-Xlint:unchecked"/>
+ <classpath refid="project.classpath" />
+ <classpath refid="test.classpath" />
+ </javac>
+ </target>
+
+ <!--
+ Compile with optimisation. Do not compile testsrc
+ The compilation order is
+ 1. datamodel
+ 2. engine
+ 3. runner
+ 4. webservices
+ Packages of the lower order could not have dependencies on the packages on the next layer.
+ So runners (layer 3) depends on the engines and the datamodel but engines does not depend
+ on anything in runners or any other layers above.
+ -->
+ <target name="compile" depends="clean" description="Perform a multiple step compilation to ensure layered structure is preserved. Debug disabled, optimisation enabled. Tests are not compiled.">
+ <!-- copy files to class path-->
+ <copy file="${basedir}/log/log4j.properties" tofile="${classes}/log4j.properties" />
+ <!-- Complile the datamodel first -->
+ <javac srcdir="${basedir}/datamodel" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">
+ <compilerarg value="-Xlint:-unchecked" />
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the engines -->
+ <javac srcdir="${basedir}/engine" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">
+ <compilerarg value="-Xlint:-all" />
+ <compilerarg value="-Xlint:-unchecked" />
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the runners -->
+ <javac srcdir="${basedir}/runner" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">
+ <compilerarg value="-Xlint:-unchecked" />
+ <classpath refid="project.classpath" />
+ </javac>
+ <!-- Complile the webservices -->
+ <javac srcdir="${basedir}/webservices" destdir="${classes}" target="1.6" source="1.6" debug="off" optimize="on" encoding="UTF-8" verbose="false" nowarn="true">
+ <compilerarg value="-Xlint:-unchecked" />
+ <classpath refid="project.classpath" />
+ </javac>
+ </target>
+
+ <target name="datamodel-jar" depends="compile" description="Pack data model classes">
+ <echo>Jar file: Minimal WS client jar</echo>
+ <delete file="${basedir}/${datamodel}">
+ </delete>
+ <jar jarfile="${basedir}/${datamodel}">
+ <zipgroupfileset excludes="META-INF/*.SF" dir="${web.lib.path}" >
+ <include name="${compbio-util}"/>
+ <include name="${compbio-annotation}"/>
+ </zipgroupfileset>
+ <fileset dir="${basedir}/WEB-INF/classes/">
+ <include name="compbio/data/sequence/*.class"/>
+ <include name="compbio/metadata/*.class"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Implementation-Title" value="Datamodel for ${product} " />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="jaba-client-src-jar" depends="datamodel-source-jar" description="Pack metadata, data model, WS interfaces, a simple ws client class">
+ <echo>Jar file: JABAWS client source</echo>
+ <delete file="${jaba-client-src}">
+ </delete>
+ <jar jarfile="${jaba-client-src}">
+ <zipgroupfileset excludes="META-INF/*.MF" file="${datamodel-src}"/>
+ <fileset dir="${basedir}/webservices">
+ <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->
+ <include name="compbio/data/msa/**"/>
+ <exclude name="compbio/ws/client/ServicesUtil**"/>
+ <exclude name="compbio/ws/client/AAConClient**"/>
+ <include name="compbio/ws/client/**"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Implementation-Title" value="${product} Client Source Code" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="minimal-jaba-client-jar" depends="compile, datamodel-jar" description="Pack metadata, data model, WS interfaces, a simple ws client class">
+ <echo>Jar file: Minimal WS client jar</echo>
+ <delete file="${basedir}/${min-jaba-client}"></delete>
+ <jar jarfile="${basedir}/${min-jaba-client}">
+ <zipgroupfileset excludes="META-INF/*.SF" dir="" includes="${datamodel}" />
+ <fileset dir="${basedir}/WEB-INF/classes/">
+ <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->
+ <include name="compbio/data/msa/**"/>
+ <include name="compbio/ws/client/**"/>
+ </fileset>
+ <zipgroupfileset excludes="META-INF/*" dir="" includes="WEB-INF/lib/log4j-1.2.15.jar" />
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Main-Class" value="compbio.ws.client.Jws2Client" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Implementation-Title" value="Minimal ${product} Client" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ <delete file="${basedir}/${min-jaba-client-nolog}"></delete>
+ <jar jarfile="${basedir}/${min-jaba-client-nolog}">
+ <zipgroupfileset excludes="META-INF/*.SF" dir="" includes="${datamodel}" />
+ <fileset dir="${basedir}/WEB-INF/classes/">
+ <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->
+ <include name="compbio/data/msa/**"/>
+ <include name="compbio/ws/client/**"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Main-Class" value="compbio.ws.client.Jws2Client" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Implementation-Title" value="Minimal ${product} Client" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="full-jaba-client-jar" depends="compile" description="Pack datamodel, engine and runners">
+ <echo>Jar file: Full WS client jar</echo>
+ <delete file="${full-jaba-client}">
+ </delete>
+ <jar jarfile="${full-jaba-client}">
+ <zipgroupfileset excludes="META-INF/*.SF" dir="${web.lib.path}" >
+ <include name="${compbio-util}"/>
+ <include name="${compbio-annotation}"/>
+ <include name="drmaa.jar"/>
+ </zipgroupfileset>
+ <fileset refid="fullclient"/>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Implementation-Title" value="Full ${product} Client" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="aacon-ws-client-jar" depends="compile, datamodel-jar" description="Pack metadata, data model, WS interfaces, a simple ws client class">
+ <echo>Jar file: AAConWS client jar</echo>
+ <delete file="${basedir}/${aacon-ws-client}">
+ </delete>
+ <jar jarfile="${basedir}/${aacon-ws-client}">
+ <zipgroupfileset excludes="META-INF/*.SF" dir="" includes="${datamodel}" />
+ <fileset dir="${basedir}/WEB-INF/classes/">
+ <!-- This will include JAXWS artifacts. Alternatively they can be generated on the fly. -->
+ <include name="compbio/data/msa/**"/>
+ <include name="compbio/ws/client/**"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Main-Class" value="compbio.ws.client.AAConClient" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Implementation-Title" value="AACon Client" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="http://www.compbio.dundee.ac.uk/aacon" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="full-jaba-client" depends="full-jaba-client-jar, pack-binaries" description="Pack binaries with sources and configuration files">
+ <echo>Packing binaries, and configuration files</echo>
+ <zip destfile="${full-jaba-client-pack}" >
+ <zipgroupfileset file="${binaries}" />
+ <zipfileset dir="conf" prefix="conf" >
+ <exclude name="**/temp/**"/>
+ </zipfileset>
+ <fileset file="${full-jaba-client}" />
+ </zip>
+ </target>
+
+
+ <target name="source-jar" depends="datamodel-source-jar" description="Pack java sources">
+ <delete file="${basedir}/${jaba-source-jar}">
+ </delete>
+ <jar jarfile="${basedir}/${jaba-source-jar}">
+ <zipgroupfileset excludes="META-INF/*.MF" file="${datamodel-src}"/>
+ <fileset dir="${basedir}/runner">
+ <include name="**"/>
+ </fileset>
+ <fileset dir="${basedir}/engine">
+ <include name="**"/>
+ </fileset>
+ <fileset dir="${basedir}/webservices/">
+ <include name="**"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Implementation-Title" value="${product} Source Code Archive" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="datamodel-source-jar" depends="compile" description="Pack java sources">
+ <delete file="${datamodel-src}">
+ </delete>
+ <jar jarfile="${datamodel-src}">
+ <fileset dir="${basedir}/datamodel">
+ <include name="**"/>
+ </fileset>
+ <zipgroupfileset excludes="META-INF/*.MF" dir="${lib.path}/src">
+ <include name="**"/>
+ </zipgroupfileset>
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Implementation-Title" value="${product} Datamodel Source Code Archive" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="full-jaba-jar" depends="compile" description="Pack datamodel, engine, runners, configuration, binaries and webservices">
+ <echo>Jar file: Full WS client jar</echo>
+ <delete file="${full-jaba-client}">
+ </delete>
+ <jar jarfile="${full-jaba-client}">
+ <zipgroupfileset excludes="META-INF/*.SF" dir="${web.lib.path}" >
+ <include name="log4j-1.2.15.jar"/>
+ <include name="${compbio-util}"/>
+ <include name="${compbio-annotation}"/>
+ <include name="drmaa.jar"/>
+ </zipgroupfileset>
+ <fileset refid="fullclient">
+ </fileset>
+ <fileset dir="${basedir}/WEB-INF/classes/">
+ <!-- Statistics web application -->
+ <include name="compbio/stat/**"/>
+ <!-- Web services-->
+ <include name="compbio/ws/**"/>
+ </fileset>
+ <!-- Set WSTester as main to help user to test their deployments -->
+ <manifest>
+ <attribute name="Built-By" value="${author}" />
+ <attribute name="Class-Path" value="." />
+ <attribute name="Main-Class" value="compbio.ws.client.WSTester" />
+ <attribute name="Implementation-Title" value="${product}" />
+ <attribute name="Implementation-Vendor" value="${author}" />
+ <attribute name="Implementation-URL" value="${project.url}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="pack-binaries" description="Zip all binary files">
+ <delete file="${binaries}" failonerror="false"/>
+ <zip destfile="${binaries}" >
+ <zipfileset dir="${basedir}/binaries" prefix="binaries" excludes="**/linux*/**"/>
+ </zip>
+ </target>
+
+ <target name="jaba-no-binaries" depends="full-jaba-jar, clearStatDB" description="Prepare JABAWS war file without native binaries">
+ <echo>Preparing a war file without binaries</echo>
+ <delete file="${jaba-no-binaries}">
+ </delete>
+ <zip destfile="${jaba-no-binaries}" whenempty="create">
+ <zipfileset dir="${basedir}/WEB-INF" prefix="WEB-INF">
+ <exclude name="classes"/>
+ <!-- These are included into JABA client so exclude the jars -->
+ <exclude name="lib/drmaa.jar"/>
+ <exclude name="lib/log4j-1.2.15.jar"/>
+ <exclude name="lib/${compbio-annotation}"/>
+ <exclude name="lib/${compbio-util}"/>
+
+ <include name="web.xml"/>
+ <include name="sun-jaxws.xml"/>
+ <include name="lib/*"/>
+ </zipfileset>
+ <zipfileset dir="${basedir}/ExecutionStatistic" prefix="ExecutionStatistic" />
+ <zipfileset dir="${basedir}/statpages" prefix="statpages" />
+ <zipfileset dir="${basedir}/jobsout" prefix="jobsout" excludes="**/*"/>
+ <zipfileset dir="conf" prefix="conf" >
+ <exclude name="**/temp/**"/>
+ </zipfileset>
+ <!-- Add JABAWS web site apart from the binary archive -->
+ <zipfileset dir="${basedir}/website" excludes="archive/**, devel*.html, tests/**, template.html"/>
+ <zipfileset dir="." includes="${full-jaba-client}" fullpath="WEB-INF/lib/jaba-client.jar"/>
+ <!-- Put a copy of log4j configuration file where it can be used -->
+ <zipfileset dir="log" includes="log4j.properties" prefix="WEB-INF/classes"/>
+ </zip>
+ </target>
+
+ <target name="build-devel-website" description="Pack developement related pages, tests, javadoc" >
+ <echo>Packing data for internal web site</echo>
+ <delete file="${jaba-devel-web}">
+ </delete>
+ <zip destfile="${jaba-devel-web}" whenempty="create">
+ <!-- Add JABAWS web site apart from the binary archive -->
+ <zipfileset dir="${basedir}/website" excludes="template.html, download.html, index.html, manual.html, howto.html, archive/**, prog_docs/**"/>
+ </zip>
+ </target>
+
+ <target name="jaba-complete" depends="jaba-no-binaries, pack-binaries" description="Prepare JABAWS war file without runtime dependency - JAXWS jars">
+ <echo>Preparing a complete war file</echo>
+ <delete file="${jaba}">
+ </delete>
+ <copy tofile="${jaba}" file="${jaba-no-binaries}"/>
+ <zip destfile="${jaba}" update="true" >
+ <zipgroupfileset file="${binaries}" />
+ </zip>
+ </target>
+
+ <target name="build-all" depends="full-jaba-client, minimal-jaba-client-jar, jaba-no-binaries, jaba-complete, datamodel-jar, datamodel-source-jar, source-jar, jaba-client-src-jar" description="Build-all the distributives"/>
+
+ <!-- This task does not really depends on compile, but it is better to make sure that the code is sound -->
+ <target name="archive-project" description="Pack everything in the project for those who do not have access to SVN" depends="compile">
+ <delete file="${jaba-project}">
+ </delete>
+ <zip destfile="${jaba-project}" whenempty="create" >
+ <fileset dir="." excludes="${distdir}/**, jobsout/**, test-output/**, **.svn, dundee-conf/**, TODO.txt, IDEAS.txt, ${activity.log}, **/*.zip, **/*.war"/>
+ <!-- Add jobsout directory but no content -->
+ <zipfileset dir="${basedir}/jobsout" prefix="jobsout" excludes="*/**"/>
+ </zip>
+ </target>
+
+<!-- Test targets -->
+ <taskdef name="testNG" classname="org.testng.TestNGAntTask">
+ <classpath refid="test.classpath">
+ </classpath>
+ </taskdef>
+
+ <target name="CustomTest" depends="compile_with_debug">
+ <delete file="${activity.log}"/>
+ <testNG haltonfailure="true" enableassert="true" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <xmlfileset dir="." includes="temp-testng-customsuite.xml"/>
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="Run_cluster_dependent_test" depends="compile_with_debug">
+ <delete file="${activity.log}"/>
+ <testNG groups="cluster" haltonfailure="true" enableassert="true" parallel="false" verbose="3">
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="Test" depends="compile_with_debug">
+ <delete file="${activity.log}"/>
+ <testNG haltonfailure="true" enableassert="true" verbose="3" excludedgroups="performance, webservices" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="Performance_tests" depends="compile_with_debug">
+ <delete file="${activity.log}"/>
+ <testNG haltonfailure="true" enableassert="true" verbose="3" groups="performance" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="Test_runners" depends="compile_with_debug">
+ <delete file="${activity.log}"/>
+ <testNG groups="runner" haltonfailure="true" verbose="3" enableassert="true" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="Test_engines" depends="compile_with_debug">
+ <delete file="${activity.log}"/>
+ <testNG groups="engine" haltonfailure="true" verbose="3" enableassert="true" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="All_cluster_independent_windows_only_tests" depends="compile_with_debug">
+ <delete file="${activity.log}" failonerror="false"/>
+ <testNG excludedgroups="cluster, non_windows" haltonfailure="true" verbose="3" enableassert="true" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="All_cluster_independent_tests" depends="compile_with_debug">
+ <delete file="${activity.log}" failonerror="false"/>
+ <testNG excludedgroups="cluster, performance" haltonfailure="true" verbose="3" enableassert="true" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <classfileset dir="${classes}" includes="**/*.class" />
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+
+ <target name="Rerun_failed_tests" depends="compile_with_debug">
+ <delete file="${activity.log}" failonerror="false"/>
+ <testNG haltonfailure="true" enableassert="true" verbose="9" >
+ <jvmarg value="-server" />
+ <jvmarg value="-enableassertions" />
+ <jvmarg value="-Xms1024m" />
+ <jvmarg value="-Xmx1024m" />
+ <env key="LD_LIBRARY_PATH" value="${LD_LIBRARY_PATH}"/>
+ <classpath refid="test.classpath" />
+ <classpath refid="project.classpath" />
+ <xmlfileset dir="." includes="test-output/testng-failed.xml"/>
+ <sysproperty key="TestingDataPath" value="${data.src}"/>
+ </testNG>
+ </target>
+</project>