<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- Build file for Tomcat Native -->
<project name="Tomcat Native" default="compile" basedir=".">
    <!-- Give user a chance to override without editing this file
        (and without typing -D each time it compiles it
    -->
    <property file="${user.home}/.ant.properties" />
    <property file="${user.home}/build.properties" />
    <property file=".ant.properties" />
    <property file="build.properties" />
    <property file="build.properties.default"/>

    <!-- Initialization properties -->
    <property name="project"               value="tomcat-native" />
    <property name="name"                  value="Tomcat Native" />
    <property name="title"                 value="Tomcat Native Library"/>
    <property name="year"                  value="2016" />

    <property name="test.runner"           value="junit.textui.TestRunner"/>

    <property name="version"               value="${version.major}.${version.minor}.${version.build}${version.suffix}" />
    <property name="version.number"        value="${version.major}.${version.minor}.${version.build}.${version.patch}" />
    <property name="version.major.minor"   value="${version.major}.${version.minor}" />

    <property name="final.name"            value="${project}-${version}" />

    <property name="build.dir" value="./dist"/>
    <property name="build.src" value="${build.dir}/src"/>
    <property name="build.dest" value="${build.dir}/classes"/>
    <property name="src.dir" value="."/>
    <property name="dist.root" value="./dist"/>
    <property name="ant.home" value="."/>

    <property name="docs.src" value="./xdocs"/>
    <property name="docs.dest" value="${dist.root}/doc"/>
    <property name="docs.dest.print" value="${dist.root}/doc/printable"/>
    <property name="test.dir" value="${build.dest}/test"/>
    <property name="examples.dir" value="${build.dest}/examples"/>

    <property name="tc.library.path" value="${basedir}/native/.libs"/>

    <!-- The base directory for component sources -->
    <property name="source.home"             value="java"/>

    <!-- Build classpath -->
    <path id="classpath">
        <pathelement location="${build.dest}/java"/>
    </path>

    <!-- Test classpath -->
    <path id="test.classpath">
        <pathelement location="${build.dest}/java"/>
        <pathelement location="${build.dest}/test"/>
        <pathelement location="${junit.jar}"/>
    </path>

    <!-- Examples classpath -->
    <path id="examples.classpath">
        <pathelement location="${build.dest}/java"/>
        <pathelement location="${build.dest}/examples"/>
    </path>

    <!-- =================================================================== -->
    <!-- prints the environment                                              -->
    <!-- =================================================================== -->
    <target name="env">
        <echo message="java.home = ${java.home}"/>
        <echo message="user.home = ${user.home}"/>
        <!--
        <echo message="java.class.path = ${java.class.path}"/>
        -->
        <echo message="tc.library.path = ${tc.library.path}"/>
        <echo message=""/>
    </target>

    <target name="prepare" depends="env">
       <mkdir dir="${build.dir}"/>
    </target>

    <!-- Download and dependency building -->
    <target name="proxyflags">
      <!-- check proxy parameters. -->
      <condition property="useproxy">
        <equals arg1="${proxy.use}" arg2="on" />
      </condition>
    </target>

    <target name="setproxy" depends="proxyflags" if="useproxy">
      <taskdef name="setproxy"
              classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy" />
      <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
                proxyuser="${proxy.user}" proxypassword="${proxy.password}" />
      <echo message="Using ${proxy.host}:${proxy.port} to download ${sourcefile}"/>
    </target>

    <target name="testexist">
      <echo message="Testing for ${destfile}"/>
      <available file="${destfile}" property="exist"/>
    </target>

    <target name="downloadgz" unless="exist" depends="setproxy,testexist">
      <!-- Download and extract the package -->
      <get src="${sourcefile}" dest="${base.path}/file.tar.gz" />
      <gunzip src="${base.path}/file.tar.gz" dest="${base.path}/file.tar"/>
      <untar src="${base.path}/file.tar" dest="${base.path}"/>
      <delete file="${base.path}/file.tar"/>
      <delete file="${base.path}/file.tar.gz"/>
    </target>

    <target name="downloadzip" unless="exist" depends="setproxy,testexist">
      <!-- Download and extract the package -->
      <get src="${sourcefile}" dest="${base.path}/file.zip" />
      <mkdir dir="${destdir}" />
      <unzip src="${base.path}/file.zip" dest="${destdir}"/>
      <delete file="${base.path}/file.zip"/>
    </target>

    <target name="downloadfile" unless="exist" depends="setproxy,testexist">
      <!-- Download extract the file -->
      <mkdir dir="${destdir}" />
      <get src="${sourcefile}" dest="${destfile}" />
    </target>

    <target name="download" description="Download needed dependencies">

      <mkdir dir="${base.path}"/>

      <antcall target="downloadzip">
        <param name="sourcefile" value="${junit.loc}"/>
        <param name="destfile" value="${junit.jar}"/>
        <param name="destdir" value="${base.path}"/>
      </antcall>
    </target>

    <!-- =================================================================== -->
    <!-- Creates the API documentation                                       -->
    <!-- =================================================================== -->
    <target name="javadocs" description="Java documentation">
        <mkdir dir="${docs.dest}"/>
        <mkdir dir="${docs.dest}/api"/>
        <javadoc sourcepath="${build.src}/java"
            destdir="${docs.dest}/api"
            author="true"
            version="true"
            overview="${src.dir}/java/overview.html"
            packagenames="org.apache.tomcat.*"
            windowtitle="${title} (Version ${version})"
            doctitle="&lt;h1&gt;${title} (Version ${version})&lt;/h1&gt;"
            bottom="Copyright 2002-2016 The Apache Software Foundation.&lt;!--

Licensed under the Apache License, Version 2.0 (the 'License');
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an 'AS IS' BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.--&gt;">
            <classpath refid="classpath"/>
        </javadoc>
     </target>

    <!-- =================================================================== -->
    <!-- Cleans up the build directory                                       -->
    <!-- =================================================================== -->
    <target name="clean" description="Clean build directory">
        <delete dir="${build.dir}"/>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the source directory                                       -->
    <!-- =================================================================== -->
    <target name="compile" depends="prepare" description="Compile Java sources">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/java"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.src}/java"/>
        <tstamp>
            <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
            <format property="TSTAMP" pattern="hh:mm:ss"/>
        </tstamp>
        <!-- Copy static resource files -->
        <filter token="VERSION" value="${version}"/>
        <filter token="VERSION_NUMBER" value="${version.number}"/>
        <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
        <copy todir="${build.src}/java" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${src.dir}/java">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>

        <javac srcdir="${build.src}/java"
            destdir="${build.dest}/java"
            source="${compile.source}"
            target="${compile.target}"
            debug="${compile.debug}"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            encoding="ISO-8859-1">
            <classpath refid="classpath"/>
        </javac>

        <copy todir="${build.dest}/java" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${build.src}/java">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <!-- ================================================================== -->
    <!-- Make Tomcat Native jar                                             -->
    <!-- ================================================================== -->
    <target name="jar" depends="compile" description="Generates the Jar file">
        <jar
            destfile="${build.dir}/${final.name}.jar"
            basedir="${build.dir}/classes/java"
            excludes="**/*.java">
            <manifest>
                <section name="org/apache/tomcat/jni">
                    <attribute name="Specification-Title" value="Tomcat Native"/>
                    <attribute name="Specification-Version" value="${version}"/>
                    <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-Title" value="org.apache.tomcat.jni"/>
                    <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                    <attribute name="Implementation-Vendor-Id" value="org.apache"/>
                    <attribute name="Implementation-Version" value="${version} (build ${DSTAMP} ${TSTAMP})"/>
                </section>
            </manifest>
        </jar>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the test directory                                         -->
    <!-- =================================================================== -->
    <target name="compile-tests" depends="compile" description="Compile Java test classes">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/test"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.src}/test"/>
        <tstamp>
            <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
            <format property="TSTAMP" pattern="hh:mm:ss"/>
        </tstamp>
        <!-- Copy static resource files -->
        <filter token="VERSION" value="${version}"/>
        <filter token="VERSION_NUMBER" value="${version.number}"/>
        <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
        <copy todir="${build.src}/test" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${src.dir}/test">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
        <javac srcdir="${build.src}/test"
            destdir="${build.dest}/test"
            source="${compile.source}"
            target="${compile.target}"
            debug="on"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            encoding="ISO-8859-1">
            <classpath refid="test.classpath"/>
        </javac>
        <copy todir="${build.dest}/test" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${build.src}/test">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <!-- =================================================================== -->
    <!-- Junit tests                                                         -->
    <!-- =================================================================== -->
    <target name="test" depends="compile-tests" description="Run the tests">
        <echo message="Running Tomcat Native package tests ..."/>
        <java dir="${test.dir}" classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
            <arg value="org.apache.tomcat.jni.FileTestSuite"/>
            <classpath refid="test.classpath"/>
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
        <java dir="${test.dir}" classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
            <arg value="org.apache.tomcat.jni.SocketServerTestSuite"/>
            <classpath refid="test.classpath"/>
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>

    <!-- =================================================================== -->
    <!-- Compiles the examples directory                                     -->
    <!-- =================================================================== -->
    <target name="compile-examples" depends="compile" description="Compile example Java classes">
        <mkdir dir="${build.dest}"/>
        <mkdir dir="${build.dest}/examples"/>
        <mkdir dir="${build.src}"/>
        <mkdir dir="${build.src}/examples"/>
        <tstamp>
            <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
            <format property="TSTAMP" pattern="hh:mm:ss"/>
        </tstamp>
        <!-- Copy static resource files -->
        <filter token="VERSION" value="${version}"/>
        <filter token="VERSION_NUMBER" value="${version.number}"/>
        <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
        <copy todir="${build.src}/examples" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${src.dir}/examples">
                <include name="**/*.java"/>
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
        <javac srcdir="${build.src}/examples"
            destdir="${build.dest}/examples"
            source="${compile.source}"
            target="${compile.target}"
            debug="${compile.debug}"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            encoding="ISO-8859-1">
            <classpath refid="examples.classpath"/>
        </javac>
        <copy todir="${build.dest}/examples" filtering="yes" encoding="ISO-8859-1">
            <fileset dir="${build.src}/examples">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <!-- =================================================================== -->
    <!-- executes the examples                                                -->
    <!-- =================================================================== -->
    <target name="run-echo" depends="compile-examples" description="Run the Echo example">
        <echo message="Running Tomcat Native Echo example ..."/>
        <java dir="${examples.dir}" classname="org.apache.tomcat.jni.Echo"
             fork="yes" failonerror="${test.failonerror}">
            <classpath refid="examples.classpath"/>
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>
    <target name="run-ssl-server" depends="compile-examples" description="Run the SSL Server example">
        <echo message="Running Tomcat Native SSL Server example ..."/>
        <java dir="${examples.dir}" classname="org.apache.tomcat.jni.SSLServer"
             fork="yes" failonerror="${test.failonerror}">
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <classpath refid="examples.classpath"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>
    <target name="run-local-server" depends="compile-examples" description="Run the Local Server example">
        <echo message="Running Tomcat Native Local Server example ..."/>
        <java dir="${examples.dir}" classname="org.apache.tomcat.jni.LocalServer"
             fork="yes" failonerror="${test.failonerror}">
            <classpath refid="examples.classpath"/>
            <env key="PATH" path="${tc.library.path}:${java.library.path}"/>
            <env key="Path" path="${tc.library.path}:${java.library.path}"/>
            <jvmarg value="-Djava.library.path=${tc.library.path}"/>
        </java>
    </target>
</project>
