|
@@ -2,12 +2,21 @@
|
|
|
|
|
|
<property name="Name" value="ZooKeeper" />
|
|
|
<property name="name" value="zookeeper" />
|
|
|
- <property name="version" value="1.2.0" />
|
|
|
- <property name="year" value="2008" />
|
|
|
+
|
|
|
+ <property name="version" value="2.2.0" />
|
|
|
+ <property name="revision.dir" value="${basedir}/.revision" />
|
|
|
+ <property name="revision.properties" value="revision.properties" />
|
|
|
+ <property file="${basedir}/java/${revision.properties}" />
|
|
|
+
|
|
|
+ <!-- Target JDK version to build for. Certain zookeeper features -->
|
|
|
+ <!-- (for example, JMX) are only supported on JDK 1.6 -->
|
|
|
+ <property name="target.jdk" value="${ant.java.version}" />
|
|
|
|
|
|
<property name="src.dir" value="${basedir}/java/src" />
|
|
|
+ <property name="jmx.src.dir" value="${basedir}/java/jmx" />
|
|
|
<property name="lib.dir" value="${basedir}/java/lib" />
|
|
|
<property name="build.dir" value="${basedir}/build" />
|
|
|
+ <property name="distribution" value="${basedir}/distribution" />
|
|
|
<property name="src_generated.dir" value="${basedir}/java/generated" />
|
|
|
<property name="csrc_generated.dir" value="${basedir}/c/generated" />
|
|
|
<property name="build.classes" value="${build.dir}/classes" />
|
|
@@ -26,7 +35,7 @@
|
|
|
<property name="config.dir" value="${basedir}/test/config" />
|
|
|
<property name="test.junit.maxmem" value="512m" />
|
|
|
<property name="conf.dir" value="${basedir}/conf"/>
|
|
|
- <property name="javadoc.link.java" value="http://java.sun.com/j2se/1.5/docs/api/" />
|
|
|
+ <property name="javadoc.link.java" value="http://java.sun.com/j2se/${target.jdk}/docs/api/" />
|
|
|
<property name="javadoc.packages" value="com.yahoo.*" />
|
|
|
<property name="build.docs" value="${build.dir}/docs" />
|
|
|
<property name="build.javadoc" value="${build.docs}/api" />
|
|
@@ -48,12 +57,19 @@
|
|
|
<mkdir dir="${build.classes}" />
|
|
|
<tstamp>
|
|
|
<format property="build.time" pattern="MM/dd/yyyy HH:mm zz" timezone="GMT"/>
|
|
|
+ <format property="year" pattern="yyyy" timezone="GMT"/>
|
|
|
</tstamp>
|
|
|
+ <condition property="extra.src.dir" value="${jmx.src.dir}" else="">
|
|
|
+ <and>
|
|
|
+ <equals arg1="${target.jdk}" arg2="1.6"/>
|
|
|
+ <available file="${jmx.src.dir}" type="dir"/>
|
|
|
+ </and>
|
|
|
+ </condition>
|
|
|
</target>
|
|
|
|
|
|
<target name="jute" depends="init">
|
|
|
- <javac srcdir="${src.dir}" destdir="${build.classes}" target="1.5"
|
|
|
- source="1.5" includes="com/yahoo/jute/**" debug="on" />
|
|
|
+ <javac srcdir="${src.dir}" destdir="${build.classes}" target="${target.jdk}"
|
|
|
+ includes="com/yahoo/jute/**" debug="on" />
|
|
|
</target>
|
|
|
|
|
|
<target name="compile_jute_uptodate">
|
|
@@ -87,16 +103,23 @@
|
|
|
</target>
|
|
|
|
|
|
<target name="ver-gen" depends="init">
|
|
|
- <javac srcdir="${src.dir}" destdir="${build.classes}" target="1.5"
|
|
|
- source="1.5" includes="com/yahoo/zookeeper/version/util/**" debug="on" />
|
|
|
+ <javac srcdir="${src.dir}" destdir="${build.classes}" target="${target.jdk}"
|
|
|
+ includes="com/yahoo/zookeeper/version/util/**" debug="on" />
|
|
|
</target>
|
|
|
|
|
|
- <target name="version-info" depends="ver-gen">
|
|
|
- <mkdir dir="${src_generated.dir}" />
|
|
|
+ <target name="svn-revision" unless="lastRevision">
|
|
|
<svn>
|
|
|
- <status path="${src.dir}" lastChangedRevisionProperty="lastRevision" />
|
|
|
+ <status path="${basedir}/java" lastChangedRevisionProperty="lastRevision" />
|
|
|
</svn>
|
|
|
- <java classname="com.yahoo.zookeeper.version.util.VerGen" fork="true" dir="${src_generated.dir}">
|
|
|
+ <mkdir dir="${revision.dir}" />
|
|
|
+ <echo file="${revision.dir}/${revision.properties}"
|
|
|
+ message="lastRevision=${lastRevision}" />
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="version-info" depends="ver-gen,svn-revision">
|
|
|
+ <mkdir dir="${src_generated.dir}" />
|
|
|
+ <java classname="com.yahoo.zookeeper.version.util.VerGen" fork="true"
|
|
|
+ dir="${src_generated.dir}">
|
|
|
<arg value="${version}" />
|
|
|
<arg value="${lastRevision}" />
|
|
|
<arg value="${build.time}" />
|
|
@@ -107,11 +130,14 @@
|
|
|
</target>
|
|
|
|
|
|
<target name="build-generated" depends="compile_jute,version-info" >
|
|
|
- <javac srcdir="${src_generated.dir}" destdir="${build.classes}" target="1.5" source="1.5" debug="on" />
|
|
|
+ <javac srcdir="${src_generated.dir}" destdir="${build.classes}"
|
|
|
+ target="${target.jdk}" debug="on" />
|
|
|
</target>
|
|
|
|
|
|
<target name="compile" depends="build-generated">
|
|
|
- <javac srcdir="${src.dir}" destdir="${build.classes}" target="1.5" source="1.5" debug="on">
|
|
|
+ <javac destdir="${build.classes}" target="${target.jdk}" debug="on">
|
|
|
+ <src path="${src.dir}"/>
|
|
|
+ <src path="${extra.src.dir}"/>
|
|
|
<classpath>
|
|
|
<fileset dir="${build.classes}" />
|
|
|
<pathelement path="${lib.dir}/log4j-1.2.15.jar" />
|
|
@@ -119,6 +145,8 @@
|
|
|
</javac>
|
|
|
<copy todir="${build.classes}">
|
|
|
<fileset dir="${src.dir}"/>
|
|
|
+ <fileset dir="${extra.src.dir}"/>
|
|
|
+ <fileset dir="${src_generated.dir}"/>
|
|
|
</copy>
|
|
|
</target>
|
|
|
|
|
@@ -136,7 +164,7 @@
|
|
|
<target name="compile-test" depends="jar,test-classpath">
|
|
|
<mkdir dir="${build.testclasses}"/>
|
|
|
<javac srcdir="${test.src.dir}" destdir="${build.testclasses}"
|
|
|
- target="1.5" source="1.5" debug="on">
|
|
|
+ target="${target.jdk}" debug="on">
|
|
|
<classpath refid="test.classpath"/>
|
|
|
</javac>
|
|
|
</target>
|
|
@@ -167,7 +195,7 @@
|
|
|
<exec executable="hostname" outputproperty="host.name"/>
|
|
|
<jar jarfile="${jar.name}">
|
|
|
<fileset file="LICENSE" />
|
|
|
- <fileset dir="${build.classes}"/>
|
|
|
+ <fileset dir="${build.classes}" excludes="**/.generated"/>
|
|
|
<fileset file="${conf.dir}/log4j.properties"/>
|
|
|
<manifest>
|
|
|
<attribute name="Main-Class" value="com.yahoo.zookeeper.server.quorum.QuorumPeer" />
|
|
@@ -187,6 +215,47 @@
|
|
|
</antcall>
|
|
|
</target>
|
|
|
|
|
|
+ <!-- ====================================================== -->
|
|
|
+ <!-- Build all distribution tar files -->
|
|
|
+ <!-- ====================================================== -->
|
|
|
+ <available file="c/Makefile" property="Makefile.present"/>
|
|
|
+
|
|
|
+ <target name="c-dist">
|
|
|
+ <fail unless="Makefile.present"
|
|
|
+ message="Please run 'autoreconf -if && ./configure' in the c/ directory to generate a Makefile."/>
|
|
|
+ <exec dir="c" executable="make" failonerror="true">
|
|
|
+ <arg value="VERSION=${version}"/>
|
|
|
+ <arg value="dist"/>
|
|
|
+ </exec>
|
|
|
+ <mkdir dir="${distribution}"/>
|
|
|
+ <copy file="c/c-client-src-${version}.tar.gz" todir="${distribution}" />
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="dist" depends="release">
|
|
|
+ <mkdir dir="${distribution}"/>
|
|
|
+ <tar destfile="${distribution}/java-src-${version}.tar.gz" compression="gzip">
|
|
|
+ <tarfileset dir="java" includes="src/**,jmx/**,lib/**,ChangeLog"
|
|
|
+ prefix="zookeeper/java"/>
|
|
|
+ <tarfileset dir="test" includes="com/**,config/**"
|
|
|
+ prefix="zookeeper/test"/>
|
|
|
+ <tarfileset dir="${basedir}"
|
|
|
+ includes="zookeeper.jute,build.xml,conf/*,bin/*,README,LICENSE"
|
|
|
+ prefix="zookeeper"/>
|
|
|
+ <tarfileset dir="${revision.dir}" prefix="zookeeper/java"/>
|
|
|
+ </tar>
|
|
|
+ <tar destfile="${distribution}/java-bin-${version}.tar.gz" compression="gzip">
|
|
|
+ <tarfileset file="zookeeper-${version}.jar" prefix="zookeeper/lib"/>
|
|
|
+ <tarfileset dir="java/lib" includes="log4j*"
|
|
|
+ prefix="zookeeper/lib"/>
|
|
|
+ <tarfileset dir="${basedir}" includes="conf/*,bin/*,README,LICENSE"
|
|
|
+ prefix="zookeeper"/>
|
|
|
+ </tar>
|
|
|
+ <antcall target="c-dist"/>
|
|
|
+ <tar destfile="zookeeper-${version}.tar.gz" compression="gzip">
|
|
|
+ <tarfileset dir="${distribution}"/>
|
|
|
+ </tar>
|
|
|
+ </target>
|
|
|
+
|
|
|
<!-- ====================================================== -->
|
|
|
<!-- Clean. Delete the build files, and their directories -->
|
|
|
<!-- ====================================================== -->
|
|
@@ -195,6 +264,11 @@
|
|
|
<delete dir="${src_generated.dir}" />
|
|
|
<delete dir="${csrc_generated.dir}" />
|
|
|
<delete file="${jar.name}" />
|
|
|
+ <delete dir="${distribution}"/>
|
|
|
+ <delete dir="${revision.dir}"/>
|
|
|
+ <delete>
|
|
|
+ <fileset dir="${basedir}" includes="*.jar,*.tar.gz"/>
|
|
|
+ </delete>
|
|
|
</target>
|
|
|
|
|
|
<!-- ====================================================== -->
|