blob: 512aec75a72fa224724d9057434f1d1180557e9c [file] [log] [blame]
David Reiss36a5a252009-04-29 23:20:56 +00001<?xml version="1.0"?>
David Reissea2cba82009-03-30 21:35:00 +00002<!--
3 Licensed to the Apache Software Foundation (ASF) under one
4 or more contributor license agreements. See the NOTICE file
5 distributed with this work for additional information
6 regarding copyright ownership. The ASF licenses this file
7 to you under the Apache License, Version 2.0 (the
8 "License"); you may not use this file except in compliance
9 with the License. You may obtain a copy of the License at
jfarrell400d02c2015-08-25 01:14:12 -040010
Jake Farrell4b8faf92011-04-19 21:11:54 +000011 http://www.apache.org/licenses/LICENSE-2.0
jfarrell400d02c2015-08-25 01:14:12 -040012
David Reissea2cba82009-03-30 21:35:00 +000013 Unless required by applicable law or agreed to in writing,
14 software distributed under the License is distributed on an
15 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 KIND, either express or implied. See the License for the
17 specific language governing permissions and limitations
18 under the License.
Jake Farrell4b8faf92011-04-19 21:11:54 +000019 -->
David Reiss36a5a252009-04-29 23:20:56 +000020<project name="libthrift" default="dist" basedir="."
Bryan Duxbury547edc72010-03-28 21:02:38 +000021 xmlns:artifact="antlib:org.apache.maven.artifact.ant">
jfarrell400d02c2015-08-25 01:14:12 -040022
Mark Slee83c52a82006-06-07 06:51:18 +000023 <description>Thrift Build File</description>
Bryan Duxbury2f45e782009-08-20 00:55:12 +000024 <property name="thrift.root" location="../../"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000025 <property name="thrift.artifactid" value="libthrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +000026
Jake Farrell4b8faf92011-04-19 21:11:54 +000027 <!-- Include the base properties file -->
28 <property file="${basedir}/build.properties" />
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000029
30 <property environment="env"/>
31
32 <condition property="version" value="${thrift.version}">
33 <isset property="release"/>
34 </condition>
jfarrell400d02c2015-08-25 01:14:12 -040035 <property name="version" value="${thrift.version}-snapshot"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000036
37 <property name="final.name" value="${thrift.artifactid}-${version}"/>
38
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +090039 <property name="thrift.compiler" location="../../compiler/cpp/thrift"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000040 <property name="src" location="${basedir}/src"/>
41 <property name="build.dir" location="${basedir}/build"/>
42 <property name="build.lib.dir" location="${build.dir}/lib"/>
43 <property name="build.tools.dir" location="${build.dir}/tools"/>
44 <property name="src.test" location="test"/>
Jake Farrell4b8faf92011-04-19 21:11:54 +000045 <property name="javadoc.dir" location="${build.dir}/javadoc"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000046 <property name="build.test.dir" location="${build.dir}/test"/>
47 <property name="test.thrift.home" location="${thrift.root}/test"/>
48
Jake Farrell4b8faf92011-04-19 21:11:54 +000049 <property name="gen" location="gen-java"/>
50 <property name="genbean" location="gen-javabean"/>
henriqued7902bf2014-03-31 16:21:37 +020051 <property name="genreuse" location="gen-javareuse"/>
Roger Meiere86428c2014-05-30 00:14:50 +020052 <property name="genfullcamel" location="gen-fullcamel"/>
Jake Farrell4b8faf92011-04-19 21:11:54 +000053
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000054 <property name="jar.file" location="${build.dir}/${final.name}.jar"/>
55 <property name="test.jar.file" location="${build.dir}/${final.name}-test.jar"/>
56 <property name="javadoc.jar.file" location="${build.dir}/${final.name}-javadoc.jar"/>
jfarrellf2319452014-10-08 23:24:37 -040057 <property name="source.jar.file" location="${build.dir}/${final.name}-sources.jar"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000058
59 <!-- Junit properties -->
60 <property name="test.junit.output.format" value="plain"/>
61 <property name="test.timeout" value="2000000"/>
62 <property name="test.src.dir" location="${basedir}/test"/>
63 <property name="test.log.dir" value="${build.test.dir}/log"/>
jfarrell400d02c2015-08-25 01:14:12 -040064 <property name="test.port" value="9090"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000065
66 <!-- maven properties -->
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000067 <property name="pom.xml" location="${build.dir}/${final.name}.pom"/>
68
David Reiss36a5a252009-04-29 23:20:56 +000069 <path id="compile.classpath">
jfarrell400d02c2015-08-25 01:14:12 -040070 <fileset dir="${build.lib.dir}">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000071 <include name="**/*.jar"/>
72 </fileset>
David Reiss36a5a252009-04-29 23:20:56 +000073 </path>
74
75 <path id="test.classpath">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000076 <path refid="compile.classpath"/>
77 <pathelement path="${env.CLASSPATH}"/>
78 <pathelement location="${build.test.dir}"/>
79 <pathelement location="${jar.file}"/>
80 <pathelement location="${test.jar.file}"/>
henriqued7902bf2014-03-31 16:21:37 +020081
David Reiss36a5a252009-04-29 23:20:56 +000082 </path>
Bryan Duxbury538e3442009-02-10 04:49:39 +000083
jfarrell400d02c2015-08-25 01:14:12 -040084 <!-- Tasks -->
Jake Farrell4b8faf92011-04-19 21:11:54 +000085 <target name="init" depends="setup.init,mvn.init" unless="init.finished">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000086 <property name="init.finished" value="true"/>
Mark Slee83c52a82006-06-07 06:51:18 +000087 </target>
88
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000089 <target name="setup.init">
90 <tstamp/>
91 <mkdir dir="${build.dir}"/>
92 <mkdir dir="${build.lib.dir}"/>
93 <mkdir dir="${build.tools.dir}"/>
94 <mkdir dir="${build.test.dir}"/>
David Reiss36a5a252009-04-29 23:20:56 +000095 </target>
96
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +000097 <target name="compile" depends="init">
James E. King, IIIcf254892017-01-25 20:34:04 -050098 <javac compiler="modern" srcdir="${src}" destdir="${build.dir}" source="1.5" target="1.5"
Roger Meierf35975b2013-11-17 18:30:23 +010099 debug="true" classpathref="compile.classpath" includeantruntime="false" encoding="UTF-8">
jfarrell98d9ef22014-02-23 22:56:58 -0500100 <compilerarg value="-Xlint:unchecked"/>
Bryan Duxburybce6fad2011-08-24 00:22:30 +0000101 </javac>
David Reiss36a5a252009-04-29 23:20:56 +0000102 </target>
103
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000104 <target name="javadoc" depends="init">
105 <javadoc sourcepath="${src}" destdir="${javadoc.dir}"
106 version="true" windowtitle="Thrift Java API" doctitle="Thrift Java API"
Bryan Duxburyd8c77572010-07-29 19:30:47 +0000107 classpathref="test.classpath">
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000108 </javadoc>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000109 <jar jarfile="${javadoc.jar.file}" basedir="${javadoc.dir}">
110 <manifest>
111 <attribute name="Implementation-Version" value="${version}"/>
112 </manifest>
113 </jar>
Mark Slee83c52a82006-06-07 06:51:18 +0000114 </target>
115
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000116 <target name="dist" depends="compile">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000117 <mkdir dir="${build.dir}/META-INF"/>
118 <copy file="${thrift.root}/LICENSE" tofile="${build.dir}/META-INF/LICENSE.txt"/>
119 <copy file="${thrift.root}/NOTICE" tofile="${build.dir}/META-INF/NOTICE.txt"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000120 <jar jarfile="${jar.file}">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000121 <manifest>
122 <attribute name="Implementation-Version" value="${version}"/>
Jake Farrell34e1db42011-11-08 01:39:47 +0000123 <attribute name="Bundle-ManifestVersion" value="2"/>
124 <attribute name="Bundle-SymbolicName" value="${thrift.groupid}"/>
125 <attribute name="Bundle-Name" value="Apache Thrift"/>
126 <attribute name="Bundle-Version" value="${version}"/>
127 <attribute name="Bundle-Description" value="Apache Thrift library"/>
128 <attribute name="Bundle-License" value="${license}"/>
129 <attribute name="Bundle-ActivationPolicy" value="lazy"/>
jfarrell63ad5f62014-10-01 21:44:30 -0400130 <attribute name="Export-Package" value="${thrift.groupid}.async;uses:=&quot;${thrift.groupid}.protocol,${thrift.groupid}.transport,org.slf4j,${thrift.groupid}&quot;;version=&quot;${version}&quot;,${thrift.groupid}.protocol;uses:=&quot;${thrift.groupid}.transport,${thrift.groupid},${thrift.groupid}.scheme&quot;;version=&quot;${version}&quot;,${thrift.groupid}.server;uses:=&quot;${thrift.groupid}.transport,${thrift.groupid}.protocol,${thrift.groupid},org.slf4j,javax.servlet,javax.servlet.http&quot;;version=&quot;${version}&quot;,${thrift.groupid}.transport;uses:=&quot;${thrift.groupid}.protocol,${thrift.groupid},org.apache.http.client,org.apache.http.params,org.apache.http.entity,org.apache.http.client.methods,org.apache.http,org.slf4j,javax.net.ssl,javax.net,javax.security.sasl,javax.security.auth.callback&quot;;version=&quot;${version}&quot;,${thrift.groupid};uses:=&quot;${thrift.groupid}.protocol,${thrift.groupid}.async,${thrift.groupid}.server,${thrift.groupid}.transport,org.slf4j,org.apache.log4j,${thrift.groupid}.scheme&quot;;version=&quot;${version}&quot;,${thrift.groupid}.meta_data;uses:=&quot;${thrift.groupid}&quot;;version=&quot;${version}&quot;,${thrift.groupid}.scheme;uses:=&quot;${thrift.groupid}.protocol,${thrift.groupid}&quot;;version=&quot;${version}&quot;"/>
Roger Meierecc2a6b2015-07-16 23:48:39 +0200131 <attribute name="Import-Package" value="javax.net,javax.net.ssl,javax.security.auth.callback,javax.security.sasl,javax.servlet;resolution:=optional,javax.servlet.http;resolution:=optional,org.slf4j;resolution:=optional;version=&quot;[1.4,2)&quot;,org.apache.http.client;resolution:=optional,org.apache.http.params;resolution:=optional,org.apache.http.entity;resolution:=optional,org.apache.http.client.methods;resolution:=optional,org.apache.http;resolution:=optional"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000132 </manifest>
133 <fileset dir="${build.dir}">
134 <include name="org/apache/thrift/**/*.class"/>
135 <include name="META-INF/*.txt"/>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000136 </fileset>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000137 </jar>
138 </target>
139
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000140 <target name="pack.src">
jfarrellf2319452014-10-08 23:24:37 -0400141 <jar jarfile="${source.jar.file}">
142 <fileset dir="${src}">
143 <include name="**/*.java"/>
144 </fileset>
145 </jar>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000146 </target>
147
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000148 <target name="install" depends="dist,javadoc">
David Reiss56c2c212009-06-04 02:05:25 +0000149 <copy todir="${install.path}">
Jake Farrell73b8dfc2011-06-02 16:13:18 +0000150 <fileset dir="${build.dir}" includes="*.jar"/>
151 <fileset dir="${build.lib.dir}" includes="*.jar"/>
David Reiss56c2c212009-06-04 02:05:25 +0000152 </copy>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000153 <copy todir="${install.javadoc.path}">
Jake Farrell73b8dfc2011-06-02 16:13:18 +0000154 <fileset dir="${javadoc.dir}" includes="**/*"/>
Bryan Duxbury32e04b42009-03-20 16:43:06 +0000155 </copy>
Mark Slee83c52a82006-06-07 06:51:18 +0000156 </target>
157
158 <target name="clean">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000159 <delete dir="${build.dir}"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000160 <delete dir="${gen}"/>
161 <delete dir="${genbean}"/>
henriqued7902bf2014-03-31 16:21:37 +0200162 <delete dir="${genreuse}"/>
Roger Meiere86428c2014-05-30 00:14:50 +0200163 <delete dir="${genfullcamel}"/>
Mark Slee83c52a82006-06-07 06:51:18 +0000164 </target>
165
jfarrell400d02c2015-08-25 01:14:12 -0400166 <target name="optional-generate" unless="no-gen-thrift">
Roger Meierf42ce2a2013-01-16 22:12:14 +0100167 <antcall target="generate">
168 </antcall>
169 </target>
170
171 <target name="compile-test" description="Build the test suite classes" depends="optional-generate,dist">
James E. King, IIIcf254892017-01-25 20:34:04 -0500172 <javac compiler="modern" debug="true" srcdir="${gen}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false" encoding="UTF-8">
Roger Meiere242a962012-11-15 22:23:27 +0000173 <compilerarg value="-Xlint:deprecation"/>
174 <!--<compilerarg value="-Xlint:unchecked"/>-->
henriqued7902bf2014-03-31 16:21:37 +0200175 </javac>
James E. King, IIIcf254892017-01-25 20:34:04 -0500176 <javac compiler="modern" debug="true" srcdir="${genbean}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false" encoding="UTF-8">
Roger Meiere242a962012-11-15 22:23:27 +0000177 <compilerarg value="-Xlint:deprecation"/>
178 <!--<compilerarg value="-Xlint:unchecked"/>-->
henriqued7902bf2014-03-31 16:21:37 +0200179 </javac>
James E. King, IIIcf254892017-01-25 20:34:04 -0500180 <javac compiler="modern" debug="true" srcdir="${genreuse}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false" encoding="UTF-8">
henriqued7902bf2014-03-31 16:21:37 +0200181 <compilerarg value="-Xlint:deprecation"/>
182 <!--<compilerarg value="-Xlint:unchecked"/>-->
183 </javac>
James E. King, IIIcf254892017-01-25 20:34:04 -0500184 <javac compiler="modern" debug="true" srcdir="${genfullcamel}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false" encoding="UTF-8">
Roger Meiere86428c2014-05-30 00:14:50 +0200185 <compilerarg value="-Xlint:deprecation"/>
186 <!--<compilerarg value="-Xlint:unchecked"/>-->
187 </javac>
James E. King, IIIcf254892017-01-25 20:34:04 -0500188 <javac compiler="modern" debug="true" srcdir="${src.test}" destdir="${build.test.dir}" classpathref="test.classpath" includeantruntime="false" encoding="UTF-8">
Roger Meiere242a962012-11-15 22:23:27 +0000189 <compilerarg value="-Xlint:deprecation"/>
190 <!--<compilerarg value="-Xlint:unchecked"/>-->
jfarrell400d02c2015-08-25 01:14:12 -0400191 </javac>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000192 <copy todir="${build.test.dir}">
193 <fileset dir="${src.test}" includes="log4j.properties"/>
Todd Lipconfcaa8f52010-09-27 23:51:22 +0000194 </copy>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000195 <jar jarfile="${test.jar.file}" basedir="${build.test.dir}"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000196 </target>
197
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000198 <target name="junit-test" description="Run the JUnit test suite" depends="compile-test">
199 <mkdir dir="${test.log.dir}"/>
jfarrell400d02c2015-08-25 01:14:12 -0400200 <junit printsummary="true" showoutput="${test.output}" timeout="${test.timeout}"
Jake Farrell4b8faf92011-04-19 21:11:54 +0000201 haltonfailure="true" errorProperty="tests.failed" failureProperty="tests.failed"
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000202 fork="true" forkmode="perTest" maxmemory="512m"
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000203 >
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000204 <sysproperty key="build.test" value="${build.test.dir}"/>
205 <sysproperty key="test.port" value="${test.port}"/>
Bryan Duxbury1b130832010-10-19 17:20:57 +0000206 <sysproperty key="javax.net.ssl.trustStore" value="${src.test}/.truststore"/>
207 <sysproperty key="javax.net.ssl.trustStorePassword" value="thrift"/>
208 <sysproperty key="javax.net.ssl.keyStore" value="${src.test}/.keystore"/>
209 <sysproperty key="javax.net.ssl.keyStorePassword" value="thrift"/>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000210 <classpath refid="test.classpath"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000211 <formatter type="${test.junit.output.format}"/>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000212 <batchtest todir="${test.log.dir}" unless="testcase">
Roger Meier5013de22010-10-25 19:57:26 +0000213 <fileset dir="${test.src.dir}">
214 <include name="**/Test*.java"/>
215 <exclude name="**/TestClient.java"/>
216 <exclude name="**/TestServer.java"/>
217 <exclude name="**/TestNonblockingServer.java"/>
218 </fileset>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000219 </batchtest>
220 <batchtest todir="${test.log.dir}" if="testcase">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000221 <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000222 </batchtest>
223 </junit>
224 <fail if="tests.failed">Tests failed!</fail>
225 </target>
226
227 <target name="deprecated-test" description="Run the non-JUnit test suite" depends="compile-test">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000228 <java classname="org.apache.thrift.test.EqualityTest" classpathref="test.classpath" failonerror="true"/>
229 <java classname="org.apache.thrift.test.JavaBeansTest" classpathref="test.classpath" failonerror="true"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000230 </target>
231
Bryan Duxbury951e7e22010-03-26 05:05:59 +0000232 <target name="test" description="Run the full test suite" depends="junit-test,deprecated-test"/>
jfarrell400d02c2015-08-25 01:14:12 -0400233
henriqued17f1c92014-04-30 16:21:25 +0200234 <target name="testclient" description="Run a test client" depends="compile-test, run-testclient"/>
235 <target name="run-testclient" description="Run a test client">
David Reiss2727fab2009-12-09 19:30:01 +0000236 <java classname="org.apache.thrift.test.TestClient"
Roger Meierf42ce2a2013-01-16 22:12:14 +0100237 classpathref="test.classpath" failonerror="true" fork="true">
238 <sysproperty key="javax.net.ssl.trustStore" value="${src.test}/.truststore"/>
239 <sysproperty key="javax.net.ssl.trustStorePassword" value="thrift"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000240 <arg line="${testargs}"/>
David Reiss2727fab2009-12-09 19:30:01 +0000241 </java>
242 </target>
jfarrell400d02c2015-08-25 01:14:12 -0400243
henriqued17f1c92014-04-30 16:21:25 +0200244 <target name="testserver" description="Run a test server" depends="compile-test, run-testserver"/>
245 <target name="run-testserver" description="Run a test server">
David Reiss2727fab2009-12-09 19:30:01 +0000246 <java classname="org.apache.thrift.test.TestServer"
jfarrell400d02c2015-08-25 01:14:12 -0400247 classpathref="test.classpath" failonerror="true" fork="true">
Roger Meierf42ce2a2013-01-16 22:12:14 +0100248 <sysproperty key="javax.net.ssl.keyStore" value="${src.test}/.keystore"/>
249 <sysproperty key="javax.net.ssl.keyStorePassword" value="thrift"/>
jfarrell400d02c2015-08-25 01:14:12 -0400250 <arg line="${testargs}"/>
David Reiss2727fab2009-12-09 19:30:01 +0000251 </java>
252 </target>
jfarrell400d02c2015-08-25 01:14:12 -0400253
henriqued17f1c92014-04-30 16:21:25 +0200254 <target name="testnonblockingserver" description="Run a test nonblocking server" depends="compile-test, run-testnonblockingserver"/>
255 <target name="run-testnonblockingserver" description="Run a test nonblocking server">
David Reiss2727fab2009-12-09 19:30:01 +0000256 <java classname="org.apache.thrift.test.TestNonblockingServer"
257 classpathref="test.classpath" failonerror="true">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000258 <arg line="${testargs}"/>
David Reiss2727fab2009-12-09 19:30:01 +0000259 </java>
260 </target>
261
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000262 <target name="generate">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000263 <!-- Generate the thrift gen-java source -->
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900264 <exec executable="${thrift.compiler}" failonerror="true">
Jens Geyer4733c4c2016-02-13 23:48:20 +0100265 <arg line="--gen java ${test.thrift.home}/ThriftTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000266 </exec>
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900267 <exec executable="${thrift.compiler}" failonerror="true">
BCG7ab125a2016-10-31 23:32:18 -0400268 <arg line="--gen java ${test.thrift.home}/JavaTypes.thrift"/>
269 </exec>
270 <exec executable="${thrift.compiler}" failonerror="true">
Jens Geyer4733c4c2016-02-13 23:48:20 +0100271 <arg line="--gen java ${test.thrift.home}/DebugProtoTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000272 </exec>
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900273 <exec executable="${thrift.compiler}" failonerror="true">
Jens Geyer4733c4c2016-02-13 23:48:20 +0100274 <arg line="--gen java ${test.thrift.home}/OptionalRequiredTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000275 </exec>
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900276 <exec executable="${thrift.compiler}" failonerror="true">
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000277 <arg line="--gen java:beans,nocamel ${test.thrift.home}/JavaBeansTest.thrift"/>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000278 </exec>
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900279 <exec executable="${thrift.compiler}" failonerror="true">
Jens Geyer4733c4c2016-02-13 23:48:20 +0100280 <arg line="--gen java ${test.thrift.home}/ManyOptionals.thrift"/>
Bryan Duxbury1e79cb42011-12-21 18:13:29 +0000281 </exec>
Gary Gregoryfd832242016-11-10 11:35:46 -0800282 <mkdir dir="${genfullcamel}"/>
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900283 <exec executable="${thrift.compiler}" failonerror="true">
Jens Geyer4733c4c2016-02-13 23:48:20 +0100284 <arg line="--gen java:fullcamel -out ${genfullcamel} ${test.thrift.home}/FullCamelTest.thrift"/>
Roger Meiere86428c2014-05-30 00:14:50 +0200285 </exec>
Gary Gregoryfd832242016-11-10 11:35:46 -0800286 <mkdir dir="${genreuse}"/>
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900287 <exec executable="${thrift.compiler}" failonerror="true">
henriqued7902bf2014-03-31 16:21:37 +0200288 <arg line="--gen java:reuse-objects -out ${genreuse} ${test.thrift.home}/ReuseObjects.thrift"/>
289 </exec>
Deniss Afonin3311a9b2017-04-18 19:27:49 +0300290 <exec executable="${thrift.compiler}" failonerror="true">
291 <arg line="--gen java ${test.thrift.home}/JavaDeepCopyTest.thrift"/>
292 </exec>
Deniss Afonind3cda9c2017-04-17 23:53:16 +0300293 <exec executable="${thrift.compiler}" failonerror="true">
294 <arg line="--gen java ${test.thrift.home}/EnumContainersTest.thrift"/>
295 </exec>
Bryan Duxbury249d7cb2009-01-29 01:21:20 +0000296 </target>
297
Bryan Duxbury35dd47b2011-06-23 22:21:20 +0000298 <target name="proxy" if="proxy.enabled">
299 <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
300 proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
301 </target>
302
303 <target name="mvn.ant.tasks.download" depends="setup.init,mvn.ant.tasks.check,proxy" unless="mvn.ant.tasks.found">
Jake Farrell4b8faf92011-04-19 21:11:54 +0000304 <get src="${mvn.ant.task.url}/${mvn.ant.task.jar}" dest="${build.tools.dir}/${mvn.ant.task.jar}" usetimestamp="true"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000305 </target>
306
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000307 <target name="mvn.ant.tasks.check">
308 <condition property="mvn.ant.tasks.found">
309 <typefound uri="antlib:org.apache.maven.artifact.ant" name="artifact"/>
310 </condition>
jfarrell400d02c2015-08-25 01:14:12 -0400311 </target>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000312
313 <target name="mvn.init" depends="mvn.ant.tasks.download" unless="mvn.finished">
314 <!-- Download mvn ant tasks, download dependencies, and setup pom file -->
Jake Farrell4b8faf92011-04-19 21:11:54 +0000315 <typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${build.tools.dir}/${mvn.ant.task.jar}"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000316
317 <!-- remote repositories used to download dependencies from -->
318 <artifact:remoteRepository id="central" url="${mvn.repo}"/>
319 <artifact:remoteRepository id="apache" url="${apache.repo}"/>
320
321 <!-- Pom file information -->
jfarrell400d02c2015-08-25 01:14:12 -0400322 <artifact:pom id="pom"
323 groupId="${thrift.groupid}"
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000324 artifactId="${thrift.artifactid}"
jfarrell400d02c2015-08-25 01:14:12 -0400325 version="${version}"
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000326 url="http://thrift.apache.org"
327 name="Apache Thrift"
328 description="Thrift is a software framework for scalable cross-language services development."
329 packaging="pom"
330 >
331 <remoteRepository refid="central"/>
332 <remoteRepository refid="apache"/>
333 <license name="The Apache Software License, Version 2.0" url="${license}"/>
jfarrell400d02c2015-08-25 01:14:12 -0400334 <scm connection="scm:git:https://git-wip-us.apache.org/repos/asf/thrift.git"
Roger Meier565517a2013-03-22 21:08:39 +0100335 developerConnection="scm:git:https://git-wip-us.apache.org/repos/asf/thrift.git"
336 url="https://git-wip-us.apache.org/repos/asf?p=thrift.git"
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000337 />
338 <!-- Thrift Developers -->
339 <developer id="mcslee" name="Mark Slee"/>
340 <developer id="dreiss" name="David Reiss"/>
341 <developer id="aditya" name="Aditya Agarwal"/>
342 <developer id="marck" name="Marc Kwiatkowski"/>
343 <developer id="jwang" name="James Wang"/>
344 <developer id="cpiro" name="Chris Piro"/>
345 <developer id="bmaurer" name="Ben Maurer"/>
346 <developer id="kclark" name="Kevin Clark"/>
347 <developer id="jake" name="Jake Luciani"/>
348 <developer id="bryanduxbury" name="Bryan Duxbury"/>
349 <developer id="esteve" name="Esteve Fernandez"/>
350 <developer id="todd" name="Todd Lipcon"/>
351 <developer id="geechorama" name="Andrew McGeachie"/>
352 <developer id="molinaro" name="Anthony Molinaro"/>
353 <developer id="roger" name="Roger Meier"/>
Jake Farrell4b8faf92011-04-19 21:11:54 +0000354 <developer id="jfarrell" name="Jake Farrell"/>
Jens Geyer111d8f22013-06-03 16:49:55 +0200355 <developer id="jensg" name="Jens Geyer"/>
Carl Yeksigian350860f2013-06-01 22:48:52 -0400356 <developer id="carl" name="Carl Yeksigian"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000357
358 <!-- Thrift dependencies list -->
Jake Farrella0bd5232012-10-12 14:44:14 +0000359 <dependency groupId="org.slf4j" artifactId="slf4j-api" version="${slf4j.version}"/>
Jake Farrella0bd5232012-10-12 14:44:14 +0000360 <dependency groupId="javax.servlet" artifactId="servlet-api" version="${servlet.version}" scope="provided"/>
361 <dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="${httpclient.version}"/>
362 <dependency groupId="org.apache.httpcomponents" artifactId="httpcore" version="${httpcore.version}"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000363 </artifact:pom>
364
365 <!-- Generate the pom file -->
366 <artifact:writepom pomRefId="pom" file="${pom.xml}"/>
367
368 <!-- Download the dependencies -->
369 <artifact:dependencies filesetId="build-dependency-jars" pomRefId="pom"/>
370
371 <!-- Copy the dependencies to the build/lib dir -->
372 <copy todir="${build.dir}/lib">
373 <fileset refid="build-dependency-jars"/>
374 <mapper type="flatten"/>
375 </copy>
376
Jake Farrell6ece9be2011-04-26 15:44:50 +0000377 <!-- Dependencies needed for testing -->
378 <artifact:dependencies filesetId="test-dependency-jars" useScope="runtime">
Nobuaki Sukegawaaa7d0d52016-02-27 03:04:34 +0900379 <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" version="${slf4j.version}"/>
Jake Farrell6ece9be2011-04-26 15:44:50 +0000380 <dependency groupId="junit" artifactId="junit" version="4.4"/>
Aleksey Pesternikov400b3462014-05-01 13:58:18 -0700381 <dependency groupId="org.mockito" artifactId="mockito-all" version="1.9.5"/>
Jake Farrell6ece9be2011-04-26 15:44:50 +0000382 </artifact:dependencies>
383
384 <!-- Copy the test dependencies to the build/lib dir -->
385 <copy todir="${build.dir}/lib">
386 <fileset refid="test-dependency-jars"/>
387 <mapper type="flatten"/>
388 </copy>
389
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000390 <property name="mvn.finished" value="true"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000391 </target>
392
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000393 <macrodef name="signAndDeploy">
394 <!-- Sign and deploy jars to apache repo -->
395 <attribute name="file"/>
396 <attribute name="classifier" default=""/>
397 <attribute name="packaging" default="jar"/>
Jake Farrellc023d902011-05-20 19:04:13 +0000398 <attribute name="pom" default=""/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000399 <sequential>
400 <artifact:mvn fork="true">
jfarrell400d02c2015-08-25 01:14:12 -0400401 <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.6:sign-and-deploy-file"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000402 <arg value="-DrepositoryId=${maven-repository-id}"/>
403 <arg value="-Durl=${maven-repository-url}"/>
Jake Farrellc023d902011-05-20 19:04:13 +0000404 <arg value="-DpomFile=@{pom}"/>
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000405 <arg value="-Dfile=@{file}"/>
406 <arg value="-Dclassifier=@{classifier}"/>
407 <arg value="-Dpackaging=@{packaging}"/>
408 <arg value="-Pgpg"/>
409 </artifact:mvn>
410 </sequential>
411 </macrodef>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000412
Bryan Duxbury55f7ffe2011-03-24 17:24:27 +0000413 <target name="publish" depends="clean,init,test,dist,javadoc,pack.src">
414 <!-- Compile, package, test and then send release to apache maven repo -->
415 <!-- run with: ant -Drelease=true publish-->
Jake Farrellc023d902011-05-20 19:04:13 +0000416 <signAndDeploy file="${pom.xml}" packaging="pom" classifier="" pom="${pom.xml}"/>
jfarrell400d02c2015-08-25 01:14:12 -0400417 <signAndDeploy file="${jar.file}" classifier="" pom="${pom.xml}"/>
418 <signAndDeploy file="${javadoc.jar.file}" classifier="javadoc" pom="${pom.xml}"/>
419 <signAndDeploy file="${source.jar.file}" classifier="sources" pom="${pom.xml}"/>
Bryan Duxbury547edc72010-03-28 21:02:38 +0000420 </target>
Mark Slee83c52a82006-06-07 06:51:18 +0000421</project>