| <?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="<h1>${title} (Version ${version})</h1>" |
| bottom="Copyright 2002-2016 The Apache Software Foundation.<!-- |
| |
| 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.-->"> |
| <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> |