1*dc5640d1SHerbert Xue<?xml version="1.0"?> 2*dc5640d1SHerbert Xue 3*dc5640d1SHerbert Xue<project name="common"> 4*dc5640d1SHerbert Xue 5*dc5640d1SHerbert Xue <property file="build.properties"/> 6*dc5640d1SHerbert Xue 7*dc5640d1SHerbert Xue <!-- can be overridden at the command line with -Dversion= 8*dc5640d1SHerbert Xue or in IDEA, in the ant properties dialog --> 9*dc5640d1SHerbert Xue <property name="version" value="snapshot"/> 10*dc5640d1SHerbert Xue <property name="api.version" value="1.4"/> 11*dc5640d1SHerbert Xue 12*dc5640d1SHerbert Xue <target name="compile" description="Compile Java source."> 13*dc5640d1SHerbert Xue <mkdir dir="${build.dir}/classes"/> 14*dc5640d1SHerbert Xue <javac srcdir="${src.dir}" 15*dc5640d1SHerbert Xue debug="on" 16*dc5640d1SHerbert Xue destdir="${build.dir}/classes" 17*dc5640d1SHerbert Xue source="1.7" target="1.7" includeantruntime="false"> 18*dc5640d1SHerbert Xue <compilerarg value="-Xlint:all,-serial"/> 19*dc5640d1SHerbert Xue <classpath refid="compile.classpath"/> 20*dc5640d1SHerbert Xue </javac> 21*dc5640d1SHerbert Xue <copy toDir="${build.dir}/classes"> 22*dc5640d1SHerbert Xue <fileset dir="${src.dir}" excludes="**/*.java"/> 23*dc5640d1SHerbert Xue </copy> 24*dc5640d1SHerbert Xue </target> 25*dc5640d1SHerbert Xue 26*dc5640d1SHerbert Xue <target name="manifest" description="Generate OSGi manifest." depends="compile"> 27*dc5640d1SHerbert Xue <dirname property="common.basedir" file="${ant.file.common}"/> 28*dc5640d1SHerbert Xue <taskdef resource="aQute/bnd/ant/taskdef.properties" 29*dc5640d1SHerbert Xue classpath="${common.basedir}/lib/build/bnd-0.0.384.jar"/> 30*dc5640d1SHerbert Xue 31*dc5640d1SHerbert Xue <fail unless="module" message="Missing 'module' property (use the primary package name in this jar)"/> 32*dc5640d1SHerbert Xue <property name="imports" value=""/> 33*dc5640d1SHerbert Xue 34*dc5640d1SHerbert Xue <property name="Bundle-Name" value="${ant.project.name}"/> 35*dc5640d1SHerbert Xue <property name="Bundle-SymbolicName" value="${module}"/> 36*dc5640d1SHerbert Xue <property name="Bundle-Version" value="${replace;${version};^[^0-9];0.0.0.$0}"/> 37*dc5640d1SHerbert Xue 38*dc5640d1SHerbert Xue <property name="Bundle-Description" value="Guice is a lightweight dependency injection framework for Java 6 and above"/> 39*dc5640d1SHerbert Xue <property name="Bundle-DocURL" value="https://github.com/google/guice"/> 40*dc5640d1SHerbert Xue <property name="Bundle-Copyright" value="Copyright (C) 2006 Google Inc."/> 41*dc5640d1SHerbert Xue <property name="Bundle-License" value="http://www.apache.org/licenses/LICENSE-2.0.txt"/> 42*dc5640d1SHerbert Xue <property name="Bundle-RequiredExecutionEnvironment" value="JavaSE-1.7"/> 43*dc5640d1SHerbert Xue <property name="Bundle-Vendor" value="Google, Inc."/> 44*dc5640d1SHerbert Xue 45*dc5640d1SHerbert Xue <property name="Export-Package" value="!${module}.internal.*,${module}.*;version=${api.version}"/> 46*dc5640d1SHerbert Xue 47*dc5640d1SHerbert Xue <condition property="Eclipse-ExtensibleAPI" value="true"> 48*dc5640d1SHerbert Xue <equals arg1="${module}" arg2="com.google.inject"/> 49*dc5640d1SHerbert Xue </condition> 50*dc5640d1SHerbert Xue 51*dc5640d1SHerbert Xue <condition property="Import-Package" value="!com.google.inject.*,*" else="!${module}.*,${imports},*"> 52*dc5640d1SHerbert Xue <istrue value="${fragment}"/> 53*dc5640d1SHerbert Xue </condition> 54*dc5640d1SHerbert Xue 55*dc5640d1SHerbert Xue <condition property="Fragment-Host" value="com.google.inject"> 56*dc5640d1SHerbert Xue <istrue value="${fragment}"/> 57*dc5640d1SHerbert Xue </condition> 58*dc5640d1SHerbert Xue 59*dc5640d1SHerbert Xue <property name="-nouses" value="true"/> 60*dc5640d1SHerbert Xue 61*dc5640d1SHerbert Xue <property name="-removeheaders" value="Bnd-LastModified,Ignore-Package,Include-Resource,Private-Package,Tool"/> 62*dc5640d1SHerbert Xue 63*dc5640d1SHerbert Xue <bndwrap jars="${build.dir}/classes" output="${build.dir}"/> 64*dc5640d1SHerbert Xue 65*dc5640d1SHerbert Xue <unjar src="${build.dir}/classes.bar" dest="${build.dir}"> 66*dc5640d1SHerbert Xue <patternset> 67*dc5640d1SHerbert Xue <include name="META-INF/MANIFEST.MF"/> 68*dc5640d1SHerbert Xue </patternset> 69*dc5640d1SHerbert Xue </unjar> 70*dc5640d1SHerbert Xue </target> 71*dc5640d1SHerbert Xue 72*dc5640d1SHerbert Xue <target name="test.compile" 73*dc5640d1SHerbert Xue depends="compile" 74*dc5640d1SHerbert Xue description="Compile test source."> 75*dc5640d1SHerbert Xue <mkdir dir="${build.dir}/test"/> 76*dc5640d1SHerbert Xue <javac srcdir="${test.dir}" 77*dc5640d1SHerbert Xue debug="on" 78*dc5640d1SHerbert Xue destdir="${build.dir}/test" 79*dc5640d1SHerbert Xue source="1.7" target="1.7" includeantruntime="false"> 80*dc5640d1SHerbert Xue <classpath path="${build.dir}/classes"/> 81*dc5640d1SHerbert Xue <classpath path="${build.dir}/test"/> 82*dc5640d1SHerbert Xue <classpath refid="compile.classpath"/> 83*dc5640d1SHerbert Xue </javac> 84*dc5640d1SHerbert Xue <copy toDir="${build.dir}/test"> 85*dc5640d1SHerbert Xue <fileset dir="${test.dir}" excludes="**/*.java"/> 86*dc5640d1SHerbert Xue </copy> 87*dc5640d1SHerbert Xue </target> 88*dc5640d1SHerbert Xue 89*dc5640d1SHerbert Xue <target name="test" 90*dc5640d1SHerbert Xue depends="test.compile" 91*dc5640d1SHerbert Xue description="Execute JUnit tests."> 92*dc5640d1SHerbert Xue <java fork="true" 93*dc5640d1SHerbert Xue classname="junit.textui.TestRunner" 94*dc5640d1SHerbert Xue failonerror="true" 95*dc5640d1SHerbert Xue taskname="junit"> 96*dc5640d1SHerbert Xue <classpath> 97*dc5640d1SHerbert Xue <pathelement location="${build.dir}/test"/> 98*dc5640d1SHerbert Xue <pathelement location="${build.dir}/classes"/> 99*dc5640d1SHerbert Xue <path refid="compile.classpath"/> 100*dc5640d1SHerbert Xue </classpath> 101*dc5640d1SHerbert Xue <arg value="${test.class}"/> 102*dc5640d1SHerbert Xue </java> 103*dc5640d1SHerbert Xue </target> 104*dc5640d1SHerbert Xue 105*dc5640d1SHerbert Xue <target name="clean" 106*dc5640d1SHerbert Xue description="Remove generated files."> 107*dc5640d1SHerbert Xue <delete dir="${build.dir}"/> 108*dc5640d1SHerbert Xue </target> 109*dc5640d1SHerbert Xue 110*dc5640d1SHerbert Xue <target name="source.jar" 111*dc5640d1SHerbert Xue description="Create a .jar file with sources"> 112*dc5640d1SHerbert Xue <mkdir dir="${build.dir}"/> 113*dc5640d1SHerbert Xue <zip destfile="${build.dir}/${ant.project.name}-${version}-src.jar"> 114*dc5640d1SHerbert Xue <fileset dir="${src.dir}"/> 115*dc5640d1SHerbert Xue </zip> 116*dc5640d1SHerbert Xue </target> 117*dc5640d1SHerbert Xue 118*dc5640d1SHerbert Xue <target name="distjars" 119*dc5640d1SHerbert Xue depends="source.jar, jar" 120*dc5640d1SHerbert Xue description="Build jar files"/> 121*dc5640d1SHerbert Xue 122*dc5640d1SHerbert Xue <target name="test.withdeps" depends="test.compile" 123*dc5640d1SHerbert Xue description="Build a jar of tests with internal.util refocused."> 124*dc5640d1SHerbert Xue <mkdir dir="${build.dir}/dist"/> 125*dc5640d1SHerbert Xue <dirname property="common.basedir" file="${ant.file.common}"/> 126*dc5640d1SHerbert Xue <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" 127*dc5640d1SHerbert Xue classpath="${common.basedir}/lib/build/jarjar-1.1.jar"/> 128*dc5640d1SHerbert Xue <jarjar jarfile="${build.dir}/${ant.project.name}-${version}-tests.jar"> 129*dc5640d1SHerbert Xue <fileset dir="${build.dir}/test"/> 130*dc5640d1SHerbert Xue <rule pattern="net.sf.cglib.*" result="com.google.inject.internal.cglib.$@1"/> 131*dc5640d1SHerbert Xue <rule pattern="net.sf.cglib.**.*" result="com.google.inject.internal.cglib.@1.$@2"/> 132*dc5640d1SHerbert Xue <rule pattern="org.objectweb.asm.*" result="com.google.inject.internal.asm.$@1"/> 133*dc5640d1SHerbert Xue <rule pattern="org.objectweb.asm.**.*" result="com.google.inject.internal.asm.@1.$@2"/> 134*dc5640d1SHerbert Xue <keep pattern="com.google.inject.**"/> 135*dc5640d1SHerbert Xue <keep pattern="com.googlecode.**"/> 136*dc5640d1SHerbert Xue </jarjar> 137*dc5640d1SHerbert Xue </target> 138*dc5640d1SHerbert Xue 139*dc5640d1SHerbert Xue <target name="jar.withdeps" depends="compile" 140*dc5640d1SHerbert Xue description="Build jar with dependencies embedded."> 141*dc5640d1SHerbert Xue <mkdir dir="${build.dir}/dist"/> 142*dc5640d1SHerbert Xue <dirname property="common.basedir" file="${ant.file.common}"/> 143*dc5640d1SHerbert Xue <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" 144*dc5640d1SHerbert Xue classpath="${common.basedir}/lib/build/jarjar-1.1.jar"/> 145*dc5640d1SHerbert Xue <jarjar jarfile="${build.dir}/${ant.project.name}-with-deps.jar"> 146*dc5640d1SHerbert Xue <fileset dir="${build.dir}/classes"/> 147*dc5640d1SHerbert Xue <zipfileset src="${common.basedir}/lib/build/cglib-3.2.6.jar"/> 148*dc5640d1SHerbert Xue <zipfileset src="${common.basedir}/lib/build/asm-6.0.jar"/> 149*dc5640d1SHerbert Xue <rule pattern="net.sf.cglib.*" result="com.google.inject.internal.cglib.$@1"/> 150*dc5640d1SHerbert Xue <rule pattern="net.sf.cglib.**.*" result="com.google.inject.internal.cglib.@1.$@2"/> 151*dc5640d1SHerbert Xue <rule pattern="org.objectweb.asm.*" result="com.google.inject.internal.asm.$@1"/> 152*dc5640d1SHerbert Xue <rule pattern="org.objectweb.asm.**.*" result="com.google.inject.internal.asm.@1.$@2"/> 153*dc5640d1SHerbert Xue <keep pattern="com.google.inject.**"/> 154*dc5640d1SHerbert Xue </jarjar> 155*dc5640d1SHerbert Xue </target> 156*dc5640d1SHerbert Xue</project> 157