blob: c12ae9542e2062cec33cef3fcc1da4626889e7b2 [file] [log] [blame]
<project name="plexi" default="build" basedir=".">
<description>GSA Adaptor library</description>
<property name="src.dir" location="src"/>
<property name="test.dir" location="test"/>
<property name="build.dir" location="build"/>
<property name="build-src.dir" location="${build.dir}/src"/>
<property name="build-test.dir" location="${build.dir}/test"/>
<property name="build-instrument.dir" location="${build.dir}/instrument"/>
<property name="dist.dir" location="dist"/>
<property name="javadoc.dir" location="${build.dir}/javadoc"/>
<property name="resource.dir" location="resources"/>
<property name="lib.dir" location="lib"/>
<property name="junit.jar" location="${lib.dir}/junit-4.8.2.jar"/>
<property name="opencsv.jar" location="${lib.dir}/opencsv-2.3.jar"/>
<property name="adaptor.class" value="adaptorlib.examples.AdaptorTemplate"/>
<property name="adaptor.args" value=""/>
<property name="guava.jar" location="${lib.dir}/guava-r06.jar"/>
<property name="j-calais.jar" location="${lib.dir}/j-calais-0.2.1.jar"/>
<property name="jackson-core-asl.jar" location="${lib.dir}/jackson-core-asl-1.5.5.jar"/>
<property name="jackson-jaxrs.jar" location="${lib.dir}/jackson-jaxrs-1.5.5.jar"/>
<property name="jackson-mapper-asl.jar" location="${lib.dir}/jackson-mapper-asl-1.5.5.jar"/>
<property name="jersey-client.jar" location="${lib.dir}/jersey-client-1.3.jar"/>
<property name="jersey-core.jar" location="${lib.dir}/jersey-core-1.3.jar"/>
<property name="jsr311-api.jar" location="${lib.dir}/jsr311-api-1.1.1.jar"/>
<property name="json-simple.jar" location="${lib.dir}/json_simple-1.1.jar"/>
<property name="gdata-core.jar" location="${lib.dir}/gdata-core-1.0.jar"/>
<property name="gdata-gsa.jar" location="${lib.dir}/gdata-gsa-1.0.jar"/>
<property name="cobertura.dir" value="${basedir}/../cobertura/"/>
<path id="adaptorlib.build.classpath">
<pathelement location="${opencsv.jar}"/>
<pathelement location="${j-calais.jar}"/>
<pathelement location="${json-simple.jar}"/>
<pathelement location="${gdata-core.jar}"/>
<pathelement location="${gdata-gsa.jar}"/>
<path refid="secmgr.build.classpath"/>
</path>
<path id="adaptorlib.run.classpath">
<pathelement location="${resource.dir}"/>
<pathelement location="${json-simple.jar}"/>
<pathelement location="${gdata-core.jar}"/>
<pathelement location="${gdata-gsa.jar}"/>
<path refid="secmgr.run.classpath"/>
<path refid="opensaml.run.classpath"/>
</path>
<path id="secmgr.build.classpath">
<path refid="secmgr.run.classpath"/>
<fileset dir="${lib.dir}">
<!--include name="guice-3.0.jar"/-->
<include name="jsr305.jar"/>
<include name="servlet-api.jar"/>
<!-- Dependencies that are in common with opensaml. -->
<include name="joda-time-1.6.jar"/>
<include name="opensaml-2.3.2.jar"/>
<include name="openws-1.3.1.jar"/>
<include name="slf4j-api-1.5.10.jar"/>
<include name="xmltooling-1.2.2.jar"/>
</fileset>
</path>
<path id="secmgr.run.classpath">
<fileset dir="${lib.dir}">
<include name="guava-pre-pre10.jar"/>
<!-- Haven't seen it used, but it seems to be needed for
com.google.enterprise.secmgr.servlets.ResponseParser.getGroups()
used from adaptorlib.SamlAssertionConsumerHandler.consumeAssertion().
-->
<include name="gson-1.7.1.jar"/>
</fileset>
</path>
<path id="opensaml.run.classpath">
<fileset dir="${lib.dir}">
<include name="bcprov-jdk15-1.45.jar"/>
<!--include name="commons-codec-1.3.jar"/-->
<include name="commons-collections-3.1.jar"/>
<!--include name="commons-httpclient-3.1.jar"/-->
<include name="commons-lang-2.1.jar"/>
<!--include name="jcip-annotations-1.0.jar"/-->
<!--include name="jcl-over-slf4j-1.5.10.jar"/-->
<include name="joda-time-1.6.jar"/>
<!--include name="jul-to-slf4j-1.5.10.jar"/-->
<!--include name="log4j-over-slf4j-1.5.10.jar"/-->
<!--include name="not-yet-commons-ssl-0.3.9.jar"/-->
<include name="opensaml-2.3.2.jar"/>
<include name="openws-1.3.1.jar"/>
<include name="slf4j-api-1.5.10.jar"/>
<include name="velocity-1.5.jar"/>
<include name="xmlsec-1.4.3.jar"/>
<include name="xmltooling-1.2.2.jar"/>
<!-- Libraries that are supposed to be endorsed, that we aren't having
endorsed. -->
<!--include name="resolver-2.9.1.jar"/-->
<!--include name="serializer-2.9.1.jar"/-->
<!--include name="xalan-2.7.1.jar"/-->
<include name="xercesImpl-2.9.1.jar"/>
<!--include name="xml-apis-2.9.1.jar"/-->
<!-- Additional dependencies not included with opensaml. -->
<include name="slf4j-jdk14-1.5.10.jar"/>
<include name="commons-logging-api-1.1.1.jar"/>
</fileset>
</path>
<path id="cobertura.classpath">
<fileset dir="${cobertura.dir}" erroronmissingdir="false">
<include name="cobertura.jar"/>
<include name="lib/**/*.jar"/>
</fileset>
</path>
<target name="build" description="Build source">
<mkdir dir="${build-src.dir}"/>
<javac srcdir="${src.dir}" destdir="${build-src.dir}" debug="true"
includeantruntime="false" encoding="utf-8">
<compilerarg value="-Xlint:unchecked"/>
<classpath refid="adaptorlib.build.classpath"/>
<include name="adaptorlib/**"/>
</javac>
<mkdir dir="${build-test.dir}"/>
<javac srcdir="${test.dir}" destdir="${build-test.dir}" debug="true"
includeantruntime="false" encoding="utf-8">
<classpath location="${build-src.dir}"/>
<classpath location="${junit.jar}"/>
<classpath location="${j-calais.jar}"/>
<classpath location="${json-simple.jar}"/>
</javac>
</target>
<target name="dist" description="Generate distribution binaries"
depends="clean,test,package"/>
<target name="package" description="Generate binaries"
depends="build,javadoc">
<mkdir dir="${dist.dir}"/>
<jar destfile="${dist.dir}/adaptor.jar" basedir="${build-src.dir}"
excludes="adaptorlib/examples/**,adaptorlib/prebuilt/**">
<zipfileset includes="**/*.class" src="${json-simple.jar}"/>
<zipfileset includes="**/*.class" src="${gdata-core.jar}"/>
<zipfileset includes="**/*.class" src="${gdata-gsa.jar}"/>
<fileset dir="${resource.dir}"/>
</jar>
<jar destfile="${dist.dir}/adaptor-prebuilt.jar" basedir="${build-src.dir}"
includes="adaptorlib/prebuilt/**/*.class">
</jar>
<jar destfile="${dist.dir}/adaptor-examples.jar" basedir="${build-src.dir}"
includes="adaptorlib/examples/**/*.class">
<zipfileset includes="**/*.class" src="${opencsv.jar}"/>
<zipfileset includes="**/*.class" src="${guava.jar}"/>
<zipfileset includes="**/*.class" src="${j-calais.jar}"/>
<zipfileset includes="**/*.class" src="${jackson-core-asl.jar}"/>
<zipfileset includes="**/*.class" src="${jackson-jaxrs.jar}"/>
<zipfileset includes="**/*.class" src="${jackson-mapper-asl.jar}"/>
<zipfileset includes="**/*.class" src="${jersey-client.jar}"/>
<zipfileset includes="**/*.class" src="${jersey-core.jar}"/>
<zipfileset includes="**/*.class" src="${jsr311-api.jar}"/>
</jar>
<zip destfile="${dist.dir}/adaptor-docs.zip" basedir="${javadoc.dir}"/>
</target>
<target name="javadoc" description="Build JavaDocs">
<javadoc sourcepath="${src.dir}" destdir="${javadoc.dir}"
overview="${src.dir}/overview.html" packagenames="adaptorlib,adaptorlib.**">
<classpath refid="adaptorlib.build.classpath"/>
<link href="http://download.oracle.com/javase/6/docs/jre/api/net/httpserver/spec/"/>
<link href="http://download.oracle.com/javase/6/docs/api/"/>
<arg value="-quiet"/>
</javadoc>
</target>
<target name="clean" description="Remove build output">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="run" depends="build" description="Run default adaptor">
<java classpath="${build-src.dir}" fork="true" classname="${adaptor.class}">
<classpath refid="adaptorlib.run.classpath"/>
<sysproperty key="java.util.logging.config.file"
value="${src.dir}/logging.properties"/>
<sysproperty key="javax.net.ssl.keyStore" file="keys.jks"/>
<sysproperty key="javax.net.ssl.keyStoreType" value="jks"/>
<sysproperty key="javax.net.ssl.keyStorePassword" value="changeit"/>
<sysproperty key="javax.net.ssl.trustStore" file="cacerts.jks"/>
<sysproperty key="javax.net.ssl.trustStoreType" value="jks"/>
<sysproperty key="javax.net.ssl.trustStorePassword" value="changeit"/>
<arg line="${adaptor.args}"/>
</java>
</target>
<target name="run-db" depends="build" description="Run database adaptor">
<java classpath="${build-src.dir}:${src.dir}/dbadaptortemplate/mysql.jar"
fork="true" classname="adaptorlib.examples.DbAdaptorTemplate">
<classpath refid="adaptorlib.run.classpath"/>
<sysproperty key="java.util.logging.config.file"
value="${src.dir}/logging.properties"/>
<sysproperty key="javax.net.ssl.keyStore" file="keys.jks"/>
<sysproperty key="javax.net.ssl.keyStoreType" value="jks"/>
<sysproperty key="javax.net.ssl.keyStorePassword" value="changeit"/>
<sysproperty key="javax.net.ssl.trustStore" file="cacerts.jks"/>
<sysproperty key="javax.net.ssl.trustStoreType" value="jks"/>
<sysproperty key="javax.net.ssl.trustStorePassword" value="changeit"/>
<arg line="${adaptor.args}"/>
</java>
</target>
<target name="run-fs" depends="build" description="Run filesystem adaptor">
<java classpath="${build-src.dir}" fork="true"
classname="adaptorlib.prebuilt.FileSystemAdaptor">
<classpath refid="adaptorlib.run.classpath"/>
<classpath location="${resource.dir}"/>
<classpath location="${json-simple.jar}"/>
<sysproperty key="java.util.logging.config.file"
value="${src.dir}/logging.properties"/>
<sysproperty key="javax.net.ssl.keyStore" file="keys.jks"/>
<sysproperty key="javax.net.ssl.keyStoreType" value="jks"/>
<sysproperty key="javax.net.ssl.keyStorePassword" value="changeit"/>
<sysproperty key="javax.net.ssl.trustStore" file="cacerts.jks"/>
<sysproperty key="javax.net.ssl.trustStoreType" value="jks"/>
<sysproperty key="javax.net.ssl.trustStorePassword" value="changeit"/>
<arg line="${adaptor.args}"/>
</java>
</target>
<target name="test" depends="build" description="Run JUnit tests">
<junit printsummary="yes" haltonfailure="yes" forkmode="once" fork="true">
<sysproperty key="net.sourceforge.cobertura.datafile"
file="${build-instrument.dir}/cobertura.ser"/>
<classpath refid="adaptorlib.run.classpath"/>
<classpath refid="cobertura.classpath"/>
<classpath location="${junit.jar}"/>
<classpath location="${opencsv.jar}"/>
<classpath location="${j-calais.jar}"/>
<classpath location="${build-instrument.dir}"/>
<classpath location="${build-src.dir}"/>
<classpath location="${build-test.dir}"/>
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset dir="${test.dir}">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="instrument" depends="build,clean-instrument"
description="Instrument classes">
<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
<cobertura-instrument datafile="${build-instrument.dir}/cobertura.ser"
todir="${build-instrument.dir}">
<fileset dir="${build-src.dir}">
<include name="adaptorlib/**"/>
</fileset>
</cobertura-instrument>
</target>
<target name="clean-instrument" description="Delete instrumented classes">
<delete dir="${build-instrument.dir}"/>
</target>
<target name="coverage-report" description="Generates code coverage report">
<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
<cobertura-report datafile="${build-instrument.dir}/cobertura.ser"
srcdir="${src.dir}" destdir="${build.dir}/coverage"/>
</target>
</project>