<?xml version="1.0" encoding="utf-8"?>
<project default="jar">
  <loadproperties>
    <file file="java/build/properties"/>
  </loadproperties>
  <loadproperties>
    <file file="java/private/properties"/>
  </loadproperties>

  <target name="keychain-check">
    <mkdir dir="${jar.key.store.dir}" />
    <available file="${jar.key.store}"
               property="keychain.exists" />
  </target>
  
  <target name="make-keychain"
          depends="keychain-check"
          unless="keychain.exists">
    <exec dir="." executable="keytool">
      <arg line="-genkey -keystore '${jar.key.store}' -alias '${jar.key.alias}' -storepass '${jar.key.pass}' -dname '${distinguished.name}'" />
    </exec>
  </target>

<!--
  <target name="target-lib-check">
    <available file="target/lib"
               property="target.lib.exists" />
  </target>

  <target name="make-target-lib"
          depends="target-lib-check"
          unless="target.lib.exists">
    <exec dir="." executable="ln">
      <arg line="-s ../lib target/lib"/>
    </exec>
  </target>
-->
  
  <target name="setup" depends="make-keychain" unless="setup.done">
    <mkdir dir="build/" />
    <!-- Even with exclude ..., is still overflowing the heap -->
    <copy todir="build/">
      <fileset dir="java/src" followsymlinks="false">
        <include name="**/EmptyApplet.java"/>
        <include name="**/LoggingApplet.java"/>
        <include name="**/ScriptEngineListApplet.java"/>
        <include name="**/JarFileApplet.java"/>
        <include name="**/ScriptRunnerApplet.java"/>
        <include name="**/PingScriptApplet.java"/>
        <include name="**/SetterTestApplet.java"/>
        <include name="**/FilesystemListApplet.java"/>
        <include name="**/DOMAccessorApplet.java"/>
        <include name="**/FileListApplet.java"/>
        <include name="**/RhinoRunnerApplet.java"/>
        <exclude name="..." />
        <exclude name="**/..." />
      </fileset>
      <fileset dir="." followsymlinks="false">
        <include name="bin/"/>
        <include name="lib/"/>
        <include name="test/"/>
        <exclude name="lib/jstun/" />
        <exclude name="..." />
        <exclude name="**/..." />
      </fileset>
      <fileset dir="lib/jquery" followsymlinks="true">
        <include name="."/>
      </fileset>
    </copy>
    <property name="setup.done" value="true" />
  </target>

  <target name="jar" depends="setup">
    <javac srcdir="build/" destdir="build/" deprecation="on" includeantruntime="false">
      <!--<compilerarg value="-Xlint"/>-->
      <classpath>
        <pathelement location=".../lib/jre/plugin/jar"/>
<!--
        <pathelement location="lib/rhino/js/jar"/>
        <pathelement location="lib/htmlunit/core/js/jar"/>
-->
<!--
        <pathelement location=".../lib/java/lib/java-plugin-jre-1.6.0_23.jar"/>
        <pathelement location=".../lib/java/lib/smack-3.1.0.jar"/>
        <pathelement location=".../lib/java/lib/neo4j-kernel-1.3-SNAPSHOT.jar"/>
-->
        <!--
        <fileset dir="${user.home}/.../lib/java/lib" followsymlinks="false">
          <include name="**/*.jar"/>
          <exclude name="..." />
          <exclude name="**/..." />
        </fileset>
        -->
      </classpath>
    </javac>
<!--
    <java jar="lib/closure/compiler/jar" fork="true">
      <arg value="-js=lib/jquery/js"/>
      <arg value="-js_output_file=lib/jquery/min/js"/>
    </java>
-->
    <mkdir dir="${jar.dir}" />
    <jar destfile="${jar}" basedir="build/">
      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Main-Class" value="${main.class}" />
        <attribute name="Class-Path"
                   value=".../lib/tip/lib/smack/jar .../lib/tip/lib/smack/x/jar"/>
      </manifest>
    </jar>
<!--
    <signjar jar=".../lib/java/lib/neo4j-kernel-1.3-SNAPSHOT.jar"
             alias="${jar.key.alias}" storepass="${jar.key.pass}" keystore="${jar.key.store}" />
    <signjar jar=".../lib/java/lib/geronimo-jta_1.1_spec-1.1.1.jar"
             alias="${jar.key.alias}" storepass="${jar.key.pass}" keystore="${jar.key.store}" />
-->
    <signjar jar="${jar}" alias="${jar.key.alias}" storepass="${jar.key.pass}" keystore="${jar.key.store}" />
    <signjar jar="lib/smack/jar" alias="${jar.key.alias}" storepass="${jar.key.pass}" keystore="${jar.key.store}" />
    <signjar jar="lib/smack/x/jar" alias="${jar.key.alias}" storepass="${jar.key.pass}" keystore="${jar.key.store}" />
<!--
    <signjar jar="lib/htmlunit/core/js/jar" alias="${jar.key.alias}" storepass="${jar.key.pass}" keystore="${jar.key.store}" />
-->
  </target>

  <target name="javadoc" depends="setup">
    <propertyregex property="escaped.name"
                   input="${author.name}"
                   regexp=" "
                   replace="%20"
                   global="true" />
    <javadoc packagenames="org.dhappy.*" sourcepath="build/"
             excludepackagenames="" defaultexcludes="yes"
             destdir="java/doc/" windowtitle="${doc.title}"
             author="true" version="true" use="true">
      <doctitle><![CDATA[<h1><a href="${project.uri}">${doc.title}</a></h1>]]></doctitle>
      <bottom><![CDATA[<a href="${author.uri}">${author.name}</a> <a href="mailto:${escaped.name}%20%3C${author.email}%3E">${author.email}</a>]]></bottom>
      <!--
          <tag name="todo" scope="all" description="To do:"/>
          <group title="Group 1 Packages" packages="com.dummy.test.a*"/>
          <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/>
          <link offline="true" href="http://java.sun.com/products/jdk/1.2/docs/api/" packagelistLoc="C:\tmp"/>
          <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/>
      -->
    </javadoc>
  </target>

</project>
