| <?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. |
| --> |
| |
| <project name="rest" default="jar"> |
| <import file="../build-contrib.xml"/> |
| |
| <property name="test.build.dir" value="${build.test}" /> |
| <property name="test.src.dir" value="src/test/java"/> |
| <property name="test.log.dir" value="${test.build.dir}/logs" /> |
| <property name="test.data.dir" value="${test.build.dir}/data" /> |
| <property name="test.data.upgrade.dir" value="${test.data.dir}/upgrade" /> |
| <property name="test.tmp.dir" value="${test.build.dir}/tmp" /> |
| <property name="test.output" value="no" /> |
| <property name="test.timeout" value="900000" /> |
| <property name="test.junit.output.format" value="plain" /> |
| <property name="test.junit.fork.mode" value="perTest" /> |
| <property name="test.junit.printsummary" value="yes" /> |
| <property name="test.junit.haltonfailure" value="no" /> |
| <property name="test.junit.maxmem" value="512m" /> |
| |
| <!-- ====================================================== --> |
| <!-- Macro definitions --> |
| <!-- ====================================================== --> |
| <macrodef name="macro_tar" description="Worker Macro for tar"> |
| <attribute name="param.destfile"/> |
| <element name="param.listofitems"/> |
| <sequential> |
| <tar compression="gzip" longfile="gnu" |
| destfile="@{param.destfile}"> |
| <param.listofitems/> |
| </tar> |
| </sequential> |
| </macrodef> |
| |
| <target name="package" depends="jar" unless="skip.contrib"> |
| <echo message="contrib: ${name}"/> |
| <mkdir dir="${dist.dir}${package.share}/zookeeper-contrib/zookeeper-contrib-${name}"/> |
| <copy todir="${dist.dir}${package.share}/zookeeper-contrib/zookeeper-contrib-${name}"> |
| <fileset dir="${build.dir}"> |
| <include name="zookeeper-${version}-${name}.jar" /> |
| </fileset> |
| </copy> |
| <copy todir="${dist.dir}${package.share}/zookeeper-contrib/zookeeper-contrib-${name}/lib"> |
| <fileset dir="${build.dir}/lib" /> |
| </copy> |
| <copy todir="${dist.dir}${package.share}/zookeeper-contrib/zookeeper-contrib-${name}/conf"> |
| <fileset dir="conf" /> |
| </copy> |
| </target> |
| |
| <target name="setjarname"> |
| <property name="jarname" |
| value="${build.dir}/zookeeper-${version}-${name}.jar"/> |
| </target> |
| |
| <target name="compile" depends="ivy-retrieve,zookeeperbuildcontrib.compile"/> |
| |
| <target name="test" |
| depends="compile-test,test-init,test-category,test-start,junit.run,test-stop" /> |
| |
| <target name="compile-test" depends="ivy-retrieve-test,compile"> |
| <property name="target.jdk" value="${ant.java.version}" /> |
| <property name="src.test.local" location="${basedir}/src/test" /> |
| <mkdir dir="${build.test}"/> |
| <javac srcdir="${src.test.local}" |
| destdir="${build.test}" |
| target="${target.jdk}" |
| debug="on" > |
| <classpath refid="classpath" /> |
| </javac> |
| </target> |
| |
| <target name="test-init" depends="jar,compile-test"> |
| <delete dir="${test.log.dir}" /> |
| <delete dir="${test.tmp.dir}" /> |
| <delete dir="${test.data.dir}" /> |
| <mkdir dir="${test.log.dir}" /> |
| <mkdir dir="${test.tmp.dir}" /> |
| <mkdir dir="${test.data.dir}" /> |
| </target> |
| |
| <target name="test-start"> |
| <exec executable="${test.src.dir}/zkServer.sh"> |
| <arg value="startClean"/> |
| </exec> |
| </target> |
| |
| <target name="test-stop"> |
| <exec executable="${test.src.dir}/zkServer.sh"> |
| <arg value="stop"/> |
| </exec> |
| </target> |
| |
| <target name="test-category"> |
| <property name="test.category" value=""/> |
| </target> |
| |
| <target name="junit.run"> |
| <echo message="${test.src.dir}" /> |
| <junit showoutput="${test.output}" |
| printsummary="${test.junit.printsummary}" |
| haltonfailure="${test.junit.haltonfailure}" |
| fork="yes" |
| forkmode="${test.junit.fork.mode}" |
| maxmemory="${test.junit.maxmem}" |
| dir="${basedir}" timeout="${test.timeout}" |
| errorProperty="tests.failed" failureProperty="tests.failed"> |
| <sysproperty key="build.test.dir" value="${test.tmp.dir}" /> |
| <sysproperty key="test.data.dir" value="${test.data.dir}" /> |
| <sysproperty key="log4j.configuration" |
| value="file:${basedir}/conf/log4j.properties" /> |
| <classpath refid="classpath"/> |
| <classpath> |
| <pathelement path="${build.test}" /> |
| </classpath> |
| <formatter type="${test.junit.output.format}" /> |
| <batchtest todir="${test.log.dir}" unless="testcase"> |
| <fileset dir="${test.src.dir}" |
| includes="**/*${test.category}Test.java"/> |
| </batchtest> |
| <batchtest todir="${test.log.dir}" if="testcase"> |
| <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/> |
| </batchtest> |
| </junit> |
| <fail if="tests.failed">Tests failed!</fail> |
| </target> |
| |
| <target name="jar" depends="checkMainCompiled, setjarname, compile"> |
| <echo message="contrib: ${name}"/> |
| <jar jarfile="${jarname}"> |
| <fileset file="${zk.root}/LICENSE.txt" /> |
| <fileset dir="${build.classes}"/> |
| <fileset dir="${build.test}"/> |
| </jar> |
| </target> |
| |
| <target name="run" depends="jar"> |
| <echo message="contrib: ${name}"/> |
| <java classname="org.apache.zookeeper.server.jersey.RestMain" fork="true"> |
| <classpath> |
| <pathelement path="${jarname}" /> |
| <fileset dir="${build.dir}/lib" includes="*.jar"/> |
| <fileset dir="${zk.root}/build" includes="zookeeper-*.jar"/> |
| <pathelement path="${zk.root}/src/contrib/${name}/conf" /> |
| <fileset dir="${zk.root}/zookeeper-server/src/main/resources/lib"> |
| <include name="**/*.jar" /> |
| </fileset> |
| </classpath> |
| </java> |
| </target> |
| |
| <target name="tar" depends="clean, jar"> |
| <echo message="building tar.gz: ${name}" /> |
| <macro_tar param.destfile="${build.dir}/zookeeper-${version}-${name}.tar.gz"> |
| <param.listofitems> |
| <tarfileset dir="${build.dir}/lib" prefix="lib" includes="**/*.jar" /> |
| <tarfileset file="${build.dir}/zookeeper-*-rest.jar" /> |
| <tarfileset dir="${zk.root}/build" includes="zookeeper-*.jar" prefix="lib" /> |
| <tarfileset dir="${zk.root}/src/contrib/${name}/conf" prefix="conf" /> |
| <tarfileset dir="${zk.root}/zookeeper-server/src/main/resources/lib" prefix="lib" includes="**/*.jar" /> |
| <tarfileset file="${zk.root}/src/contrib/${name}/rest.sh" /> |
| </param.listofitems> |
| </macro_tar> |
| </target> |
| |
| </project> |
| |