<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
<project default="all" name="javaone">

  <target depends="" name="init">
    <property name="build.compiler" value="jikes"/>
    <property name="build.compiler.emacs" value="true"/>     
    <property name="build.compiler.pedantic" value="true"/>
  </target>

  <target name="all" depends="program, javadoc, test.jar, runtest">
  </target> 

  <target name="program" depends="init">
    <javac srcdir="src"/>
  </target>

  <target name="javadoc" depends="init">
    <javadoc sourcepath="src" destdir="javadoc"
             packagenames="net.drijf.javaone"/>
  </target>
  
  <target name="test.jar" depends="init">
    <javac srcdir="test" classpath=".:src"/>
    <jar jarfile="test.jar" basedir="." includes="test/**.class"/>
    <!-- 
      Delete the file, since we do not want to have it on the class
      path. The test code depends the fact that the classes are
      loaded from (signed) jar files.
    -->
    <delete file="test/Test.class"/>

    <copy file="test.jar" tofile="test_by_ca1.jar"/>
    <signjar jar="test_by_ca1.jar" 
             keystore="private_keys.ks" 
             alias="by_ca1" 
             storepass="12345678"/>

    <copy file="test.jar" tofile="test_by_ca2.jar"/>
    <signjar jar="test_by_ca2.jar" 
             keystore="private_keys.ks" 
             alias="by_ca2" 
             storepass="12345678"/>

    <copy file="test.jar" tofile="test_by_delegated_ca.jar"/>
    <signjar jar="test_by_delegated_ca.jar" 
             keystore="private_keys.ks" 
             alias="by_delegated_ca" 
             storepass="12345678"/>

    <copy file="test.jar" tofile="test_expired.jar"/>
    <signjar jar="test_expired.jar" 
             keystore="private_keys.ks" 
             alias="expired" 
             storepass="12345678"/>
  </target>
  
  <target name="runtest" depends="program">
    <java classname="net.drijf.javaone.TestMain" fork="true">
      <classpath>
        <pathelement path="."/>
        <pathelement path="src"/>
      </classpath>
      <jvmarg value="-Djava.security.policy==testPolicy"/>
      <arg value="certs.ks"/>
      <arg value="12345678"/>
      <arg value="test.jar"/>
    </java>

    <java classname="net.drijf.javaone.TestMain" fork="true">
      <classpath>
        <pathelement path="."/>
        <pathelement path="src"/>
      </classpath>
      <jvmarg value="-Djava.security.policy==testPolicy"/>
      <arg value="certs.ks"/>
      <arg value="12345678"/>
      <arg value="test_by_ca1.jar"/>
    </java>

    <java classname="net.drijf.javaone.TestMain" fork="true">
      <classpath>
        <pathelement path="."/>
        <pathelement path="src"/>
      </classpath>
      <jvmarg value="-Djava.security.policy==testPolicy"/>
      <arg value="private_keys.ks"/>
      <arg value="12345678"/>
      <arg value="test_by_ca2.jar"/>
    </java>

    <java classname="net.drijf.javaone.TestMain" fork="true">
      <classpath>
        <pathelement path="."/>
        <pathelement path="src"/>
      </classpath>
      <jvmarg value="-Djava.security.policy==testPolicy"/>
      <arg value="certs.ks"/>
      <arg value="12345678"/>
      <arg value="test_by_delegated_ca.jar"/>
    </java>

    <java classname="net.drijf.javaone.TestMain" fork="true">
      <classpath>
        <pathelement path="."/>
        <pathelement path="src"/>
      </classpath>
      <jvmarg value="-Djava.security.policy==testPolicy"/>
      <arg value="certs.ks"/>
      <arg value="12345678"/>
      <arg value="test_expired.jar"/>
    </java>
  </target>

  <target name="dtd">
    <antstructure output="project.dtd"/>
  </target>

  <taskdef name="checkstyle"
		   classname="com.puppycrawl.tools.checkstyle.CheckStyleTask"
  />

  <target name="checkstyle-all">
    <checkstyle
        memberpattern="."
        parampattern="."
        staticpattern="."
        relaxjavadoc="true"
    >
      <fileset dir="." includes="**/*.java"/>
    </checkstyle>
  </target>

</project>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->


