190 lines
7.4 KiB
XML
190 lines
7.4 KiB
XML
<?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" encoding="${build.encoding}">
|
|
<classpath refid="classpath" />
|
|
<classpath>
|
|
<pathelement location="${zk.root}/build/test/classes"/>
|
|
</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>
|
|
<classpath>
|
|
<pathelement location="${zk.root}/build/test/classes"/>
|
|
</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>
|
|
|