blob: 4bba6fe60a530a0ecc4043e870ba8e633e06e7e1 [file] [log] [blame]
crazyboblee66b415a2006-08-25 02:01:19 +00001<?xml version="1.0"?>
2
3<project name="guice" default="compile">
sberlin15477892011-06-29 17:52:52 +00004 <!-- common definitions are stored in common.xml. -->
crazybobleeefdb6f32007-02-26 02:54:11 +00005 <import file="common.xml"/>
crazyboblee66b415a2006-08-25 02:01:19 +00006
7 <path id="compile.classpath">
8 <fileset dir="${lib.dir}" includes="*.jar"/>
9 <fileset dir="${lib.dir}/build" includes="*.jar"/>
10 </path>
11
limpbizkit53708f02008-11-29 20:45:55 +000012
13 <target name="jar" depends="jar.withdeps, manifest" description="Build jar.">
14 <jar jarfile="${build.dir}/dist/guice-${version}.jar"
limpbizkitf716cf42008-06-03 09:19:35 +000015 manifest="${build.dir}/META-INF/MANIFEST.MF">
limpbizkit53708f02008-11-29 20:45:55 +000016 <zipfileset src="${build.dir}/${ant.project.name}-with-deps.jar"/>
17 </jar>
crazyboblee66b415a2006-08-25 02:01:19 +000018 </target>
19
limpbizkit28d083b2008-05-07 17:25:38 +000020 <target name="dist" depends="distjars, javadoc"
crazyboblee66b415a2006-08-25 02:01:19 +000021 description="Build entire distribution.">
sberlinf8537ea2010-08-21 23:50:30 +000022 <ant antfile="extensions/servlet/build.xml" target="distjars" inheritAll="false"/>
23 <ant antfile="extensions/spring/build.xml" target="distjars" inheritAll="false"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +000024 <ant antfile="extensions/struts2/build.xml" target="distjars" inheritAll="false"/>
limpbizkit28d083b2008-05-07 17:25:38 +000025 <ant antfile="extensions/assistedinject/build.xml" target="distjars" inheritAll="false"/>
limpbizkite05f2542009-05-19 00:58:48 +000026 <ant antfile="extensions/jmx/build.xml" target="distjars" inheritAll="false"/>
27 <ant antfile="extensions/jndi/build.xml" target="distjars" inheritAll="false"/>
limpbizkit28d083b2008-05-07 17:25:38 +000028 <ant antfile="extensions/throwingproviders/build.xml" target="distjars" inheritAll="false"/>
29 <ant antfile="extensions/multibindings/build.xml" target="distjars" inheritAll="false"/>
limpbizkit@gmail.com9bcb0a22010-09-11 05:06:17 +000030 <ant antfile="extensions/persist/build.xml" target="distjars" inheritAll="false"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -070031 <ant antfile="extensions/grapher/build.xml" target="distjars" inheritAll="false"/>
limpbizkit0c43f222007-12-19 01:38:16 +000032
crazybobleeefdb6f32007-02-26 02:54:11 +000033 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080034 <fileset dir="extensions/servlet/build" includes="*.jar"/>
crazybobleeefdb6f32007-02-26 02:54:11 +000035 </copy>
36 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080037 <fileset dir="extensions/spring/build" includes="*.jar"/>
crazybobleef7390152007-03-02 23:44:34 +000038 </copy>
limpbizkit0c43f222007-12-19 01:38:16 +000039 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080040 <fileset dir="extensions/struts2/build" includes="*.jar"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +000041 </copy>
42 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080043 <fileset dir="extensions/assistedinject/build" includes="*.jar"/>
limpbizkit0c43f222007-12-19 01:38:16 +000044 </copy>
45 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080046 <fileset dir="extensions/jmx/build" includes="*.jar"/>
limpbizkite05f2542009-05-19 00:58:48 +000047 </copy>
48 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080049 <fileset dir="extensions/jndi/build" includes="*.jar"/>
limpbizkite05f2542009-05-19 00:58:48 +000050 </copy>
51 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080052 <fileset dir="extensions/throwingproviders/build" includes="*.jar"/>
limpbizkit0c43f222007-12-19 01:38:16 +000053 </copy>
limpbizkitbf5d2272008-02-16 01:49:41 +000054 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080055 <fileset dir="extensions/multibindings/build" includes="*.jar"/>
limpbizkit50192702008-05-01 09:55:02 +000056 </copy>
mccullsf8d74d62010-10-21 21:32:26 +000057 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080058 <fileset dir="extensions/persist/build" includes="*.jar"/>
mccullsf8d74d62010-10-21 21:32:26 +000059 </copy>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -070060 <copy toDir="${build.dir}/dist">
Christian Edward Gruber3236b102014-02-13 10:37:24 -080061 <fileset dir="extensions/grapher/build" includes="*.jar"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -070062 </copy>
limpbizkit0c43f222007-12-19 01:38:16 +000063
crazyboblee66b415a2006-08-25 02:01:19 +000064 <copy toDir="${build.dir}/dist" file="COPYING"/>
65 <copy toDir="${build.dir}/dist">
66 <fileset dir="${lib.dir}"
67 includes="*.jar"/>
68 </copy>
69 <copy toDir="${build.dir}/dist">
crazybobleeefdb6f32007-02-26 02:54:11 +000070 <fileset dir="${build.dir}" includes="javadoc/**/*"/>
crazyboblee66b415a2006-08-25 02:01:19 +000071 </copy>
72
limpbizkit7bf3e3c2008-07-12 20:16:31 +000073 <zip destfile="${build.dir}/guice-${version}.zip">
limpbizkit53708f02008-11-29 20:45:55 +000074 <zipfileset dir="${build.dir}/dist" prefix="guice-${version}" excludes="*-src.jar"/>
limpbizkit7bf3e3c2008-07-12 20:16:31 +000075 </zip>
76 <zip destfile="${build.dir}/guice-${version}-src.zip">
77 <zipfileset dir="." prefix="guice-${version}-src"
sberlin@gmail.com9db504f2010-10-31 21:32:49 +000078 excludes="build/**,**/.svn/**,classes/**,.settings/**,bin/**,latest-api-diffs/**,latest-javadoc/**,.classpath,.project"/>
limpbizkit7bf3e3c2008-07-12 20:16:31 +000079 </zip>
crazyboblee66b415a2006-08-25 02:01:19 +000080 </target>
Christian Edward Gruberba5acdf2013-10-05 14:05:39 -070081
crazyboblee861eb332007-02-03 02:42:05 +000082 <target name="test.dist"
Christian Edward Gruberba5acdf2013-10-05 14:05:39 -070083 description="Execute JUnit tests against distribution jar.">
84 <antcall target="test.dist.run">
85 <param name="jvmarg-value" value="-Dguice_include_stack_traces="/>
86 </antcall>
87 <antcall target="test.dist.run">
88 <param name="jvmarg-value" value="-Dguice_include_stack_traces=OFF"/>
89 </antcall>
90 <antcall target="test.dist.run">
91 <param name="jvmarg-value" value="-Dguice_include_stack_traces=COMPLETE"/>
92 </antcall>
93 </target>
94
95 <target name="test.dist.run"
Christian Edward Gruber3236b102014-02-13 10:37:24 -080096 depends="jar, test.withdeps"
Christian Edward Gruberba5acdf2013-10-05 14:05:39 -070097 description="Execute JUnit tests against distribution jar with the given jvmarg.">
98 <java fork="true"
crazyboblee861eb332007-02-03 02:42:05 +000099 classname="junit.textui.TestRunner"
100 failonerror="true"
101 taskname="junit">
102 <classpath>
sberlin6e370962010-10-27 01:48:00 +0000103 <pathelement location="${build.dir}/guice-${version}-tests.jar"/>
crazyboblee861eb332007-02-03 02:42:05 +0000104 <pathelement location="${build.dir}/dist/guice-${version}.jar"/>
Christian Edward Gruber3236b102014-02-13 10:37:24 -0800105 <pathelement location="lib/javax.inject.jar"/>
crazyboblee861eb332007-02-03 02:42:05 +0000106 <pathelement location="lib/aopalliance.jar"/>
Christian Edward Gruber3236b102014-02-13 10:37:24 -0800107 <pathelement location="lib/guava-16.0.1.jar"/>
crazyboblee861eb332007-02-03 02:42:05 +0000108 <pathelement location="lib/build/junit.jar"/>
crazyboblee3a09e292007-02-08 22:36:21 +0000109 <pathelement location="lib/build/servlet-api-2.5.jar"/>
110 <pathelement location="lib/build/easymock.jar"/>
dhanji2cd3f722009-10-20 08:02:21 +0000111 <pathelement location="lib/build/javax.inject-tck.jar"/>
sberlinf7ac6ea2010-05-09 12:48:24 +0000112 <pathelement location="lib/build/bnd-0.0.384.jar"/>
113 <pathelement location="lib/build/felix-2.0.5.jar"/>
crazyboblee861eb332007-02-03 02:42:05 +0000114 </classpath>
Christian Edward Gruberba5acdf2013-10-05 14:05:39 -0700115 <arg value="com.google.inject.AllTests"/>
116 <jvmarg value="${jvmarg-value}"/>
limpbizkit869a3c02008-06-27 01:09:41 +0000117 <syspropertyset>
118 <propertyref name="guice.custom.loader"/>
sberlinf7ac6ea2010-05-09 12:48:24 +0000119 <propertyref name="version"/>
120 <propertyref name="build.dir"/>
121 <propertyref name="lib.dir"/>
limpbizkit869a3c02008-06-27 01:09:41 +0000122 </syspropertyset>
crazyboblee861eb332007-02-03 02:42:05 +0000123 </java>
124 </target>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700125
Christian Edward Gruber54565b22013-09-20 17:32:30 -0700126 <property name="old.api" value="3.0"/>
127 <property name="new.api" value="4.0"/>
sberline0359ad2010-10-31 20:39:41 +0000128 <target name="jdiff">
Christian Edward Grubera78c4882014-03-20 20:39:02 -0700129 <property name="jdiff.home" value="lib/build/jdiff"/>
130 <property name="jdiff.tmp" value="build/docs/latest-api-diffs"/>
131 <delete dir="${jdiff.tmp}"/>
132 <mkdir dir="${jdiff.tmp}"/>
133
134 <!-- Generate API for current version. -->
135 <!-- TODO(cgruber) remove postProcessGeneratedJavadocs=false when ant 1.9.4 ships -->
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000136 <javadoc packagenames="com.google.*"
Christian Edward Grubera78c4882014-03-20 20:39:02 -0700137 postProcessGeneratedJavadocs="false"
138 docletpath="${jdiff.home}/jdiff.jar${path.separator}${jdiff.home}/xerces.jar"
139 maxmemory="1024M"
Christian Edward Gruber3236b102014-02-13 10:37:24 -0800140 classpath="lib/javax.inject.jar${path.separator}lib/aopalliance.jar${path.separator}lib/guava-16.0.1.jar">
mcculls74d714c2010-10-21 19:10:16 +0000141 <fileset dir="${src.dir}" defaultexcludes="yes">
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000142 <include name="com/google/**"/>
143 <exclude name="com/google/inject/internal/**"/>
144 </fileset>
145 <fileset dir="${servlet.src.dir}"/>
146 <fileset dir="${spring.src.dir}"/>
147 <fileset dir="${assistedinject.src.dir}"/>
148 <fileset dir="${jmx.src.dir}"/>
149 <fileset dir="${jndi.src.dir}"/>
150 <fileset dir="${throwingproviders.src.dir}"/>
151 <fileset dir="${multibindings.src.dir}"/>
152 <fileset dir="${persist.src.dir}"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +0000153 <fileset dir="${struts2.src.dir}"/>
Christian Edward Grubera78c4882014-03-20 20:39:02 -0700154 <fileset dir="${grapher.src.dir}"/>
sberline0359ad2010-10-31 20:39:41 +0000155
Christian Edward Grubera78c4882014-03-20 20:39:02 -0700156 <doclet name="jdiff.JDiff" path="${jdiff.home}/jdiff.jar:${jdiff.home}/xerces.jar">
sberline0359ad2010-10-31 20:39:41 +0000157 <param name="-apidir" value="${jdiff.tmp}" />
158 <param name="-apiname" value="${new.api}" />
159 </doclet>
160 </javadoc>
161
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700162 <!-- Do a diff against the previous version. -->
163 <javadoc packagenames="com.google.*"
164 destdir="${jdiff.tmp}"
165 docletpath="${jdiff.home}/jdiff.jar${path.separator}${jdiff.home}/xerces.jar"
166 maxmemory="512M"
167 sourcefiles="${jdiff.home}/Null.java"
Christian Edward Gruber3236b102014-02-13 10:37:24 -0800168 classpath="lib/javax.inject.jar${path.separator}lib/aopalliance.jar${path.separator}lib/guava-16.0.1.jar">
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700169 <doclet name="jdiff.JDiff">
170 <param name="-oldapi" value="${old.api}"/>
171 <param name="-oldapidir" value="latest-api-diffs"/>
Sam Berlin1c2a6ad2013-12-07 13:49:40 -0500172 <param name="-javadocold" value="http://google-guice.googlecode.com/git/latest-api-diffs/${old.api}/javadoc/"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700173 <param name="-newapi" value="${new.api}"/>
174 <param name="-newapidir" value="${jdiff.tmp}"/>
Sam Berlin1c2a6ad2013-12-07 13:49:40 -0500175 <param name="-javadocnew" value="http://google-guice.googlecode.com/git/latest-api-diffs/${new.api}/javadoc/"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700176 <param name="-stats"/>
177 <param name="-docchanges"/>
178 </doclet>
179 </javadoc>
sberline0359ad2010-10-31 20:39:41 +0000180 </target>
181
182 <target name="javadoc">
183 <javadoc packagenames="com.google.*"
184 destdir="build/docs"
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700185 docletpath="lib/build/doclava.jar"
sberline0359ad2010-10-31 20:39:41 +0000186 bootclasspath="${java.home}/lib/rt.jar"
187 maxmemory="512M"
Christian Edward Gruber3236b102014-02-13 10:37:24 -0800188 classpath="lib/javax.inject.jar${path.separator}lib/aopalliance.jar${path.separator}lib/guava-16.0.1.jar">
sberline0359ad2010-10-31 20:39:41 +0000189 <fileset dir="${src.dir}" defaultexcludes="yes">
190 <include name="com/google/**"/>
191 <exclude name="com/google/inject/internal/**"/>
192 </fileset>
193 <fileset dir="${servlet.src.dir}"/>
194 <fileset dir="${spring.src.dir}"/>
195 <fileset dir="${assistedinject.src.dir}"/>
196 <fileset dir="${jmx.src.dir}"/>
197 <fileset dir="${jndi.src.dir}"/>
198 <fileset dir="${throwingproviders.src.dir}"/>
199 <fileset dir="${multibindings.src.dir}"/>
200 <fileset dir="${persist.src.dir}"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700201 <fileset dir="${grapher.src.dir}"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +0000202 <!-- TODO: this breaks Doclava for some reason
203 <fileset dir="${struts2.src.dir}"/> -->
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000204
205 <doclet name="com.google.doclava.Doclava">
206 <param name="-hdf"/> <param name="project.name"/> <param name="Guice"/>
limpbizkit@gmail.comb5beefa2010-10-05 03:25:16 +0000207 <param name="-since"/> <param name="lib/build/guice-1.0.xml"/> <param name="Guice_1.0" />
Sam Berlin1c2a6ad2013-12-07 13:49:40 -0500208 <param name="-since"/> <param name="lib/build/guice-2.0.xml"/> <param name="Guice_2.0" />
Sam Berlinb6c35cd2014-03-20 16:56:37 -0400209 <param name="-since"/> <param name="lib/build/guice-3.0.xml"/> <param name="Guice_3.0" />
sberline0359ad2010-10-31 20:39:41 +0000210 <param name="-apiversion" value="Guice_${new.api}"/>
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000211 <param name="-assetsdir" value="javadoc/assets"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700212 <param name="-apixml" value="build/docs/guice-${new.api}.xml"/>
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000213 <!-- TODO: fix doclava federation
214 http://aopalliance.sourceforge.net/doc
215 http://www.springframework.org/docs/api/
216 <param name="-federate"/><param name="JDK"/><param name="http://download.oracle.com/javase/6/docs/api/index.html?"/>
217 <param name="-federationxml"/><param name="JDK"/><param name="http://doclava.googlecode.com/svn/static/api/openjdk-6.xml"/>
218 -->
219 </doclet>
crazyboblee66b415a2006-08-25 02:01:19 +0000220 </javadoc>
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000221 <move todir="build/docs/javadoc"><fileset dir="build/docs/reference"/></move>
crazyboblee66b415a2006-08-25 02:01:19 +0000222 </target>
223
limpbizkit7c508c22009-02-19 02:56:27 +0000224 <target name="no_aop"
225 description="Create a copy of the Guice source that doesn't do bytecode generation.">
226 <taskdef name="munge" classname="MungeTask" classpath="lib/build/munge.jar"/>
227 <mkdir dir="build/no_aop"/>
228 <munge todir="build/no_aop">
limpbizkitbf0d8762009-02-19 09:06:22 +0000229 <fileset dir=".">
limpbizkit4f6274a2009-02-19 21:57:55 +0000230 <!-- exclude generated files -->
231 <exclude name="build/**"/>
232 <exclude name="classes/**"/>
233 <exclude name="latest-api-diffs/**"/>
234 <exclude name="javadoc/**"/>
235 <exclude name="latest-javadoc/**"/>
236 <!-- exclude AOP-specific libraries -->
237 <exclude name="lib/aopalliance.jar"/>
238 <exclude name="lib/build/asm-*.jar"/>
239 <exclude name="lib/build/cglib-*.jar"/>
240 <!-- exclude AOP-specific classes -->
241 <exclude name="**/LineNumbers.java"/>
limpbizkitbf0d8762009-02-19 09:06:22 +0000242 <exclude name="**/InterceptorBindingProcessor.java"/>
243 <exclude name="**/ProxyFactory.java"/>
limpbizkit4f6274a2009-02-19 21:57:55 +0000244 <exclude name="**/ProxyFactoryTest.java"/>
limpbizkitbf0d8762009-02-19 09:06:22 +0000245 <exclude name="**/InterceptorStackCallback.java"/>
246 <exclude name="**/InterceptorBinding.java"/>
247 <exclude name="**/MethodAspect.java"/>
248 <exclude name="**/MethodInterceptionTest.java"/>
249 <exclude name="**/BytecodeGenTest.java"/>
250 <exclude name="**/IntegrationTest.java"/>
251 <exclude name="**/MethodInterceptionTest.java"/>
252 </fileset>
limpbizkit7c508c22009-02-19 02:56:27 +0000253 <arg value="-DNO_AOP" />
254 </munge>
sberlinb7a02b02011-07-08 00:34:16 +0000255 <replace file="build/no_aop/common.xml" value="">
Sam Berlinb6c35cd2014-03-20 16:56:37 -0400256 <replacetoken><![CDATA[<zipfileset src="${common.basedir}/lib/build/asm-5.0.jar"/>]]></replacetoken>
sberlinb7a02b02011-07-08 00:34:16 +0000257 </replace>
258 <replace file="build/no_aop/common.xml" value="">
Sam Berline8120032013-12-07 12:47:34 -0500259 <replacetoken><![CDATA[<zipfileset src="${common.basedir}/lib/build/cglib-3.1.jar"/>]]></replacetoken>
sberlinb7a02b02011-07-08 00:34:16 +0000260 </replace>
261 <replace file="build/no_aop/common.xml" value="">
Sam Berlin1047e982013-12-07 13:23:58 -0500262 <replacetoken><![CDATA[<zipfileset src="${common.basedir}/lib/build/cglib-3.1.jar"><include name="LICENSE"/><include name="NOTICE"/></zipfileset>]]></replacetoken>
sberlinb7a02b02011-07-08 00:34:16 +0000263 </replace>
Sam Berlin32a8f242013-12-06 17:07:07 -0500264 <replace file="build/no_aop/common.xml" value='Bundle-Name" value="$${ant.project.name} (no_aop)'>
265 <replacetoken><![CDATA[Bundle-Name" value="${ant.project.name}]]></replacetoken>
266 </replace>
limpbizkit7c508c22009-02-19 02:56:27 +0000267 </target>
268
crazybobleeefdb6f32007-02-26 02:54:11 +0000269 <target name="clean.all"
270 depends="clean"
crazyboblee66b415a2006-08-25 02:01:19 +0000271 description="Remove generated files.">
sberlinf8537ea2010-08-21 23:50:30 +0000272 <ant dir="extensions/servlet" antfile="build.xml" target="clean"/>
273 <ant dir="extensions/spring" antfile="build.xml" target="clean"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +0000274 <ant dir="extensions/struts2" antfile="build.xml" target="clean"/>
limpbizkit0c43f222007-12-19 01:38:16 +0000275 <ant dir="extensions/assistedinject" antfile="build.xml" target="clean"/>
limpbizkite05f2542009-05-19 00:58:48 +0000276 <ant dir="extensions/jmx" antfile="build.xml" target="clean"/>
277 <ant dir="extensions/jndi" antfile="build.xml" target="clean"/>
limpbizkit0c43f222007-12-19 01:38:16 +0000278 <ant dir="extensions/throwingproviders" antfile="build.xml" target="clean"/>
limpbizkit50192702008-05-01 09:55:02 +0000279 <ant dir="extensions/multibindings" antfile="build.xml" target="clean"/>
mccullsf8d74d62010-10-21 21:32:26 +0000280 <ant dir="extensions/persist" antfile="build.xml" target="clean"/>
sberlin@gmail.comc9ece6b2010-12-20 22:26:44 +0000281 <ant dir="extensions/grapher" antfile="build.xml" target="clean"/>
crazyboblee66b415a2006-08-25 02:01:19 +0000282 </target>
283
284</project>