<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="uwc" default="all">


    <property file="uwc.properties"/>
    <property environment="env"/>
    <!--<property name="project.jdk.home" value="${jdk.home.1.5}"/>-->
    <property name="project.jdk.home" value="${env.JAVA_HOME}"/>
    <property name="project.jdk.classpath" value="jdk.classpath.1.5"/>
    <!-- Uncomment the following property if no tests compilation is needed -->
    <!--
   <property name="skip.tests" value="true"/>
    -->

    <!-- Compiler options -->

    <property name="compiler.debug" value="on"/>
    <property name="compiler.generate.no.warnings" value="off"/>
    <!--	 <property name="compiler.args" value=""/> -->
    <!-- Can we put this directly in the code? -->
    <property name="compiler.args" value="-J-Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser"/>
    <property name="compiler.max.memory" value="128m"/>
    <patternset id="ignored.files">
        <exclude name="**/CVS/**"/>
        <exclude name="**/SCCS/**"/>
        <exclude name="**/RCS/**"/>
        <exclude name="**/rcs/**"/>
        <exclude name="**/.DS_Store/**"/>
        <exclude name="**/.svn/**"/>
    </patternset>
    <patternset id="compiler.resources">
        <include name="**/?*.properties"/>
        <include name="**/?*.xml"/>
        <include name="**/?*.gif"/>
        <include name="**/?*.png"/>
        <include name="**/?*.jpeg"/>
        <include name="**/?*.jpg"/>
        <include name="**/?*.html"/>
        <include name="**/?*.dtd"/>
        <include name="**/?*.tld"/>
    </patternset>

    <!--<fileset dir="${jdk.home.1.5}">-->
    <!-- JDK definitions -->
    <path id="jdk.classpath.1.5">
        <fileset dir="${env.JAVA_HOME}">
            <include name="jre/lib/charsets.jar"/>
            <include name="jre/lib/deploy.jar"/>
            <include name="jre/lib/javaws.jar"/>
            <include name="jre/lib/jce.jar"/>
            <include name="jre/lib/jsse.jar"/>
            <include name="jre/lib/plugin.jar"/>
            <include name="jre/lib/rt.jar"/>
            <include name="jre/lib/ext/dnsns.jar"/>
            <include name="jre/lib/ext/localedata.jar"/>
            <include name="jre/lib/ext/sunjce_provider.jar"/>
            <include name="jre/lib/ext/sunpkcs11.jar"/>
        </fileset>
    </path>


    <!-- Global Libraries -->


    <!-- Application Server Libraries -->

    <!-- Modules -->


    <!-- Module uwc -->

    <property name="module.uwc.basedir" value="${basedir}"/>

    <property name="module.jdk.home.uwc" value="${project.jdk.home}"/>
    <property name="module.jdk.classpath.uwc" value="${project.jdk.classpath}"/>

    <property name="compiler.args.uwc" value="${compiler.args}"/>

    <property name="uwc.output.dir" value="${module.uwc.basedir}/target/uwc"/>
    <property name="uwc.output.classes.dir" value="${module.uwc.basedir}/target/uwc/classes"/>
    <property name="uwc.testoutput.dir" value="${module.uwc.basedir}/target/uwc/classes"/>
    <property name="gen-source-dir" value="${module.uwc.basedir}/gensrc"/>
    <property name="gen-source-java-dir" value="${gen-source-dir}/java"/>
    <property name="gen-axis-code-marker-file" value="${gen-source-dir}/.axis-generated"/>


    <!-- The task requires the following libraries from IntelliJ IDEA distribution: -->
    <!--   javac2.jar; jdom.jar; bcel.jar -->
    <!-- JDK definitions -->
    <path id="intellij.classpath">
        <fileset dir="${module.uwc.basedir}/lib">
            <include name="bcel.jar"/>
            <include name="javac2.jar"/>
            <include name="jdom.jar"/>
        </fileset>
    </path>
    <taskdef name="javac2" classname="com.intellij.uiDesigner.ant.Javac2"
             classpathref="intellij.classpath"/>

    <path id="uwc.module.bootclasspath">
        <!-- Paths to be included in compilation bootclasspath -->
    </path>

    <path id="uwc.module.classpath">
        <path refid="${module.jdk.classpath.uwc}"/>

        <path refid="intellij.classpath"/>

        <fileset dir="${module.uwc.basedir}/lib">
            <include name="*.jar"/>
        </fileset>
        <pathelement location="${module.uwc.basedir}/lib/*.jar"/>
        <!--<pathelement location="${module.uwc.basedir}/lib/activation.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/axis-ant.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/axis-schema.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/axis.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/commons-discovery-0.2.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/commons-logging-1.0.4.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/jakarta-oro-2.0.8.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/jaxrpc.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/junit.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/log4j-1.2.13.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/mail.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/saaj.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/wsdl4j-1.5.1.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/confluence-remote-java-wrapper-v3.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/lib/*.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/target/wsdl4j-1.5.1.jar"/>-->
        <!--<pathelement location="${module.uwc.basedir}/target/wsdl4j-1.5.1.jar"/>-->

    </path>


    <patternset id="excluded.from.module.uwc">
        <patternset refid="ignored.files"/>
    </patternset>

    <patternset id="excluded.from.compilation.uwc">
        <patternset refid="excluded.from.module.uwc"/>
    </patternset>

    <path id="uwc.module.sourcepath">
        <dirset dir="${module.uwc.basedir}">
            <include name="src"/>
            <include name="gensrc/java"/>
        </dirset>
    </path>


    <target name="compile.module.uwc" depends="compile.module.uwc.production,compile.module.uwc.tests"
            description="compile module(s) uwc"/>

    <target name="compile.module.uwc.production" description="compile module(s) uwc production classes">
        <mkdir dir="${uwc.output.classes.dir}"/>
        <javac2 destdir="${uwc.output.classes.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}"
                memoryMaximumSize="${compiler.max.memory}" fork="true" executable="${module.jdk.home.uwc}/bin/javac">
            <compilerarg line="${compiler.args.uwc}"/>
            <bootclasspath refid="uwc.module.bootclasspath"/>
            <classpath refid="uwc.module.classpath"/>
            <src refid="uwc.module.sourcepath"/>
        </javac2>

        <copy todir="${uwc.output.classes.dir}">
            <fileset dir="${module.uwc.basedir}/src">
                <patternset refid="compiler.resources"/>
                <type type="file"/>
            </fileset>
        </copy>
    </target>

    <target name="compile.module.uwc.tests" depends="compile.module.uwc.production"
            description="compile module(s) uwc test classes" unless="skip.tests"/>

    <target name="clean.module.uwc" description="cleanup module">
        <delete dir="target"/>
        <delete dir="${uwc.testoutput.dir}"/>
    </target>

    <target name="init" description="Build initialization">
        <!-- Perform any build initialization in this target -->
    </target>

    <target name="clean" depends="clean.module.uwc" description="cleanup all"/>

    <target name="all" depends="init, compile.module.uwc, finish-dist" description="build all"/>

    <target name="finish-dist">
        <copy todir="${uwc.output.dir}/lib">
            <fileset dir="lib"/>
        </copy>
        <copy todir="${uwc.output.dir}">
            <fileset dir="bin"/>
        </copy>
        <copy todir="${uwc.output.dir}/images">
            <fileset dir="images"/>
        </copy>
        <!-- default properties -->
        <copy todir="${uwc.output.dir}/conf" overwrite="true">
            <fileset dir="conf"/>
        </copy>
        <!-- but for a generic build - use local properties
                    note: failonerror is false so that if there's no conf-local
                   the build can continue merrily on its way
            -->
        <copy todir="${uwc.output.dir}/conf" overwrite="true" failonerror="false">
            <fileset dir="conf-local"/>
        </copy>

    </target>

    <target name="package" depends="all" description="create the distribution file and place in the dist dir">

        <!-- package with default properties!!-->
        <copy todir="${uwc.output.dir}/conf" overwrite="true">
            <fileset dir="conf"/>
        </copy>

        <delete dir="target/uwc/output"/>
        <antcall target="CreateExecutableJarFileWithExternalLibrary"/>
        <mkdir dir="./dist"/>
        <zip basedir="target" excludes="uwc/classes/**, uwc/lib/**, target/uwc/lib/**" excludesfile="bin/run_uwc_devel.sh" destfile="./dist/uwc.zip"/>
    </target>

    <target name="CreateExecutableJarFileWithExternalLibrary">
        <jar destfile="target/uwc/uwc.jar">
            <zipfileset dir="${module.uwc.basedir}/target/uwc/classes" prefix=""/>            

            <zipfileset src="${module.uwc.basedir}/lib/activation.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/axis-1.2.1.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/axis-jaxrpc-1.2.1.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/axis-saaj-1.2.1.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/bcel.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/commons-codec-1.3.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/commons-discovery-0.2.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/commons-httpclient-3.0.jar"/>
				<zipfileset src="${module.uwc.basedir}/lib/commons-lang-2.1.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/commons-logging-1.0.4.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/confluence-xmlrpc-wrapper-v5.2.0.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/dom4j-1.4-full.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/forms_rt.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/jakarta-oro-2.0.8.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/javac2.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/jaxrpc.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/jdom.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/junit.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/log4j-1.2.13.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/mail.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/mysql-connector-java-5.0.3-bin.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/saaj.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/sharepoint-wrapper-1.0.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/substance.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/swing-layout-1.0.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/treewrapper.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/Tidy.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/wsdl4j-1.5.1.jar"/>
            <zipfileset src="${module.uwc.basedir}/lib/xmlrpc-2.0.1.jar"/>
				<zipfileset src="${module.uwc.basedir}/lib/apache-mime4j-0.6.1.jar"/>
            <manifest>
                <attribute name="Main-Class" value="com.atlassian.uwc.ui.UWCForm3"/>
            </manifest>
        </jar>
    </target>

    <!--<target name="generate-axis-client-code" unless="axis-uptodate">-->
    <!--<echo message="==== ========================================"/>-->
    <!--<echo message="==== generating axis client classes for devel ====="/>-->
    <!--<echo message="==== =========================================="/>-->
    <!--<mkdir dir="${gen-source-java-dir}"/>-->
    <!--<java classname="org.apache.axis.wsdl.WSDL2Java" fork="true">-->
    <!--<arg line="-p com.atlassian.uwc.soapclient \-\-output ${gen-source-java-dir} ${module.uwc.basedir}/confluenceservice-v1.wsdl"/>-->
    <!--<classpath>-->
    <!--<path refid="uwc.module.classpath"/>-->
    <!--</classpath>-->
    <!--</java>-->
    <!--<touch file="${gen-axis-code-marker-file}"/>-->
    <!--</target>-->

    <target name="run-v2" depends="init,compile.module.uwc" description="Run uwc gui version 2">
        <java classname="com.atlassian.uwc.ui.UWCForm2" fork="true" dir="${uwc.output.dir}">
            <classpath>
                <pathelement location="${uwc.output.classes.dir}"/>
                <fileset dir="${uwc.output.dir}/lib">
                    <include name="*.jar"/>
                </fileset>
            </classpath>
        </java>
    </target>

	<target name="package-spoof" description="Create spoof jar for use with APR">
		<jar jarfile="./dist/uwc-spoof.jar">
			<fileset dir="./src/etc"/>	
		</jar>
	</target>

	<target name="package-nolibs" depends="init, compile.module.uwc" description="Create uwc.jar containing only UWC classes with classpath set to point to lib jars in SAME directory (so we can deploy all webstart resources from same page)">
		<jar destfile="target/uwc/uwc.jar">
         <zipfileset dir="${module.uwc.basedir}/target/uwc/classes" prefix=""/>            
      	<manifest>
         	<attribute name="main-class" value="com.atlassian.uwc.ui.UWCForm3"/>
				<attribute name="Class-Path" value="./Tidy.jar ./javac2.jar ./activation.jar ./jaxrpc.jar ./axis-1.2.1.jar ./jdom.jar ./axis-jaxrpc-1.2.1.jar ./junit.jar ./axis-saaj-1.2.1.jar ./log4j-1.2.13.jar ./bcel.jar ./mail.jar ./commons-codec-1.3.jar ./mysql-connector-java-5.0.3-bin.jar ./commons-discovery-0.2.jar ./saaj.jar ./commons-httpclient-3.0.jar ./sharepoint-wrapper-1.0.jar ./commons-logging-1.0.4.jar ./substance.jar ./confluence-xmlrpc-wrapper-v4.07.jar ./swing-layout-1.0.jar ./dom4j-1.4-full.jar ./treewrapper.jar ./forms_rt.jar ./wsdl4j-1.5.1.jar ./jakarta-oro-2.0.8.jar ./xmlrpc-2.0.1.jar"/>
			</manifest>
   	</jar>
	</target>

</project>
