blob: d4a25588b843e07c92905072ecc9e530057acb9e [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">
sberlinf8537ea2010-08-21 23:50:30 +000034 <fileset dir="extensions/servlet/build" includes="*.jar" excludes="*-with-deps.jar"/>
crazybobleeefdb6f32007-02-26 02:54:11 +000035 </copy>
36 <copy toDir="${build.dir}/dist">
sberlinf8537ea2010-08-21 23:50:30 +000037 <fileset dir="extensions/spring/build" includes="*.jar" excludes="*-with-deps.jar"/>
crazybobleef7390152007-03-02 23:44:34 +000038 </copy>
limpbizkit0c43f222007-12-19 01:38:16 +000039 <copy toDir="${build.dir}/dist">
sberlin@gmail.com81a0c602010-12-02 23:50:16 +000040 <fileset dir="extensions/struts2/build" includes="*.jar" excludes="*-with-deps.jar"/>
41 </copy>
42 <copy toDir="${build.dir}/dist">
limpbizkit53708f02008-11-29 20:45:55 +000043 <fileset dir="extensions/assistedinject/build" includes="*.jar" excludes="*-with-deps.jar"/>
limpbizkit0c43f222007-12-19 01:38:16 +000044 </copy>
45 <copy toDir="${build.dir}/dist">
limpbizkite05f2542009-05-19 00:58:48 +000046 <fileset dir="extensions/jmx/build" includes="*.jar" excludes="*-with-deps.jar"/>
47 </copy>
48 <copy toDir="${build.dir}/dist">
49 <fileset dir="extensions/jndi/build" includes="*.jar" excludes="*-with-deps.jar"/>
50 </copy>
51 <copy toDir="${build.dir}/dist">
limpbizkit53708f02008-11-29 20:45:55 +000052 <fileset dir="extensions/throwingproviders/build" includes="*.jar" excludes="*-with-deps.jar"/>
limpbizkit0c43f222007-12-19 01:38:16 +000053 </copy>
limpbizkitbf5d2272008-02-16 01:49:41 +000054 <copy toDir="${build.dir}/dist">
limpbizkit53708f02008-11-29 20:45:55 +000055 <fileset dir="extensions/multibindings/build" includes="*.jar" excludes="*-with-deps.jar"/>
limpbizkit50192702008-05-01 09:55:02 +000056 </copy>
mccullsf8d74d62010-10-21 21:32:26 +000057 <copy toDir="${build.dir}/dist">
58 <fileset dir="extensions/persist/build" includes="*.jar" excludes="*-with-deps.jar"/>
59 </copy>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -070060 <copy toDir="${build.dir}/dist">
61 <fileset dir="extensions/grapher/build" includes="*.jar" excludes="*-with-deps.jar"/>
62 </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"
96 depends="jar, test.compile-with-deps"
97 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"/>
105 <pathelement location="lib/aopalliance.jar"/>
106 <pathelement location="lib/build/junit.jar"/>
crazyboblee3a09e292007-02-08 22:36:21 +0000107 <pathelement location="lib/build/servlet-api-2.5.jar"/>
108 <pathelement location="lib/build/easymock.jar"/>
dhanji2cd3f722009-10-20 08:02:21 +0000109 <pathelement location="lib/javax.inject.jar"/>
110 <pathelement location="lib/build/javax.inject-tck.jar"/>
sberlinf7ac6ea2010-05-09 12:48:24 +0000111 <pathelement location="lib/build/bnd-0.0.384.jar"/>
112 <pathelement location="lib/build/felix-2.0.5.jar"/>
crazyboblee861eb332007-02-03 02:42:05 +0000113 </classpath>
Christian Edward Gruberba5acdf2013-10-05 14:05:39 -0700114 <arg value="com.google.inject.AllTests"/>
115 <jvmarg value="${jvmarg-value}"/>
limpbizkit869a3c02008-06-27 01:09:41 +0000116 <syspropertyset>
117 <propertyref name="guice.custom.loader"/>
sberlinf7ac6ea2010-05-09 12:48:24 +0000118 <propertyref name="version"/>
119 <propertyref name="build.dir"/>
120 <propertyref name="lib.dir"/>
limpbizkit869a3c02008-06-27 01:09:41 +0000121 </syspropertyset>
crazyboblee861eb332007-02-03 02:42:05 +0000122 </java>
123 </target>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700124
Christian Edward Gruber54565b22013-09-20 17:32:30 -0700125 <property name="old.api" value="3.0"/>
126 <property name="new.api" value="4.0"/>
sberline0359ad2010-10-31 20:39:41 +0000127 <target name="jdiff">
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700128 <property name="jdiff.home" value="lib/build/jdiff"/>
129 <property name="jdiff.tmp" value="build/docs/latest-api-diffs"/>
130 <delete dir="${jdiff.tmp}"/>
131 <mkdir dir="${jdiff.tmp}"/>
132
133 <!-- Generate API for current version. -->
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000134 <javadoc packagenames="com.google.*"
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700135 docletpath="${jdiff.home}/jdiff.jar${path.separator}${jdiff.home}/xerces.jar"
sberline0359ad2010-10-31 20:39:41 +0000136 maxmemory="512M"
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700137 classpath="lib/javax.inject.jar${path.separator}lib/aopalliance.jar">
mcculls74d714c2010-10-21 19:10:16 +0000138 <fileset dir="${src.dir}" defaultexcludes="yes">
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000139 <include name="com/google/**"/>
140 <exclude name="com/google/inject/internal/**"/>
141 </fileset>
142 <fileset dir="${servlet.src.dir}"/>
143 <fileset dir="${spring.src.dir}"/>
144 <fileset dir="${assistedinject.src.dir}"/>
145 <fileset dir="${jmx.src.dir}"/>
146 <fileset dir="${jndi.src.dir}"/>
147 <fileset dir="${throwingproviders.src.dir}"/>
148 <fileset dir="${multibindings.src.dir}"/>
149 <fileset dir="${persist.src.dir}"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +0000150 <fileset dir="${struts2.src.dir}"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700151 <fileset dir="${grapher.src.dir}"/>
sberline0359ad2010-10-31 20:39:41 +0000152
153 <doclet name="jdiff.JDiff"
154 path="${jdiff.home}/jdiff.jar:${jdiff.home}/xerces.jar">
155 <param name="-apidir" value="${jdiff.tmp}" />
156 <param name="-apiname" value="${new.api}" />
157 </doclet>
158 </javadoc>
159
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700160 <!-- Do a diff against the previous version. -->
161 <javadoc packagenames="com.google.*"
162 destdir="${jdiff.tmp}"
163 docletpath="${jdiff.home}/jdiff.jar${path.separator}${jdiff.home}/xerces.jar"
164 maxmemory="512M"
165 sourcefiles="${jdiff.home}/Null.java"
166 classpath="lib/javax.inject.jar${path.separator}lib/aopalliance.jar">
167 <doclet name="jdiff.JDiff">
168 <param name="-oldapi" value="${old.api}"/>
169 <param name="-oldapidir" value="latest-api-diffs"/>
170 <param name="-javadocold" value="http://google-guice.googlecode.com/svn/trunk/latest-api-diffs/${old.api}/javadoc/"/>
171 <param name="-newapi" value="${new.api}"/>
172 <param name="-newapidir" value="${jdiff.tmp}"/>
173 <param name="-javadocnew" value="http://google-guice.googlecode.com/svn/trunk/latest-api-diffs/${new.api}/javadoc/"/>
174 <param name="-stats"/>
175 <param name="-docchanges"/>
176 </doclet>
177 </javadoc>
sberline0359ad2010-10-31 20:39:41 +0000178 </target>
179
180 <target name="javadoc">
181 <javadoc packagenames="com.google.*"
182 destdir="build/docs"
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700183 docletpath="lib/build/doclava.jar"
sberline0359ad2010-10-31 20:39:41 +0000184 bootclasspath="${java.home}/lib/rt.jar"
185 maxmemory="512M"
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700186 classpath="lib/javax.inject.jar${path.separator}lib/aopalliance.jar">
sberline0359ad2010-10-31 20:39:41 +0000187 <fileset dir="${src.dir}" defaultexcludes="yes">
188 <include name="com/google/**"/>
189 <exclude name="com/google/inject/internal/**"/>
190 </fileset>
191 <fileset dir="${servlet.src.dir}"/>
192 <fileset dir="${spring.src.dir}"/>
193 <fileset dir="${assistedinject.src.dir}"/>
194 <fileset dir="${jmx.src.dir}"/>
195 <fileset dir="${jndi.src.dir}"/>
196 <fileset dir="${throwingproviders.src.dir}"/>
197 <fileset dir="${multibindings.src.dir}"/>
198 <fileset dir="${persist.src.dir}"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700199 <fileset dir="${grapher.src.dir}"/>
sberlin@gmail.com81a0c602010-12-02 23:50:16 +0000200 <!-- TODO: this breaks Doclava for some reason
201 <fileset dir="${struts2.src.dir}"/> -->
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000202
203 <doclet name="com.google.doclava.Doclava">
204 <param name="-hdf"/> <param name="project.name"/> <param name="Guice"/>
limpbizkit@gmail.comb5beefa2010-10-05 03:25:16 +0000205 <param name="-since"/> <param name="lib/build/guice-1.0.xml"/> <param name="Guice_1.0" />
sberline0359ad2010-10-31 20:39:41 +0000206 <param name="-since"/> <param name="lib/build/guice-2.0.xml"/> <param name="Guice_2.0" />
207 <param name="-apiversion" value="Guice_${new.api}"/>
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000208 <param name="-assetsdir" value="javadoc/assets"/>
Christian Edward Gruber9e2d95b2013-06-26 17:43:11 -0700209 <param name="-apixml" value="build/docs/guice-${new.api}.xml"/>
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000210 <!-- TODO: fix doclava federation
211 http://aopalliance.sourceforge.net/doc
212 http://www.springframework.org/docs/api/
213 <param name="-federate"/><param name="JDK"/><param name="http://download.oracle.com/javase/6/docs/api/index.html?"/>
214 <param name="-federationxml"/><param name="JDK"/><param name="http://doclava.googlecode.com/svn/static/api/openjdk-6.xml"/>
215 -->
216 </doclet>
crazyboblee66b415a2006-08-25 02:01:19 +0000217 </javadoc>
limpbizkit@gmail.com011d7c42010-10-05 02:50:47 +0000218 <move todir="build/docs/javadoc"><fileset dir="build/docs/reference"/></move>
crazyboblee66b415a2006-08-25 02:01:19 +0000219 </target>
220
limpbizkit7c508c22009-02-19 02:56:27 +0000221 <target name="no_aop"
222 description="Create a copy of the Guice source that doesn't do bytecode generation.">
223 <taskdef name="munge" classname="MungeTask" classpath="lib/build/munge.jar"/>
224 <mkdir dir="build/no_aop"/>
225 <munge todir="build/no_aop">
limpbizkitbf0d8762009-02-19 09:06:22 +0000226 <fileset dir=".">
limpbizkit4f6274a2009-02-19 21:57:55 +0000227 <!-- exclude generated files -->
228 <exclude name="build/**"/>
229 <exclude name="classes/**"/>
230 <exclude name="latest-api-diffs/**"/>
231 <exclude name="javadoc/**"/>
232 <exclude name="latest-javadoc/**"/>
233 <!-- exclude AOP-specific libraries -->
234 <exclude name="lib/aopalliance.jar"/>
235 <exclude name="lib/build/asm-*.jar"/>
236 <exclude name="lib/build/cglib-*.jar"/>
237 <!-- exclude AOP-specific classes -->
238 <exclude name="**/LineNumbers.java"/>
limpbizkitbf0d8762009-02-19 09:06:22 +0000239 <exclude name="**/InterceptorBindingProcessor.java"/>
240 <exclude name="**/ProxyFactory.java"/>
limpbizkit4f6274a2009-02-19 21:57:55 +0000241 <exclude name="**/ProxyFactoryTest.java"/>
limpbizkitbf0d8762009-02-19 09:06:22 +0000242 <exclude name="**/InterceptorStackCallback.java"/>
243 <exclude name="**/InterceptorBinding.java"/>
244 <exclude name="**/MethodAspect.java"/>
245 <exclude name="**/MethodInterceptionTest.java"/>
246 <exclude name="**/BytecodeGenTest.java"/>
247 <exclude name="**/IntegrationTest.java"/>
248 <exclude name="**/MethodInterceptionTest.java"/>
249 </fileset>
limpbizkit7c508c22009-02-19 02:56:27 +0000250 <arg value="-DNO_AOP" />
251 </munge>
sberlinb7a02b02011-07-08 00:34:16 +0000252 <replace file="build/no_aop/common.xml" value="">
Sam Berline8120032013-12-07 12:47:34 -0500253 <replacetoken><![CDATA[<zipfileset src="${common.basedir}/lib/build/asm-4.2.jar"/>]]></replacetoken>
sberlinb7a02b02011-07-08 00:34:16 +0000254 </replace>
255 <replace file="build/no_aop/common.xml" value="">
Sam Berline8120032013-12-07 12:47:34 -0500256 <replacetoken><![CDATA[<zipfileset src="${common.basedir}/lib/build/cglib-3.1.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">
sberlinb7a02b02011-07-08 00:34:16 +0000260 <include name="LICENSE"/>
261 <include name="NOTICE"/>
262 </zipfileset>]]></replacetoken>
263 </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>