commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bay...@apache.org
Subject svn commit: r815010 - /commons/proper/collections/trunk/build.xml
Date Tue, 15 Sep 2009 05:51:54 GMT
Author: bayard
Date: Tue Sep 15 05:51:53 2009
New Revision: 815010

URL: http://svn.apache.org/viewvc?rev=815010&view=rev
Log:
------------------------------------------------------------------------
r740148 | mbenson | 2009-02-02 15:18:16 -0800 (Mon, 02 Feb 2009) | 1 line

parameterize junit haltonfailure
------------------------------------------------------------------------
r738939 | mbenson | 2009-01-29 09:51:26 -0800 (Thu, 29 Jan 2009) | 1 line

formatting; fix junitreport by enabling XML formatter; parameterize junit forking
------------------------------------------------------------------------
r636579 | skestle | 2008-03-12 16:51:04 -0700 (Wed, 12 Mar 2008) | 1 line

Added KeyValue for creation of deprecated jar to support Hibernate (dependency of SequencedHashMap)
------------------------------------------------------------------------
r596857 | skestle | 2007-11-20 14:36:46 -0800 (Tue, 20 Nov 2007) | 3 lines

Added deprecated.jar target for accepting a 3.* version of collections and pulling out classes
needed by hibernate

Jira: COLLECTIONS-277
------------------------------------------------------------------------
r595918 | niallp | 2007-11-16 23:19:43 -0800 (Fri, 16 Nov 2007) | 1 line

Port Jakarta-->Commons TLP changes to JDK5 branch
------------------------------------------------------------------------
r593382 | skestle | 2007-11-08 17:56:05 -0800 (Thu, 08 Nov 2007) | 2 lines

Fixed junit compilation to use test.support.path instead of junit.jar
      	
------------------------------------------------------------------------
r593144 | skestle | 2007-11-08 04:21:55 -0800 (Thu, 08 Nov 2007) | 3 lines

Updated CollectionUtils and test.  Probably 80-90% complete for generics.  Very open to review
/ patches.

Jira: COLLECTIONS-245
------------------------------------------------------------------------
r570371 | skestle | 2007-08-28 03:48:24 -0700 (Tue, 28 Aug 2007) | 1 line

Integrated emma coverage into build.xml
------------------------------------------------------------------------
r557489 | skestle | 2007-07-18 21:43:23 -0700 (Wed, 18 Jul 2007) | 1 line

Added explicit dir="${basedir}" property to the junit task to ensure that <ant> tasks
referencing this build.xml from another directory will still load up the relative path test
data correctly.
------------------------------------------------------------------------
r468599 | scolebourne | 2006-10-27 17:37:31 -0700 (Fri, 27 Oct 2006) | 1 line

Switch to new ASF licence format with copyright dates in NOTICE.txt
------------------------------------------------------------------------

Modified:
    commons/proper/collections/trunk/build.xml

Modified: commons/proper/collections/trunk/build.xml
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/build.xml?rev=815010&r1=815009&r2=815010&view=diff
==============================================================================
--- commons/proper/collections/trunk/build.xml (original)
+++ commons/proper/collections/trunk/build.xml Tue Sep 15 05:51:53 2009
@@ -1,25 +1,33 @@
- <!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-  -->
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
 <project name="commons-collections" default="compile" basedir=".">
 
 <!-- ========== Properties ================================================ -->
 
-  <!-- This can be used to define 'junit.jar' property if necessary -->
+  <!-- This can be used to define 'junit.jar' and 'emma.lib.dir' properties if necessary
-->
   <property file="build.properties"/>
+  
+	<!-- Import EMMA coverage tool -->
+	<path id="emma.lib">
+		<pathelement location="${emma.lib.dir}/emma.jar" />
+		<pathelement location="${emma.lib.dir}/emma_ant.jar" />
+	</path>
+	<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
 
 <!-- ========== Component Declarations ==================================== -->
 
@@ -56,6 +64,11 @@
   <property name="build.docs"              value="${build.home}/docs/apidocs"/>
   <property name="build.src"               value="${build.home}/src-ide" />
   
+  <!-- The directories for tests/instrumentation -->
+  <property name="build.instrumented"           value="${build.home}/instrumented" />
+  <property name="build.reports"           value="${build.home}/reports" />
+  <property name="build.reports.coverage"  value="${build.reports}/coverage" />
+  
   <!-- The name/location of the jar file to build -->
   <property name="final.name"           value="${component.name}-${component.version}"/>
   <property name="jar.name"             value="${final.name}.jar"/>
@@ -73,10 +86,20 @@
   <property name="build.src.tar.name"   value="${build.dist}/${component.name}-${component.version}-src.tar"/>
   <property name="build.src.gz.name"    value="${build.dist}/${component.name}-${component.version}-src.tar.gz"/>
   <property name="build.src.zip.name"   value="${build.dist}/${component.name}-${component.version}-src.zip"/>
-  <property name="dist.home"            value="dist"/> <!-- for nightly builds -->
+  <property name="dist.home"            value="dist"/>
+  <!-- for nightly builds -->
 
+  <!-- Used for generating a support jar for open source packages that require deprecated
classes -->
+  <property name="collections-3.jar" value="commons-collections-3.2.jar"/>
+  
+  <!-- Path variables -->
+  <path id="test.support.path">
+    <!--Combines all jar references needed for running and compiling tests-->
+    <pathelement location="${junit.jar}" />
+    <pathelement location="${easymock.jar}" />
+  </path>
 
-<!-- ========== Settings ================================================== -->
+  <!-- ========== Settings ================================================== -->
 
   <!-- Javac -->
   <property name="compile.debug"           value="true"/>
@@ -90,35 +113,36 @@
   <!-- JUnit -->
   <property name="test.failonerror"        value="true"/>
   <property name="test.fork"               value="true"/>
+  <property name="test.haltonfailure"      value="true"/>
 
   <!-- Maven -->
   <property name="maven.repo"  value="${user.home}/.maven/repository" />
 
 
-<!-- ====================================================================== -->
-<!-- ========== Executable Targets ======================================== -->
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
+  <!-- ========== Executable Targets ======================================== -->
+  <!-- ====================================================================== -->
 
   <target name="clean"
           description="Clean build and distribution directories">
     <delete dir="${build.home}"/>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="init"
           description="Initialize and evaluate conditionals">
     <echo message="-------- ${component.name} ${component.version} --------"/>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="prepare" depends="init"
           description="Prepare build directory">
     <mkdir dir="${build.home}"/>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="compile" depends="prepare"
           description="Compile main code">
@@ -131,7 +155,7 @@
     </javac>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="jar" depends="compile"
           description="Create jar">
@@ -140,7 +164,7 @@
              tofile="${build.classes}/META-INF/LICENSE.txt"/>
     <copy      file="NOTICE.txt"
              tofile="${build.classes}/META-INF/NOTICE.txt"/>
-             
+
     <tstamp/>
     <mkdir      dir="${build.conf}"/>
     <copy     todir="${build.conf}" filtering="on">
@@ -152,14 +176,14 @@
       </filterset>
       <fileset dir="${source.conf}" includes="*.MF"/>
     </copy>
-             
+
     <!-- NOTE: A jar built using JDK1.4 is incompatible with JDK1.2 -->
     <jar    jarfile="${build.jar.name}"
             basedir="${build.classes}"
            manifest="${build.conf}/MANIFEST.MF"/>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
   <!-- Targets you might use to get smaller jar files - not recommended -->
 
   <target name="splitjar" depends="jar"
@@ -261,7 +285,7 @@
 
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="compile.tests" depends="compile"
           description="Compile unit test cases">
@@ -273,28 +297,51 @@
           optimize="false">
       <classpath>
         <pathelement location="${build.classes}"/>
-        <pathelement location="${junit.jar}"/>
+        <path refid="test.support.path"/>
       </classpath>
     </javac>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <!-- Tests collections, either running all or one test -->
   <target name="test" depends="-test-all,-test-single"
           description="Run unit tests" />
 
+  <path id="build.path">
+    <pathelement location="${build.classes}" />
+  </path>
+
+  <target name="instrument"
+          depends="compile.tests"
+          description="Instruments the compiled classes and moves them to the instrumentation
directory">
+    <emma>
+      <instr instrpathref="build.path"
+             destdir="${build.instrumented}"
+             metadatafile="${build.reports.coverage}/coverage.emma"
+             merge="true">
+      </instr>
+    </emma>
+  </target>
+
   <!-- Runs all tests -->
-  <target name="-test-all" depends="compile.tests" unless="testcase">
-    <mkdir dir="${build.test.reports}"/>
-    <junit printsummary="yes" haltonfailure="yes" showoutput="yes">
-      <formatter type="brief" />
+  <target name="-test-all" depends="instrument" unless="testcase">
+	<mkdir dir="${build.test.reports}" />
+
+    <junit printsummary="yes" haltonfailure="${test.haltonfailure}" showoutput="yes">
       <classpath>
+        <pathelement location="${build.instrumented}"/>
         <pathelement location="${build.classes}"/>
         <pathelement location="${build.tests}"/>
-        <pathelement location="${junit.jar}"/>
+        <path refid="test.support.path"/>
+      	<path refid="emma.lib"/>
       </classpath>
+      <jvmarg value="-Demma.coverage.out.file=${build.reports.coverage}/coverage.ec" />
+      <jvmarg value="-Demma.coverage.out.merge=true" />
+      <jvmarg value="-Demma.verbosity.level=quiet" />
 
+      <formatter type="xml" />
+      <formatter type="plain" />
       <batchtest fork="${test.fork}" todir="${build.test.reports}">
         <fileset dir="${source.test}">
           <include name="**/Test*.java"/>
@@ -305,20 +352,27 @@
           <exclude name="**/TestHashMap.java"/>
           <exclude name="**/TestTreeMap.java"/>
           <exclude name="**/TestTypedCollection.java"/>
+          <exclude name="**/TestAnyAllOnePredicate.java"/>
+          <exclude name="**/TestCompositePredicate.java"/>
         </fileset>
-        <formatter type="brief" usefile="false" />
       </batchtest>
     </junit>
+    <junitreport todir="${build.test.reports}">
+      <fileset dir="${build.test.reports}">
+        <include name="TEST-*.xml" />
+      </fileset>
+      <report format="frames" todir="${build.test.reports}/html" />
+    </junitreport>
   </target>
 
   <!-- Runs a single test -->
   <target name="-test-single" depends="compile.tests" if="testcase">
-    <junit printsummary="yes" haltonfailure="yes" showoutput="yes">
+    <junit printsummary="yes" haltonfailure="${test.haltonfailure}" showoutput="yes">
       <formatter type="brief" />
       <classpath>
         <pathelement location="${build.classes}"/>
         <pathelement location="${build.tests}"/>
-        <pathelement location="${junit.jar}"/>
+      	<path refid="test.support.path"/>
       </classpath>
 
       <test name="${testcase}" fork="${test.fork}" todir="${build.test.reports}">
@@ -326,17 +380,30 @@
       </test>
     </junit>
   </target>
+  
+  <target name="coverage.report"
+          depends="test"
+          description="Generates the coverage report for the code that has been run">
+    <emma>
+      <report sourcepath="${source.java}">
+        <fileset dir="${build.reports.coverage}">
+          <include name="*" />
+        </fileset>
+        <html outfile="${build.reports.coverage}/coverage.html" />
+      </report>
+    </emma>
+  </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="testjar"  depends="compile.tests,jar"
           description="Run all unit test cases">
     <echo message="Running collections tests against built jar ..."/>
-    <junit printsummary="yes" haltonfailure="yes">
+    <junit printsummary="yes" haltonfailure="${test.haltonfailure}" dir="${basedir}">
       <classpath>
         <pathelement location="${build.jar.name}"/>
         <pathelement location="${build.tests}"/>
-        <pathelement location="${junit.jar}"/>
+      	<path refid="test.support.path"/>
       </classpath>
 
       <batchtest fork="${test.fork}">
@@ -348,32 +415,34 @@
     </junit>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="javadoc" depends="prepare"
           description="Create component Javadoc documentation">
-    <tstamp><format property="year" pattern="yyyy"/></tstamp>
+    <tstamp>
+      <format property="year" pattern="yyyy"/>
+    </tstamp>
     <delete     dir="${build.docs}"/>
     <mkdir      dir="${build.docs}"/>
     <javadoc sourcepath="${source.java}"
-                destdir="${build.docs}"
-           packagenames="${component.package}.*"
-                 access="${javadoc.access}"
-                 author="true"
-                version="true"
-                    use="true"
-                   link="${javadoc.links}"
-               overview="${source.java}/org/apache/commons/collections/overview.html"
-               doctitle="${component.title} ${component.version} API;"
-            windowtitle="${component.title} ${component.version} API"
-                 bottom="Copyright &amp;copy; 2001-${year} Apache Software Foundation.
All Rights Reserved.">
+             destdir="${build.docs}"
+             packagenames="${component.package}.*"
+             access="${javadoc.access}"
+             author="true"
+             version="true"
+             use="true"
+             link="${javadoc.links}"
+             overview="${source.java}/org/apache/commons/collections/overview.html"
+             doctitle="${component.title} ${component.version} API;"
+             windowtitle="${component.title} ${component.version} API"
+             bottom="Copyright &amp;copy; 2001-${year} Apache Software Foundation. All
Rights Reserved.">
     </javadoc>
   </target>
 
-<!-- ====================================================================== -->
-<!-- ========== Test framework ============================================ -->
-<!-- ====================================================================== -->
-   
+  <!-- ====================================================================== -->
+  <!-- ========== Test framework ============================================ -->
+  <!-- ====================================================================== -->
+
   <property name="tf.name"                 value="commons-collections-testframework"/>
   <property name="tf.package"              value="org.apache.commons.collections"/>
   <property name="tf.title"                value="Commons Collections Test Framework"/>
@@ -383,12 +452,12 @@
   <property name="tf.build.conf"           value="${build.home}/tfconf"/>
   <property name="tf.build.tf"             value="${build.home}/testframework"/>
   <property name="tf.build.docs"           value="${build.home}/docs/testframework"/>
-  
+
   <property name="tf.jar.name" value="${tf.name}-${tf.version}.jar"/>
   <property name="tf.build.jar.name" value="${build.home}/${tf.jar.name}"/>
 
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <!-- patternset describing test framework source not dependent on collections jar -->
   <patternset id="tf.patternset.validate">
@@ -405,25 +474,25 @@
     <include name="**/AbstractTestMapEntry.java"/>
     <include name="**/BulkTest.java"/>
   </patternset>
-  
+
   <target name="tf.validate" depends="prepare"
           description="Testframework - Validate testframework independence">
     <delete    dir="${tf.build.tf}"/>
     <mkdir     dir="${tf.build.tf}"/>
     <javac  srcdir="${source.test}"
-           destdir="${tf.build.tf}"
-             debug="true"
-       deprecation="false"
-          optimize="false">
+            destdir="${tf.build.tf}"
+            debug="true"
+            deprecation="false"
+            optimize="false">
       <patternset refid="tf.patternset.validate" />
       <classpath>
-        <pathelement location="${junit.jar}"/>
+        <path refid="test.support.path"/>
       </classpath>
     </javac>
     <delete dir="${tf.build.tf}"/>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="tf.jar" depends="compile.tests"
           description="Testframework - Create jar">
@@ -434,7 +503,7 @@
         <include name="**/BulkTest*.class"/>
       </fileset>
     </copy>
-    
+
     <!-- NOTE: A jar built using JDK1.4 is incompatible with JDK1.2 -->
     <ant antfile="build-testframework.xml" target="jar">
       <property name="test.classes"         value="${tf.build.tf}"/>
@@ -446,11 +515,13 @@
 
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="tf.javadoc" depends="prepare"
           description="Testframework - Create Javadoc documentation">
-    <tstamp><format property="year" pattern="yyyy"/></tstamp>
+    <tstamp>
+      <format property="year" pattern="yyyy"/>
+    </tstamp>
     <delete     dir="${tf.build.docs}"/>
     <mkdir      dir="${tf.build.docs}"/>
     <javadoc    destdir="${tf.build.docs}"
@@ -470,11 +541,11 @@
   </target>
 
 
-<!-- ====================================================================== -->
-<!-- ========== Distributions ============================================= -->
-<!-- ====================================================================== -->
-   
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
+  <!-- ========== Distributions ============================================= -->
+  <!-- ====================================================================== -->
+
+  <!-- ====================================================================== -->
 
   <!-- Target needed for nightly builds -->
   <target name="dist" depends="javadoc,dist.create"
@@ -483,11 +554,10 @@
     <mkdir dir="${dist.home}" />
     <copy todir="${dist.home}">
       <fileset dir="${build.dist.bin}" />
-	</copy>
+    </copy>
   </target>
 
-  <target name="dist.create" depends="jar,testjar,tf.validate,tf.jar,dist.bin,dist.src">
-  </target>
+  <target name="dist.create" depends="jar,testjar,tf.validate,tf.jar,dist.bin,dist.src"
/>
 
   <target name="dist.bin">
     <copy todir="${build.src}">
@@ -500,7 +570,7 @@
     <antcall target="internal-md5">
       <param name="path" value="${build.home}/${final.name}.jar"/>
     </antcall>
-  	
+
     <mkdir      dir="${build.dist.bin.work}"/>
     <copy     todir="${build.dist.bin.work}">
       <fileset dir=".">
@@ -517,7 +587,7 @@
       </fileset>
     </copy>
   </target>
-  
+
   <target name="dist.src">
     <mkdir      dir="${build.dist.src.work}"/>
     <copy     todir="${build.dist.src.work}">
@@ -552,12 +622,12 @@
     </copy>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
 
   <target name="release" depends="dist.create,zip"
           description="Create release">
-  	<!-- POM -->
-  	<copy file="project.xml" tofile="${build.home}/${final.name}.pom" />
+    <!-- POM -->
+    <copy file="project.xml" tofile="${build.home}/${final.name}.pom" />
     <antcall target="internal-md5">
       <param name="path" value="${build.home}/${final.name}.pom"/>
     </antcall>
@@ -565,10 +635,10 @@
 
   <target name="zip" depends="zip.bin,zip.src">
   </target>
-  
+
   <target name="zip.bin">
     <mkdir dir="${build.dist}"/>
-  	<fixcrlf srcdir="${build.dist.bin.work}" eol="lf" includes="*.txt" />
+    <fixcrlf srcdir="${build.dist.bin.work}" eol="lf" includes="*.txt" />
     <tar longfile="gnu" tarfile="${build.bin.tar.name}">
       <tarfileset dir="${build.dist.bin}"/>
     </tar>
@@ -577,8 +647,8 @@
     <antcall target="internal-md5">
       <param name="path" value="${build.bin.gz.name}"/>
     </antcall>
-    
-  	<fixcrlf srcdir="${build.dist.bin.work}" eol="crlf" includes="*.txt" />
+
+    <fixcrlf srcdir="${build.dist.bin.work}" eol="crlf" includes="*.txt" />
     <zip zipfile="${build.bin.zip.name}" >
       <zipfileset dir="${build.dist.bin}"/>
     </zip>
@@ -589,7 +659,7 @@
 
   <target name="zip.src">
     <mkdir dir="${build.dist}"/>
-  	<fixcrlf srcdir="${build.dist.src.work}" eol="lf" includes="*.txt,*.properties" />
+    <fixcrlf srcdir="${build.dist.src.work}" eol="lf" includes="*.txt,*.properties" />
     <tar longfile="gnu" tarfile="${build.src.tar.name}">
       <tarfileset dir="${build.dist.src}"/>
     </tar>
@@ -598,8 +668,8 @@
     <antcall target="internal-md5">
       <param name="path" value="${build.src.gz.name}"/>
     </antcall>
-    
-  	<fixcrlf srcdir="${build.dist.src.work}" eol="crlf" includes="*.txt,*.properties" />
+
+    <fixcrlf srcdir="${build.dist.src.work}" eol="crlf" includes="*.txt,*.properties"
/>
     <zip zipfile="${build.src.zip.name}" >
       <zipfileset dir="${build.dist.src}"/>
     </zip>
@@ -611,10 +681,10 @@
   <target name="internal-md5">
     <basename property="_base" file="${path}"/>
     <checksum file="${path}" property="md5"/>
-   	<echo message="${md5} *${_base}" file="${path}.md5"/>
+    <echo message="${md5} *${_base}" file="${path}.md5"/>
   </target>
 
-<!-- ====================================================================== -->
+  <!-- ====================================================================== -->
   <target name="clirr">
     <taskdef resource="clirrtask.properties">
       <classpath path="${maven.repo}/clirr/jars/clirr-core-0.6-uber.jar;" />
@@ -626,4 +696,16 @@
     </clirr>
   </target>
 
+  <!-- ====================================================================== -->
+  <target name="deprecated.jar" description="Compiles a jar of deprecated classes that
existed in 3.* releases, and are necessary for other dependencies">
+    <jar jarfile="commons-collections-deprecated.jar">
+    	<zipfileset src="${collections-3.jar}">
+  			<!-- used by Hibernate -->
+    		<include name="**/SequencedHashMap*"/>
+  			<include name="**/KeyValue*"/> <!-- used by SequencedHashMap --> 
+    		<include name="**/LRUMap*"/>
+    		<include name="**/ReferenceMap*"/>
+    	</zipfileset>
+   	</jar>
+  </target>
 </project>



Mime
View raw message