You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cu...@apache.org on 2008/12/16 00:15:43 UTC

svn commit: r726872 [1/3] - in /hadoop/core/trunk: ./ bin/ ivy/ lib/ lib/jsp-2.1/ src/c++/libhdfs/tests/ src/contrib/ src/contrib/capacity-scheduler/ src/contrib/capacity-scheduler/ivy/ src/contrib/chukwa/ src/contrib/chukwa/build/ src/contrib/chukwa/i...

Author: cutting
Date: Mon Dec 15 15:15:41 2008
New Revision: 726872

URL: http://svn.apache.org/viewvc?rev=726872&view=rev
Log:
HADOOP-3305.  Use Ivy to manage dependencies.  Contributed by Giridharan Kesavan and Steve Loughran.

Added:
    hadoop/core/trunk/ivy/   (with props)
    hadoop/core/trunk/ivy.xml
    hadoop/core/trunk/ivy/hadoop-core.pom
    hadoop/core/trunk/ivy/ivysettings.xml
    hadoop/core/trunk/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/capacity-scheduler/ivy/
    hadoop/core/trunk/src/contrib/capacity-scheduler/ivy.xml
    hadoop/core/trunk/src/contrib/capacity-scheduler/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/chukwa/ivy/
    hadoop/core/trunk/src/contrib/chukwa/ivy.xml
    hadoop/core/trunk/src/contrib/chukwa/ivy/ivysettings.xml
    hadoop/core/trunk/src/contrib/chukwa/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/data_join/ivy/
    hadoop/core/trunk/src/contrib/data_join/ivy.xml
    hadoop/core/trunk/src/contrib/data_join/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/eclipse-plugin/ivy/
    hadoop/core/trunk/src/contrib/eclipse-plugin/ivy.xml
    hadoop/core/trunk/src/contrib/eclipse-plugin/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/failmon/ivy/
    hadoop/core/trunk/src/contrib/failmon/ivy.xml
    hadoop/core/trunk/src/contrib/failmon/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/fairscheduler/ivy/
    hadoop/core/trunk/src/contrib/fairscheduler/ivy.xml
    hadoop/core/trunk/src/contrib/fairscheduler/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/fuse-dfs/ivy/
    hadoop/core/trunk/src/contrib/fuse-dfs/ivy.xml
    hadoop/core/trunk/src/contrib/fuse-dfs/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/hdfsproxy/ivy/
    hadoop/core/trunk/src/contrib/hdfsproxy/ivy.xml
    hadoop/core/trunk/src/contrib/hdfsproxy/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/hod/ivy/
    hadoop/core/trunk/src/contrib/hod/ivy.xml
    hadoop/core/trunk/src/contrib/hod/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/index/ivy/
    hadoop/core/trunk/src/contrib/index/ivy.xml
    hadoop/core/trunk/src/contrib/index/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/streaming/ivy/
    hadoop/core/trunk/src/contrib/streaming/ivy.xml
    hadoop/core/trunk/src/contrib/streaming/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/thriftfs/ivy/
    hadoop/core/trunk/src/contrib/thriftfs/ivy.xml
    hadoop/core/trunk/src/contrib/thriftfs/ivy/libraries.properties
    hadoop/core/trunk/src/contrib/vaidya/ivy/
    hadoop/core/trunk/src/contrib/vaidya/ivy.xml
    hadoop/core/trunk/src/contrib/vaidya/ivy/libraries.properties
Removed:
    hadoop/core/trunk/lib/commons-codec-1.3.jar
    hadoop/core/trunk/lib/commons-httpclient-3.0.1.jar
    hadoop/core/trunk/lib/commons-logging-1.0.4.jar
    hadoop/core/trunk/lib/commons-logging-api-1.0.4.jar
    hadoop/core/trunk/lib/commons-net-1.4.1.jar
    hadoop/core/trunk/lib/jets3t-0.6.1.jar
    hadoop/core/trunk/lib/jetty-6.1.14.LICENSE.txt
    hadoop/core/trunk/lib/jetty-6.1.14.jar
    hadoop/core/trunk/lib/jetty-util-6.1.14.jar
    hadoop/core/trunk/lib/jsp-2.1/core-3.1.1.jar
    hadoop/core/trunk/lib/junit-3.8.1.LICENSE.txt
    hadoop/core/trunk/lib/junit-3.8.1.jar
    hadoop/core/trunk/lib/log4j-1.2.15.jar
    hadoop/core/trunk/lib/oro-2.0.8.jar
    hadoop/core/trunk/lib/servlet-api-2.5-6.1.14.jar
    hadoop/core/trunk/lib/slf4j-LICENSE.txt
    hadoop/core/trunk/lib/slf4j-api-1.4.3.jar
    hadoop/core/trunk/lib/slf4j-log4j12-1.4.3.jar
    hadoop/core/trunk/lib/xmlenc-0.52.jar
    hadoop/core/trunk/src/contrib/chukwa/build/
    hadoop/core/trunk/src/contrib/index/lib/
Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/bin/hadoop
    hadoop/core/trunk/build.xml
    hadoop/core/trunk/src/c++/libhdfs/tests/test-libhdfs.sh
    hadoop/core/trunk/src/contrib/build-contrib.xml
    hadoop/core/trunk/src/contrib/chukwa/build.xml
    hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-README.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/commons-httpclient-3.1-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/commons-httpclient-3.1-README.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/commons-io-1.4-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/commons-io-1.4-README.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/jetty-6.1.11-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/jetty-6.1.11-README.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/junit-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/junit-README.html
    hadoop/core/trunk/src/contrib/chukwa/lib/log4j-1.2.13-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/log4j-1.2.13-README.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/servlet-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/servlet-README.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/servlet-api-LICENSE.txt
    hadoop/core/trunk/src/contrib/chukwa/lib/servlet-api-README.txt
    hadoop/core/trunk/src/contrib/hdfsproxy/build.xml

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Mon Dec 15 15:15:41 2008
@@ -107,6 +107,9 @@
          split size rather than min size and the desired number of maps.
       (omalley)
     
+    HADOOP-3305.  Use Ivy to manage dependencies.  (Giridharan Kesavan
+    and Steve Loughran via cutting)
+
   IMPROVEMENTS
 
     HADOOP-4749. Added a new counter REDUCE_INPUT_BYTES. (Yongqiang He via 

Modified: hadoop/core/trunk/bin/hadoop
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/bin/hadoop?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/bin/hadoop (original)
+++ hadoop/core/trunk/bin/hadoop Mon Dec 15 15:15:41 2008
@@ -143,6 +143,12 @@
   CLASSPATH=${CLASSPATH}:$f;
 done
 
+if [ -d "$HADOOP_HOME/build/ivy/lib/Hadoop/common" ]; then
+for f in $HADOOP_HOME/build/ivy/lib/Hadoop/common/*.jar; do
+  CLASSPATH=${CLASSPATH}:$f;
+done
+fi
+
 for f in $HADOOP_HOME/lib/jsp-2.1/*.jar; do
   CLASSPATH=${CLASSPATH}:$f;
 done

Modified: hadoop/core/trunk/build.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/build.xml?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/build.xml (original)
+++ hadoop/core/trunk/build.xml Mon Dec 15 15:15:41 2008
@@ -17,7 +17,8 @@
    limitations under the License.
 -->
 
-<project name="Hadoop" default="compile">
+<project name="Hadoop" default="compile" 
+   xmlns:ivy="antlib:org.apache.ivy.ant"> 
 
   <!-- Load all the default properties, and any the user wants    -->
   <!-- to contribute (without having to type -D or edit this file -->
@@ -146,6 +147,34 @@
   <property name="patch.cmd" value="patch"/>
   <property name="make.cmd" value="make"/>
 
+  <!-- IVY properteis set here -->
+  <property name="ivy.dir" location="ivy" />
+  <loadproperties srcfile="${ivy.dir}/libraries.properties"/>
+  <property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/>
+  <property name="ivy_repo_url" value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
+  <property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml" />
+  <property name="ivy.org" value="org.apache.hadoop"/>
+  <property name="build.dir" location="build" />
+  <property name="dist.dir" value="${build.dir}/${final.name}"/>
+  <property name="build.ivy.dir" location="${build.dir}/ivy" />
+  <property name="build.ivy.lib.dir" location="${build.ivy.dir}/lib" />
+  <property name="common.ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}/common"/>
+  <property name="build.ivy.report.dir" location="${build.ivy.dir}/report" />
+  <property name="build.ivy.maven.dir" location="${build.ivy.dir}/maven" />
+  <property name="build.ivy.maven.pom" location="${build.ivy.maven.dir}/hadoop-core-${hadoop.version}.pom" />
+  <property name="build.ivy.maven.jar" location="${build.ivy.maven.dir}/hadoop-core-${hadoop.version}.jar" />
+
+  <!--this is the naming policy for artifacts we want pulled down-->
+  <property name="ivy.artifact.retrieve.pattern" value="${ant.project.name}/[conf]/[artifact]-[revision].[ext]"/>
+
+  <!--this is how artifacts that get built are named-->
+  <property name="ivy.publish.pattern" value="hadoop-[revision]-core.[ext]"/>
+  <property name="hadoop.jar" location="${build.dir}/hadoop-${hadoop.version}-core.jar" />
+
+  <!-- jdiff.home property set -->
+  <property name="jdiff.home" value="${build.ivy.lib.dir}/${ant.project.name}/jdiff"/>
+  <property name="jdiff.jar" value="${jdiff.home}/jdiff-${jdiff.version}.jar"/>
+  <property name="xerces.jar" value="${jdiff.home}/xerces-${xerces.version}.jar"/>
 
   <available property="clover.present" classname="com.cenqua.clover.tasks.CloverReportTask" />
 
@@ -165,6 +194,7 @@
       <exclude name="**/excluded/" />
     </fileset>
     <pathelement location="${conf.dir}"/>
+    <path refid="ivy-common.classpath"/>
   </path>
 
   <!-- the unit test classpath: uses test.src.dir for configuration -->
@@ -191,7 +221,7 @@
   </path>
 
   <!-- properties dependent on the items defined above. -->
-  <available classname="${rat.reporting.classname}" classpathref="classpath" property="rat.present" value="true"/>
+  <!--<available classname="${rat.reporting.classname}" classpathref="classpath" property="rat.present" value="true"/> -->
 
   <!-- ====================================================== -->
   <!-- Macro definitions                                      -->
@@ -210,7 +240,7 @@
   <!-- ====================================================== -->
   <!-- Stuff needed by all targets                            -->
   <!-- ====================================================== -->
-  <target name="init">
+  <target name="init" depends="ivy-retrieve-common">
     <mkdir dir="${build.dir}"/>
     <mkdir dir="${build.classes}"/>
     <mkdir dir="${build.tools}"/>
@@ -264,16 +294,11 @@
   <!-- ====================================================== -->
   <!-- Compile the Java files                                 -->
   <!-- ====================================================== -->
-  <taskdef classname="org.apache.jasper.JspC" name="jsp-compile" >
-      <classpath refid="test.classpath"/>
-  </taskdef>
-
   <target name="record-parser" depends="init" if="javacc.home">
       <javacc
           target="${core.src.dir}/org/apache/hadoop/record/compiler/generated/rcc.jj"
           outputdirectory="${core.src.dir}/org/apache/hadoop/record/compiler/generated"
-          javacchome="${javacc.home}"
-      />
+          javacchome="${javacc.home}" />
   </target>
   
   <target name="compile-rcc-compiler" depends="init, record-parser">
@@ -297,7 +322,9 @@
   </target>
   
   <target name="compile-core-classes" depends="init, compile-rcc-compiler">
-
+     <taskdef classname="org.apache.jasper.JspC" name="jsp-compile" >
+        <classpath refid="test.classpath"/>
+     </taskdef>
     <!-- Compile Java files (excluding JSPs) checking warnings -->
     <javac 
      encoding="${build.encoding}" 
@@ -750,14 +777,10 @@
   <!-- ================================================================== -->
   <!-- Run optional third-party tool targets                              --> 
   <!-- ================================================================== -->
-  <target name="checkstyle" depends="check-for-checkstyle" if="checkstyle.present" description="Run optional third-party tool targets">
- 	<taskdef resource="checkstyletask.properties">
-      <classpath>
-        <fileset dir="${lib.dir}">
-          <include name="excluded/checkstyle-all-*.jar"/>
-        </fileset>
-      </classpath>
-    </taskdef>
+  <target name="checkstyle" depends="ivy-retrieve-checkstyle,check-for-checkstyle" if="checkstyle.present" description="Run optional third-party tool targets">
+       <taskdef resource="checkstyletask.properties">
+         <classpath refid="checkstyle-classpath"/>
+       </taskdef>
   
 	<mkdir dir="${test.build.dir}"/>
   	
@@ -776,36 +799,35 @@
 	
   <target name="check-for-checkstyle">
     <available property="checkstyle.present" resource="checkstyletask.properties">
-      <classpath>
-        <fileset dir="${lib.dir}">
-          <include name="excluded/checkstyle-all-*.jar"/>
-        </fileset>
-      </classpath>    	
+       <classpath refid="checkstyle-classpath"/>
     </available>  	
   </target>
 
-  <property name="findbugs.home" value=""/>
+ <property name="findbugs.home" value=""/>
   <target name="findbugs" depends="check-for-findbugs, tar" if="findbugs.present" description="Run findbugs if present">
     <property name="findbugs.out.dir" value="${test.build.dir}/findbugs"/>
     <property name="findbugs.exclude.file" value="${test.src.dir}/findbugsExcludeFile.xml"/>
     <property name="findbugs.report.htmlfile" value="${findbugs.out.dir}/hadoop-findbugs-report.html"/>
     <property name="findbugs.report.xmlfile" value="${findbugs.out.dir}/hadoop-findbugs-report.xml"/>
-    <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" 
-    	classpath="${findbugs.home}/lib/findbugs-ant.jar" />
-  
-	<mkdir dir="${findbugs.out.dir}"/>
-	
-    <findbugs home="${findbugs.home}" output="xml:withMessages" 
-    	outputFile="${findbugs.report.xmlfile}" effort="max" 
-    	excludeFilter="${findbugs.exclude.file}" jvmargs="-Xmx512M">
+    <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
+        classpath="${findbugs.home}/lib/findbugs-ant.jar" />
+
+        <mkdir dir="${findbugs.out.dir}"/>
+
+    <findbugs home="${findbugs.home}" output="xml:withMessages"
+        outputFile="${findbugs.report.xmlfile}" effort="max"
+        excludeFilter="${findbugs.exclude.file}" jvmargs="-Xmx512M">
       <auxClasspath>
         <fileset dir="${lib.dir}">
           <include name="**/*.jar"/>
         </fileset>
+        <fileset dir="${build.ivy.lib.dir}/${ant.project.name}/common">
+          <include name="**/*.jar"/>
+        </fileset>
       </auxClasspath>
       <sourcePath path="${core.src.dir}"/>
       <sourcePath path="${mapred.src.dir}"/>
-      <sourcePath path="${hdfs.src.dir}"/>  	
+      <sourcePath path="${hdfs.src.dir}"/>
       <sourcePath path="${examples.dir}" />
       <sourcePath path="${tools.src}" />
       <sourcePath path="${basedir}/src/contrib/streaming/src/java" />
@@ -814,17 +836,18 @@
       <class location="${basedir}/build/${final.name}-tools.jar" />
       <class location="${basedir}/build/contrib/streaming/${final.name}-streaming.jar" />
     </findbugs>
-  	
-  	<xslt style="${findbugs.home}/src/xsl/default.xsl"
+
+        <xslt style="${findbugs.home}/src/xsl/default.xsl"
         in="${findbugs.report.xmlfile}"
         out="${findbugs.report.htmlfile}"/>
   </target>
-
+	
   <target name="check-for-findbugs">
-    <available property="findbugs.present" 
-    	file="${findbugs.home}/lib/findbugs.jar" />
+    <available property="findbugs.present"
+        file="${findbugs.home}/lib/findbugs.jar" />
   </target>
-	
+
+
   <!-- ================================================================== -->
   <!-- Documentation                                                      -->
   <!-- ================================================================== -->
@@ -908,7 +931,7 @@
     </javadoc>
   </target>	
 
-  <target name="javadoc" depends="compile" description="Generate javadoc">
+  <target name="javadoc" depends="compile, ivy-retrieve-javadoc" description="Generate javadoc">
     <mkdir dir="${build.javadoc}"/>
     <javadoc
       overview="${core.src.dir}/overview.html"
@@ -937,6 +960,7 @@
           <fileset dir="src/contrib/">
             <include name="*/lib/*.jar" />
           </fileset>
+          <path refid="javadoc-classpath"/>
           <pathelement path="${java.class.path}"/>
           <pathelement location="${build.tools}"/>
         </classpath>
@@ -950,15 +974,15 @@
        <group title="contrib: FailMon" packages="org.apache.hadoop.contrib.failmon*"/>
     </javadoc>
   </target>	
-
+<!--
   <target name="jdiff.check" unless="jdiff.home">
     <fail message="'jdiff.home' is not defined. Please pass -Djdiff.home=&lt;base of jdiff installation&gt; to Ant on the command-line." />
   </target>
-
-  <target name="api-xml" depends="jdiff.check,javadoc">
+-->
+  <target name="api-xml" depends="javadoc,write-null">
     <javadoc>
        <doclet name="jdiff.JDiff"
-               path="${jdiff.home}/jdiff.jar:${jdiff.home}/xerces.jar">
+               path="${jdiff..jar}:${xerces.jar}">
          <param name="-apidir" value="${jdiff.xml.dir}"/>
          <param name="-apiname" value="hadoop ${version}"/>
        </doclet>
@@ -967,18 +991,25 @@
        <packageset dir="src/tools"/>
        <classpath >
          <path refid="classpath" />
+         <path refid="jdiff-classpath" />
          <pathelement path="${java.class.path}"/>
        </classpath>
     </javadoc>
   </target>
 	
-  <target name="api-report" depends="api-xml">
+  <target name="write-null">
+	<exec executable="touch">
+	   <arg value="${jdiff.home}/Null.java"/>
+        </exec>
+  </target> 
+
+  <target name="api-report" depends="ivy-retrieve-jdiff,api-xml">
     <mkdir dir="${jdiff.build.dir}"/>
     <javadoc sourcepath="src/core,src/hdfs,src,mapred,src/tools"
              destdir="${jdiff.build.dir}"
              sourceFiles="${jdiff.home}/Null.java">
        <doclet name="jdiff.JDiff"
-               path="${jdiff.home}/jdiff.jar:${jdiff.home}/xerces.jar">
+               path="${jdiff.jar}:${xerces.jar}">
          <param name="-oldapi" value="hadoop ${jdiff.stable}"/>
          <param name="-newapi" value="hadoop ${version}"/>
          <param name="-oldapidir" value="${jdiff.xml.dir}"/>
@@ -989,6 +1020,7 @@
        </doclet>
        <classpath >
          <path refid="classpath" />
+         <path refid="jdiff-classpath"/>
          <pathelement path="${java.class.path}"/>
        </classpath>
     </javadoc>
@@ -1019,6 +1051,10 @@
     <mkdir dir="${dist.dir}/docs/api"/>
     <mkdir dir="${dist.dir}/docs/jdiff"/>
 
+    <copy todir="${dist.dir}/lib" includeEmptyDirs="false" flatten="true">
+      <fileset dir="${common.ivy.lib.dir}"/>
+    </copy>
+
     <copy todir="${dist.dir}/lib" includeEmptyDirs="false">
       <fileset dir="lib">
         <exclude name="**/native/**"/>
@@ -1132,10 +1168,10 @@
   <!-- ================================================================== -->
   <!-- Perform audit activities for the release                           -->
   <!-- ================================================================== -->
-  <target name="releaseaudit" depends="package" description="Release Audit activities">
-    <fail unless="rat.present" message="Failed to load class [${rat.reporting.classname}]. Download the latest rat jar from [http://code.google.com/p/arat] and copy it to [${lib.dir}]. Typically the file name will be of format rat-x.y.z.jar"/>
+  <target name="releaseaudit" depends="package,ivy-retrieve-releaseaudit" description="Release Audit activities">
+    <fail unless="rat.present" message="Failed to load class [${rat.reporting.classname}]."/>
     <java classname="${rat.reporting.classname}" fork="true">
-      <classpath refid="classpath"/>
+      <classpath refid="releaseaudit-classpath"/>
       <arg value="${build.dir}/${final.name}"/>
     </java>
   </target>
@@ -1186,6 +1222,7 @@
         <env key="HADOOP_HOME" value="${basedir}"/>
         <env key="HADOOP_CONF_DIR" value="${libhdfs.test.conf.dir}"/>
         <env key="HADOOP_LOG_DIR" value="${libhdfs.test.dir}/logs"/>
+        <env key="LIB_DIR" value="${common.ivy.lib.dir}"/>
 		<arg value="test"/>
     </exec>
   </target>
@@ -1473,4 +1510,204 @@
     </copy>
   </target>
 
+  <target name="ivy-init-dirs">
+    <mkdir dir="${build.ivy.dir}" />
+    <mkdir dir="${build.ivy.lib.dir}" />
+    <mkdir dir="${build.ivy.report.dir}" />
+    <mkdir dir="${build.ivy.maven.dir}" />
+  </target>
+
+  <target name="ivy-probe-antlib" >
+    <condition property="ivy.found">
+      <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
+    </condition>
+  </target>
+
+  <target name="ivy-download" description="To download ivy" unless="offline">
+    <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
+  </target>
+
+  <!--
+  To avoid Ivy leaking things across big projects, always load Ivy in the same classloader.
+  Also note how we skip loading Ivy if it is already there, just to make sure all is well.
+  -->
+  <target name="ivy-init-antlib" depends="ivy-download,ivy-init-dirs,ivy-probe-antlib" unless="ivy.found">
+    <typedef uri="antlib:org.apache.ivy.ant" onerror="fail"
+      loaderRef="ivyLoader">
+      <classpath>
+        <pathelement location="${ivy.jar}"/>
+      </classpath>
+    </typedef>
+    <fail >
+      <condition >
+        <not>
+          <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
+        </not>
+      </condition>
+      You need Apache Ivy 2.0 or later from http://ant.apache.org/
+      It could not be loaded from ${ivy_repo_url}
+    </fail>
+  </target>
+
+
+  <target name="ivy-init" depends="ivy-init-antlib" >
+
+    <!--Configure Ivy by reading in the settings file
+        If anyone has already read in a settings file into this settings ID, it gets priority
+    -->
+    <ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override='false'/>
+  </target>
+
+  <target name="ivy-resolve" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings"/>
+  </target>
+
+  <target name="ivy-resolve-javadoc" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="javadoc"/>
+  </target>
+
+  <target name="ivy-resolve-releaseaudit" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="releaseaudit"/>
+  </target>
+
+  <target name="ivy-resolve-test" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="test" />
+  </target>
+
+  <target name="ivy-resolve-common" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="common" />
+  </target>
+
+  <target name="ivy-resolve-jdiff" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="jdiff" />
+  </target>
+
+  <target name="ivy-resolve-checkstyle" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="checkstyle"/>
+  </target>
+
+  <target name="ivy-retrieve" depends="ivy-resolve"
+    description="Retrieve Ivy-managed artifacts">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
+  </target>
+
+  <target name="ivy-retrieve-checkstyle" depends="ivy-resolve-checkstyle"
+    description="Retrieve Ivy-managed artifacts for the checkstyle configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
+    <ivy:cachepath pathid="checkstyle-classpath" conf="checkstyle"/>
+  </target>
+
+  <target name="ivy-retrieve-jdiff" depends="ivy-resolve-jdiff"
+    description="Retrieve Ivy-managed artifacts for the javadoc configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
+    <ivy:cachepath pathid="jdiff-classpath" conf="jdiff"/>
+  </target>
+
+  <target name="ivy-retrieve-javadoc" depends="ivy-resolve-javadoc"
+    description="Retrieve Ivy-managed artifacts for the javadoc configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
+    <ivy:cachepath pathid="javadoc-classpath" conf="javadoc"/>
+  </target>
+
+  <target name="ivy-retrieve-test" depends="ivy-resolve-test"
+    description="Retrieve Ivy-managed artifacts for the test configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
+    <ivy:cachepath pathid="test.classpath" conf="test"/>
+  </target>
+
+  <target name="ivy-retrieve-common" depends="ivy-resolve-common"
+    description="Retrieve Ivy-managed artifacts for the compile configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
+    <ivy:cachepath pathid="ivy-common.classpath" conf="common"/>
+  </target>
+
+  <target name="ivy-retrieve-releaseaudit" depends="ivy-resolve-releaseaudit"
+    description="Retrieve Ivy-managed artifacts for the compile configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" />
+    <ivy:cachepath pathid="releaseaudit-classpath" conf="releaseaudit"/>
+    <available classname="${rat.reporting.classname}" 
+      classpathref="releaseaudit-classpath" property="rat.present" value="true"/>
+  </target>
+
+  <target name="ivy-report" depends="ivy-resolve-releaseaudit"
+    description="Generate">
+    <ivy:report todir="${build.ivy.report.dir}" settingsRef="${ant.project.name}.ivy.settings"/>
+    <echo>
+      Reports generated:${build.ivy.report.dir}
+    </echo>
+  </target>
+
+  <target name="assert-hadoop-jar-exists" depends="ivy-init">
+    <fail>
+      <condition >
+        <not>
+          <available file="${hadoop.jar}" />
+        </not>
+      </condition>
+      Not found: ${hadoop.jar}
+      Please run the target "jar" in the main build file
+    </fail>
+
+  </target>
+
+  <target name="ready-to-publish" depends="jar,assert-hadoop-jar-exists,ivy-resolve"/>
+
+  <target name="ivy-publish-local" depends="ready-to-publish,ivy-resolve">
+    <ivy:publish
+      settingsRef="${ant.project.name}.ivy.settings"
+      resolver="local"
+      pubrevision="${hadoop.version}"
+      overwrite="true"
+      artifactspattern="${build.dir}/${ivy.publish.pattern}" />
+  </target>
+
+
+  <!-- this is here for curiosity, to see how well the makepom task works
+  Answer: it depends whether you want transitive dependencies excluded or not
+  -->
+  <target name="makepom" depends="ivy-resolve">
+    <ivy:makepom settingsRef="${ant.project.name}.ivy.settings"
+      ivyfile="ivy.xml"
+      pomfile="${build.ivy.maven.dir}/generated.pom">
+      <ivy:mapping conf="default" scope="default"/>
+      <ivy:mapping conf="master" scope="master"/>
+      <ivy:mapping conf="runtime" scope="runtime"/>
+    </ivy:makepom>
+  </target>
+
+
+  <target name="copy-jar-to-maven" depends="ready-to-publish">
+    <copy file="${hadoop.jar}"
+      tofile="${build.ivy.maven.jar}"/>
+    <checksum file="${build.ivy.maven.jar}" algorithm="md5"/>
+  </target>
+
+  <target name="copypom" depends="ivy-init-dirs">
+
+   <presetdef name="expandingcopy" >
+    <copy overwrite="true">
+      <filterchain>
+        <expandproperties/>
+      </filterchain>
+    </copy>
+   </presetdef>
+
+   <expandingcopy file="ivy/hadoop-core.pom"
+      tofile="${build.ivy.maven.pom}"/>
+   <checksum file="${build.ivy.maven.pom}" algorithm="md5"/>
+  </target>
+
+  <target name="maven-artifacts" depends="copy-jar-to-maven,copypom" />
+
+  <target name="published" depends="ivy-publish-local,maven-artifacts">
+
+  </target>
+
 </project>

Propchange: hadoop/core/trunk/ivy/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Dec 15 15:15:41 2008
@@ -0,0 +1 @@
+ivy*.jar

Added: hadoop/core/trunk/ivy.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/ivy.xml?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/ivy.xml (added)
+++ hadoop/core/trunk/ivy.xml Mon Dec 15 15:15:41 2008
@@ -0,0 +1,243 @@
+<?xml version="1.0" ?>
+<ivy-module version="1.0">
+  <info organisation="org.apache.hadoop" module="${ant.project.name}">
+    <license name="Apache 2.0"/>
+    <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
+    <description>
+        Hadoop Core
+    </description>
+  </info>
+  <configurations defaultconfmapping="default">
+    <!--these match the Maven configurations-->
+    <conf name="default" extends="master,runtime"/>
+    <conf name="master" description="contains the artifact but no dependencies"/>
+    <conf name="runtime" description="runtime but not the artifact"
+      extends="client,server,s3-server,kfs"/>
+
+    <conf name="mandatory" description="contains the critical  dependencies"
+      extends="commons-logging,log4j"/>
+
+    <!--
+    These public configurations contain the core dependencies for running hadoop client or server.
+    The server is effectively a superset of the client.
+    -->
+    <conf name="client" description="client-side dependencies"
+      extends="mandatory,httpclient"/>
+    <conf name="server" description="server-side dependencies"
+      extends="client"/>
+    <conf name="s3-client" description="dependencies for working with S3/EC2 infrastructure"
+      extends="client"/>
+    <conf name="s3-server" description="dependencies for running on S3/EC2 infrastructure"
+      extends="s3-client,server"/>
+    <conf name="kfs" description="dependencies for KFS file system support"/>
+    <conf name="ftp" description="dependencies for workign with FTP filesytems"
+              extends="mandatory"/>
+   <conf name="jetty" description="Jetty provides the in-VM HTTP daemon" extends="commons-logging"/>
+
+    <!--Private configurations. -->
+
+    <conf name="common" visibility="private" extends="runtime,mandatory,httpclient,ftp,jetty"
+		      description="common artifacts"/>
+    <conf name="javadoc" visibility="private" description="artiracts required while performing doc generation"
+      extends="common,mandatory,jetty,lucene"/>
+    <!--Testing pulls in everything-->
+    <conf name="test" extends="common,default,s3-server,kfs" visibility="private"
+      description="the classpath needed to run tests"/>
+    <conf name="releaseaudit" visibility="private"
+	description="Artifacts required for releaseaudit target"/>
+     
+    <conf name="commons-logging" visibility="private"/>
+    <conf name="httpclient" visibility="private" extends="commons-logging"/>
+    <conf name="log4j" visibility="private"/>
+    <conf name="lucene" visibility="private"/>
+    <conf name="jdiff" visibility="private" extends="log4j,s3-client,jetty,server"/>
+    <conf name="checkstyle" visibility="private"/>
+
+  </configurations>
+
+  <publications>
+    <!--get the artifact from our module name-->
+    <artifact conf="master"/>
+  </publications>
+  <dependencies>
+
+ <!--used client side-->
+<!--  <dependency org="commons-cli"
+    name="commons-cli"
+    rev="${commons-cli.version}"
+    conf="client->default"/> -->
+
+    <dependency org="checkstyle"
+      name="checkstyle"
+      rev="${checkstyle.version}"
+      conf="checkstyle->default"/>
+    <dependency org="jdiff"
+      name="jdiff"
+      rev="${jdiff.version}"
+      conf="jdiff->default"/>
+    <dependency org="xerces"
+      name="xerces"
+      rev="${xerces.version}"
+      conf="jdiff->default">
+    </dependency>
+
+    <dependency org="xmlenc"
+      name="xmlenc"
+      rev="${xmlenc.version}"
+      conf="server->default"/>
+
+    <!--Configuration: httpclient-->
+
+    <!--
+    commons-httpclient asks for too many files.
+    All it needs is commons-codec and commons-logging JARs
+    -->
+    <dependency org="commons-httpclient"
+      name="commons-httpclient"
+      rev="${commons-httpclient.version}"
+      conf="httpclient->master">
+    </dependency>
+
+    <dependency org="commons-codec"
+      name="commons-codec"
+      rev="${commons-codec.version}"
+      conf="httpclient->default"/>
+
+    <dependency org="commons-net"
+      name="commons-net"
+      rev="${commons-net.version}"
+      conf="ftp->default"/>
+
+    <!--Configuration: Jetty -->
+
+<!-- <dependency org="javax.servlet"
+      name="servlet-api"
+      rev="${servlet-api.version}"
+      conf="jetty->master"/>   -->
+    <dependency org="org.mortbay.jetty"
+      name="jetty"
+      rev="${jetty.version}"
+      conf="jetty->master"/>
+    <dependency org="org.mortbay.jetty"
+      name="jetty-util"
+      rev="${jetty-util.version}"
+      conf="jetty->master"/>
+
+    <dependency org="tomcat"
+      name="jasper-runtime"
+      rev="${jasper.version}"
+      conf="jetty->master"/>
+    <dependency org="tomcat"
+      name="jasper-compiler"
+      rev="${jasper.version}"
+      conf="jetty->master"/>
+<!-- this is resolved locally from the lib folder 
+   <dependency org="tomcat"
+      name="jsp-api"
+      rev="${jsp-api.version}"
+      conf="jetty->master"/> -->
+    <dependency org="commons-el"
+      name="commons-el"
+      rev="${commons-el.version}"
+      conf="jetty->master"/>
+
+
+    <!--Configuration: commons-logging -->
+
+    <!--it is essential that only the master JAR of commons logging
+    is pulled in, as its dependencies are usually a mess, including things
+    like out of date servlet APIs, bits of Avalon, etc.
+    -->
+    <dependency org="commons-logging"
+      name="commons-logging"
+      rev="${commons-logging.version}"
+      conf="commons-logging->master"/>
+
+
+    <!--Configuration: commons-logging -->
+
+    <!--log4J is not optional until commons-logging.properties is stripped out of the JAR -->
+    <dependency org="log4j"
+      name="log4j"
+      rev="${log4j.version}"
+      conf="log4j->master"/>
+
+    <!--Configuration: s3-client -->
+    <!--there are two jets3t projects in the repository; this one goes up to 0.6 and
+    is assumed to be the live one-->
+    <dependency org="net.java.dev.jets3t"
+      name="jets3t"
+      rev="${jets3t.version}"
+      conf="s3-client->master"/>
+    <dependency org="commons-net"
+      name="commons-net"
+      rev="${commons-net.version}"
+      conf="s3-client->master"/> 
+    <dependency org="org.mortbay.jetty"
+      name="servlet-api-2.5"
+      rev="${servlet-api-2.5.version}"
+      conf="s3-client->master"/>
+
+    <!--Configuration: kfs -->
+
+    <!-- This is not in the repository
+  <dependency org="org.kosmix"
+    name="kfs"
+    rev="${kfs.version}"
+    conf="kfs->default"/>-->
+
+    <!--Configuration: test -->
+
+    <!--artifacts needed for testing -->
+    <dependency org="junit"
+      name="junit"
+      rev="${junit.version}"
+      conf="common->default"/>
+    <dependency org="com.google.code.p.arat"
+      name="rat-lib"
+      rev="${rats-lib.version}"
+      conf="releaseaudit->default"/>
+    <dependency org="commons-lang"
+      name="commons-lang"
+      rev="${commons-lang.version}"
+      conf="releaseaudit->default"/>
+    <dependency org="commons-collections"
+      name="commons-collections"
+      rev="${commons-collections.version}"
+      conf="releaseaudit->default"/>
+<!--<dependency org="hsqldb"
+      name="hsqldb"
+      rev="${hsqldb.version}"
+      conf="common->default"/>
+    <dependency org="lucene"
+      name="lucene"
+      rev="${lucene.version}"
+      conf="javadoc->default"/> --> 
+    <dependency org="org.apache.lucene"
+      name="lucene-core"
+      rev="${lucene-core.version}"
+      conf="javadoc->default"/> 
+    <dependency org="commons-logging"
+      name="commons-logging-api"
+      rev="${commons-logging-api.version}"
+      conf="common->default"/>
+    <dependency org="org.slf4j"
+      name="slf4j-api"
+      rev="${slf4j-api.version}"
+      conf="common->master"/>
+    <dependency org="org.eclipse.jdt"
+      name="core"
+      rev="${core.version}"
+      conf="common->master"/>
+    <dependency org="oro"
+      name="oro"
+      rev="${oro.version}"
+      conf="common->default"/>
+    <dependency org="org.slf4j"
+      name="slf4j-log4j12"
+      rev="${slf4j-log4j12.version}"
+      conf="common->master">
+    </dependency>
+    </dependencies>
+  
+</ivy-module>

Added: hadoop/core/trunk/ivy/hadoop-core.pom
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/ivy/hadoop-core.pom?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/ivy/hadoop-core.pom (added)
+++ hadoop/core/trunk/ivy/hadoop-core.pom Mon Dec 15 15:15:41 2008
@@ -0,0 +1,242 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <!--
+   This POM is released under the Apache License, Version 2.0
+  -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.hadoop</groupId>
+  <artifactId>hadoop-core</artifactId>
+  <packaging>jar</packaging>
+  <version>${hadoop.version}</version>
+  <description>
+    Hadoop is the distributed computing framework of Apache; hadoop-core contains
+    the filesystem, job tracker and map/reduce modules
+  </description>
+  <licenses>
+    <license>
+      <name>Apache License, Version 2.0</name>
+      <url>http://apache.org/licenses/LICENSE-2.0</url>
+    </license>
+  </licenses>
+  <dependencies>
+
+
+    <!-- always include commons-logging and log4J -->
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>${commons-logging.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>avalon-framework</groupId>
+          <artifactId>avalon-framework</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>javax.servlet</groupId>
+          <artifactId>servlet-api</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>logkit</groupId>
+          <artifactId>logkit</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>log4j</groupId>
+          <artifactId>log4j</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>${log4j.version}</version>
+      <scope>optional</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>javax.mail</groupId>
+          <artifactId>mail</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>javax.jms</groupId>
+          <artifactId>jms</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.sun.jdmk</groupId>
+          <artifactId>jmxtools</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.sun.jmx</groupId>
+          <artifactId>jmxri</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <!--SLF4J is a JAR-based dependency; this POM binds it to log4J-->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j-api.version}</version>
+      <scope>optional</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <version>${slf4j-log4j12.version}</version>
+      <scope>optional</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>log4j</groupId>
+          <artifactId>log4j</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <!--Httpclient and its components are optional-->
+
+    <dependency>
+      <groupId>commons-httpclient</groupId>
+      <artifactId>commons-httpclient</artifactId>
+      <version>3.1</version>
+      <scope>optional</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <version>1.3</version>
+      <scope>optional</scope>
+    </dependency>
+
+    <!--CLI is needed to scan the command line, but only the 1.0 branch is released -->
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+      <version>2.0-20070823</version>
+      <scope>optional</scope>
+    </dependency>
+
+
+   <!-- this is used for the ftp:// filesystem-->
+    <dependency>
+      <groupId>commons-net</groupId>
+      <artifactId>commons-net</artifactId>
+      <version>1.4.1</version>
+      <scope>optional</scope>
+    </dependency>
+
+    <!-- Jetty is used to serve up the application. It is marked as optional because
+    clients do not need it. All server-side deployments will need
+     all of these files.-->
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>${servlet-api.version}</version>
+      <scope>optional</scope>
+    </dependency>
+    <dependency>
+      <groupId>jetty</groupId>
+      <artifactId>org.mortbay.jetty</artifactId>
+      <version>${jetty.version}</version>
+      <scope>optional</scope>
+    </dependency>
+
+
+    <!--JSP support -->
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1</artifactId>
+      <version>${jetty.version}</version>
+      <scope>optional</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1</artifactId>
+      <version>${jetty.version}</version>
+      <scope>optional</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-el</groupId>
+      <artifactId>commons-el</artifactId>
+      <version>${commons-el.version}</version>
+      <scope>optional</scope>
+    </dependency>
+
+
+    <!--JSPC assistance-->
+
+    <dependency>
+      <groupId>org.eclipse.jdt</groupId>
+      <artifactId>core</artifactId>
+      <version>${core.version}</version>
+      <scope>optional</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ant</groupId>
+      <artifactId>ant</artifactId>
+      <version>${apacheant.version}</version>
+      <scope>optional</scope>
+    </dependency>
+
+    <!-- JetS3t is a client library for S3.
+    -It is only needed if you want to work with S3 filesystems
+    -It pulls in commons-logging 1.1.1 and does not exclude all the cruft that comes with it.
+    By excluding it we stay in control of versions and dependencies
+    -->
+
+    <dependency>
+      <groupId>net.java.dev.jets3t</groupId>
+      <artifactId>jets3t</artifactId>
+      <version>${jets3t.version}</version>
+      <scope>optional</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <!--Kosmos filesystem
+    http://kosmosfs.sourceforge.net/
+    This is not in the central repository
+    -->
+    <!--
+        <dependency>
+          <groupId>org.kosmix</groupId>
+          <artifactId>kfs</artifactId>
+          <version>0.1</version>
+          <scope>optional</scope>
+        </dependency>
+    -->
+
+    <!--
+     http://xmlenc.sourceforge.net/
+     "The xmlenc library is a fast stream-based XML output library for Java."
+    -->
+    <dependency>
+      <groupId>xmlenc</groupId>
+      <artifactId>xmlenc</artifactId>
+      <version>0.52</version>
+      <scope>optional</scope>
+    </dependency>
+  </dependencies>
+</project>

Added: hadoop/core/trunk/ivy/ivysettings.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/ivy/ivysettings.xml?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/ivy/ivysettings.xml (added)
+++ hadoop/core/trunk/ivy/ivysettings.xml Mon Dec 15 15:15:41 2008
@@ -0,0 +1,63 @@
+<ivysettings>
+  <!--
+  see http://www.jayasoft.org/ivy/doc/configuration
+  -->
+  <!-- you can override this property to use mirrors
+          http://repo1.maven.org/maven2/
+          http://mirrors.dotsrc.org/maven2
+          http://ftp.ggi-project.org/pub/packages/maven2
+          http://mirrors.sunsite.dk/maven2
+          http://public.planetmirror.com/pub/maven2
+          http://ibiblio.lsu.edu/main/pub/packages/maven2
+          http://www.ibiblio.net/pub/packages/maven2
+  -->
+  <property name="repo.maven.org"
+    value="http://repo1.maven.org/maven2/"
+    override="false"/>
+  <property name="snapshot.apache.org"
+    value="http://people.apache.org/repo/m2-snapshot-repository/"
+    override="false"/>
+  <property name="maven2.pattern"
+    value="[organisation]/[module]/[revision]/[module]-[revision]"/>
+  <property name="maven2.pattern.ext"
+    value="${maven2.pattern}.[ext]"/>
+  <!-- pull in the local repository -->
+  <include url="${ivy.default.conf.dir}/ivyconf-local.xml"/>
+  <settings defaultResolver="default"/>
+  <resolvers>
+    <ibiblio name="maven2"
+      root="${repo.maven.org}"
+      pattern="${maven2.pattern.ext}"
+      m2compatible="true"
+      />
+    <ibiblio name="apache-snapshot"
+      root="${snapshot.apache.org}"
+      pattern="${maven2.pattern.ext}"
+      m2compatible="true"
+      />
+    <chain name="default" dual="true">
+      <resolver ref="local"/>
+      <resolver ref="maven2"/>
+    </chain>
+    <chain name="internal">
+      <resolver ref="local"/>
+    </chain>
+    <chain name="external">
+      <resolver ref="maven2"/>
+    </chain>
+    <chain name="external-and-snapshots">
+      <resolver ref="maven2"/>
+      <resolver ref="apache-snapshot"/>
+    </chain>
+  </resolvers>
+  <modules>
+    <!--
+    This forces a requirement for other hadoop-artifacts to be built locally
+    rather than look for them online.
+
+    -->
+    <module organisation="org.apache.hadoop" name=".*" resolver="internal"/>
+    <!--until commons cli is external, we need to pull it in from the snapshot repository -if present -->
+    <module organisation="org.apache.commons" name=".*" resolver="external-and-snapshots"/>
+  </modules>
+</ivysettings>
\ No newline at end of file

Added: hadoop/core/trunk/ivy/libraries.properties
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/ivy/libraries.properties?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/ivy/libraries.properties (added)
+++ hadoop/core/trunk/ivy/libraries.properties Mon Dec 15 15:15:41 2008
@@ -0,0 +1,59 @@
+#This properties file lists the versions of the various artifacts used by hadoop and components.
+#It drives ivy and the generation of a maven POM
+
+# This is the version of hadoop we are generating
+hadoop.version=0.20.0
+
+#These are the versions of our dependencies (in alphabetical order)
+apacheant.version=1.7.0
+
+checkstyle.version=4.2
+
+commons-cli.version=2.0-SNAPSHOT
+commons-codec.version=1.3
+commons-collections.version=3.1
+commons-httpclient.version=3.0.1
+commons-lang.version=2.4
+commons-logging.version=1.0.4
+commons-logging-api.version=1.0.4
+commons-el.version=1.0
+commons-fileupload.version=1.2
+commons-io.version=1.4
+commons-net.version=1.4.1
+core.version=3.1.1
+coreplugin.version=1.3.2
+
+hsqldb.version=1.8.0.10
+
+#ivy.version=2.0.0-beta2
+ivy.version=2.0.0-rc2
+
+jasper.version=5.5.12
+#not able to figureout the version of jsp & jsp-api version to get it resolved throught ivy
+# but still declared here as we are going to have a local copy from the lib folder
+jsp.version=2.1
+jsp-api.version=5.5.12
+jets3t.version=0.6.1
+jetty.version=6.1.14
+jetty-util.version=6.1.14
+junit.version=3.8.1
+jdiff.version=1.0.9
+json.version=1.0
+
+kfs.version=0.1
+
+log4j.version=1.2.15
+lucene-core.version=2.3.1
+
+oro.version=2.0.8
+
+rats-lib.version=0.5.1
+
+servlet.version=4.0.6
+servlet-api-2.5.version=6.1.14
+servlet-api.version=2.5
+slf4j-api.version=1.4.3
+slf4j-log4j12.version=1.4.3
+
+xmlenc.version=0.52
+xerces.version=1.4.4

Modified: hadoop/core/trunk/src/c++/libhdfs/tests/test-libhdfs.sh
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/c%2B%2B/libhdfs/tests/test-libhdfs.sh?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/src/c++/libhdfs/tests/test-libhdfs.sh (original)
+++ hadoop/core/trunk/src/c++/libhdfs/tests/test-libhdfs.sh Mon Dec 15 15:15:41 2008
@@ -63,6 +63,12 @@
   CLASSPATH=${CLASSPATH}:$f;
 done
 
+if [ -d "$HADOOP_HOME/build/ivy/lib/Hadoop/common" ]; then
+for f in $HADOOP_HOME/build/ivy/lib/Hadoop/common/*.jar; do
+  CLASSPATH=${CLASSPATH}:$f;
+done
+fi
+
 # restore ordinary behaviour
 unset IFS
 

Modified: hadoop/core/trunk/src/contrib/build-contrib.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/build-contrib.xml?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/src/contrib/build-contrib.xml (original)
+++ hadoop/core/trunk/src/contrib/build-contrib.xml Mon Dec 15 15:15:41 2008
@@ -19,7 +19,7 @@
 
 <!-- Imported by contrib/*/build.xml files to share generic targets. -->
 
-<project name="hadoopbuildcontrib">
+<project name="hadoopbuildcontrib" xmlns:ivy="antlib:org.apache.ivy.ant">
 
   <property name="name" value="${ant.project.name}"/>
   <property name="root" value="${basedir}"/>
@@ -30,7 +30,6 @@
   <property file="${root}/build.properties" />
 
   <property name="hadoop.root" location="${root}/../../../"/>
-
   <property name="src.dir"  location="${root}/src/java"/>
   <property name="src.test" location="${root}/src/test"/>
   <property name="src.examples" location="${root}/src/examples"/>
@@ -50,6 +49,7 @@
   <!-- all jars together -->
   <property name="javac.deprecation" value="off"/>
   <property name="javac.debug" value="on"/>
+  <property name="build.ivy.lib.dir" value="${hadoop.root}/build/ivy/lib"/> 
 
   <property name="javadoc.link"
             value="http://java.sun.com/j2se/1.4/docs/api/"/>
@@ -58,14 +58,34 @@
 
   <fileset id="lib.jars" dir="${root}" includes="lib/*.jar"/>
 
+
+   <!-- IVY properties set here -->
+  <property name="ivy.dir" location="ivy" />
+  <property name="ivysettings.xml" location="${hadoop.root}/ivy/ivysettings.xml"/>
+  <loadproperties srcfile="${ivy.dir}/libraries.properties"/>
+  <loadproperties srcfile="${hadoop.root}/ivy/libraries.properties"/>
+  <property name="ivy.jar" location="${hadoop.root}/ivy/ivy-${ivy.version}.jar"/>
+  <property name="ivy_repo_url" 
+	value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar" />
+  <property name="build.dir" location="build" />
+  <property name="build.ivy.dir" location="${build.dir}/ivy" />
+  <property name="build.ivy.lib.dir" location="${build.ivy.dir}/lib" />
+  <property name="build.ivy.report.dir" location="${build.ivy.dir}/report" />
+  <property name="common.ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}/common"/> 
+
+  <!--this is the naming policy for artifacts we want pulled down-->
+  <property name="ivy.artifact.retrieve.pattern"
+    			value="${ant.project.name}/[conf]/[artifact]-[revision].[ext]"/>
+
   <!-- the normal classpath -->
-  <path id="classpath">
+  <path id="contrib-classpath">
     <pathelement location="${build.classes}"/>
     <fileset refid="lib.jars"/>
     <pathelement location="${hadoop.root}/build/classes"/>
     <fileset dir="${hadoop.root}/lib">
       <include name="**/*.jar" />
     </fileset>
+    <path refid="${ant.project.name}.common-classpath"/>
   </path>
 
   <!-- the unit test classpath -->
@@ -76,7 +96,7 @@
     <pathelement location="${conf.dir}"/>
     <pathelement location="${hadoop.root}/build"/>
     <pathelement location="${build.examples}"/>
-    <path refid="classpath"/>
+    <path refid="contrib-classpath"/>
   </path>
 
 
@@ -101,7 +121,7 @@
   <!-- ====================================================== -->
   <!-- Compile a Hadoop contrib's files                       -->
   <!-- ====================================================== -->
-  <target name="compile" depends="init" unless="skip.contrib">
+  <target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
     <echo message="contrib: ${name}"/>
     <javac
      encoding="${build.encoding}"
@@ -110,7 +130,7 @@
      destdir="${build.classes}"
      debug="${javac.debug}"
      deprecation="${javac.deprecation}">
-      <classpath refid="classpath"/>
+     <classpath refid="contrib-classpath"/>
     </javac>
   </target>
 
@@ -126,7 +146,7 @@
      includes="**/*.java"
      destdir="${build.examples}"
      debug="${javac.debug}">
-      <classpath refid="classpath"/>
+     <classpath refid="contrib-classpath"/>
     </javac>
   </target>
 
@@ -142,7 +162,7 @@
      includes="**/*.java"
      destdir="${build.test}"
      debug="${javac.debug}">
-      <classpath refid="test.classpath"/>
+    <classpath refid="test.classpath"/>
     </javac>
   </target>
   
@@ -222,10 +242,8 @@
       </batchtest>
     </junit>
     <fail if="tests.failed">Tests failed!</fail>
-
   </target>
 
-
   <!-- ================================================================== -->
   <!-- Clean.  Delete the build files, and their directories              -->
   <!-- ================================================================== -->
@@ -234,4 +252,47 @@
     <delete dir="${build.dir}"/>
   </target>
 
+  <target name="ivy-probe-antlib" >
+    <condition property="ivy.found">
+      <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
+    </condition>
+  </target>
+
+
+  <target name="ivy-download" description="To download ivy " unless="offline">
+    <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
+  </target>
+
+  <target name="ivy-init-antlib" depends="ivy-download,ivy-probe-antlib" unless="ivy.found">
+    <typedef uri="antlib:org.apache.ivy.ant" onerror="fail"
+      loaderRef="ivyLoader">
+      <classpath>
+        <pathelement location="${ivy.jar}"/>
+      </classpath>
+    </typedef>
+    <fail >
+      <condition >
+        <not>
+          <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
+        </not>
+      </condition>
+      You need Apache Ivy 2.0 or later from http://ant.apache.org/
+      It could not be loaded from ${ivy_repo_url}
+    </fail>
+  </target>
+
+  <target name="ivy-init" depends="ivy-init-antlib">
+    <ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}"/>
+  </target>
+
+  <target name="ivy-resolve-common" depends="ivy-init">
+    <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="common" />
+  </target>
+
+  <target name="ivy-retrieve-common" depends="ivy-resolve-common"
+    description="Retrieve Ivy-managed artifacts for the compile/test configurations">
+    <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings" 
+      pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" sync="true" />
+    <ivy:cachepath pathid="${ant.project.name}.common-classpath" conf="common" />
+  </target>
 </project>

Added: hadoop/core/trunk/src/contrib/capacity-scheduler/ivy.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/capacity-scheduler/ivy.xml?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/src/contrib/capacity-scheduler/ivy.xml (added)
+++ hadoop/core/trunk/src/contrib/capacity-scheduler/ivy.xml Mon Dec 15 15:15:41 2008
@@ -0,0 +1,40 @@
+<?xml version="1.0" ?>
+<ivy-module version="1.0">
+  <info organisation="org.apache.hadoop" module="${ant.project.name}">
+    <license name="Apache 2.0"/>
+    <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
+    <description>
+        Apache Hadoop
+    </description>
+  </info>
+  <configurations defaultconfmapping="default">
+    <!--these match the Maven configurations-->
+    <conf name="default" extends="master,runtime"/>
+    <conf name="master" description="contains the artifact but no dependencies"/>
+    <conf name="runtime" description="runtime but not the artifact" />
+
+    <conf name="common" visibility="private" 
+      extends="runtime"
+      description="artifacts needed to compile/test the application"/>
+    <conf name="test" visibility="private" extends="runtime"/>
+  </configurations>
+
+  <publications>
+    <!--get the artifact from our module name-->
+    <artifact conf="master"/>
+  </publications>
+  <dependencies>
+    <dependency org="commons-logging"
+      name="commons-logging"
+      rev="${commons-logging.version}"
+      conf="common->default"/>
+   <dependency org="junit"
+      name="junit"
+      rev="${junit.version}"
+      conf="common->default"/>
+    <dependency org="log4j"
+      name="log4j"
+      rev="${log4j.version}"
+      conf="common->master"/>
+    </dependencies>
+</ivy-module>

Added: hadoop/core/trunk/src/contrib/capacity-scheduler/ivy/libraries.properties
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/capacity-scheduler/ivy/libraries.properties?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/src/contrib/capacity-scheduler/ivy/libraries.properties (added)
+++ hadoop/core/trunk/src/contrib/capacity-scheduler/ivy/libraries.properties Mon Dec 15 15:15:41 2008
@@ -0,0 +1,5 @@
+#This properties file lists the versions of the various artifacts used by streaming.
+#It drives ivy and the generation of a maven POM
+
+#Please list the dependencies name with version if they are different from the ones 
+#listed in the global libraries.properties file (in alphabetical order)

Modified: hadoop/core/trunk/src/contrib/chukwa/build.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/build.xml?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/src/contrib/chukwa/build.xml (original)
+++ hadoop/core/trunk/src/contrib/chukwa/build.xml Mon Dec 15 15:15:41 2008
@@ -17,7 +17,8 @@
    limitations under the License.
 -->
 
-<project name="chukwa" default="main">
+<project name="chukwa" default="main" 
+	xmlns:ivy="antlib:org.apache.ivy.ant">
 
 	<property name="name" value="chukwa"/>
         <property name="chukwaVersion" value="0.1.1"/>
@@ -36,7 +37,7 @@
                 <and><available file="../build-contrib.xml" property="present"/></and>
         </condition>
 
-        <target name="init-standalone" if="standaloneMode">
+        <target name="init-standalone" depends="ivy-retrieve" if="standaloneMode">
           <echo>Standalone Mode</echo>
           <property environment="env"/>
 	  <property name="basedir" value="."/>
@@ -67,6 +68,7 @@
                   <fileset dir="${hadoop.home.jars.dir}">   <!-- ASR -->
                           <include name="**/*core*.jar" />
                   </fileset>
+                  <path refid="contrib-classpath"/>
           </path>
           <path id="testClasspath">
                   <pathelement location="${build.classes}"/>
@@ -82,6 +84,7 @@
                   <fileset dir="${hadoop.home.jars.dir}">   <!-- ASR -->
                           <include name="**/*core*.jar" />
                   </fileset>
+                  <path refid="contrib-classpath"/>
           </path>
           <path id="testDemuxClasspath">
                   <pathelement location="${build.classes}"/>
@@ -94,11 +97,80 @@
                           <include name="**/*.jar" />
                           <exclude name="**/excluded/" />
                   </fileset>
-
+                  <path refid="contrib-classpath"/>
           </path>
         </target>
+
+	<target name="ivy-init-properties-local" description="to initiate ivy properties">
+		<property name="ivy.dir" location="ivy" />
+	  	<property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml"/>
+	  	<loadproperties srcfile="${ivy.dir}/libraries.properties"/>
+	  	<loadproperties srcfile="${ivy.dir}/libraries.properties"/>
+	  	<property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/>
+                <property name="ivy_repo_url" 
+			  value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar" />
+	  	<property name="build.dir" location="build" />
+	  	<property name="build.ivy.dir" location="${build.dir}/ivy" />
+	  	<property name="build.ivy.lib.dir" location="${build.ivy.dir}/lib" />
+		<property name="build.ivy.report.dir" location="${build.ivy.dir}/report" />
+	  	<property name="common.ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}/common"/> 
+
+	  	<!--this is the naming policy for artifacts we want pulled down-->
+	  	<property name="ivy.artifact.retrieve.pattern"
+    			value="${ant.project.name}/[conf]/[artifact]-[revision].[ext]"/>
+	</target>  
+
+        <target name="ivy-download-local" description="To download ivy"
+		unless="offline">
+    		<get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
+	</target>
+
+	<target name="ivy-init-dirs-local" depends="ivy-init-properties-local">
+    		<mkdir dir="${build.ivy.dir}" />
+    		<mkdir dir="${build.ivy.lib.dir}" />
+    		<mkdir dir="${build.ivy.report.dir}" />
+	</target>
+
+  	<target name="ivy-probe-antlib-local" >
+    		<condition property="ivy.found.local">
+      			<typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
+    		</condition>
+	</target>
+
+	<target name="ivy-init-antlib-local" depends="ivy-init-dirs-local,ivy-download-local,ivy-probe-antlib-local" unless="ivy.found.local">
+    		<typedef uri="antlib:org.apache.ivy.ant" onerror="fail" loaderRef="ivyLoader">
+			<classpath>
+        			<pathelement location="${ivy.jar}"/>
+		      	</classpath>
+    		</typedef>
+    		<fail>
+      		<condition>
+		        <not>
+          			<typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
+		        </not>
+		</condition>
+			      You need Apache Ivy 2.0 or later from http://ant.apache.org/
+			      It could not be loaded from ${ivy_repo_url}
+		 </fail>
+	</target>
+
+  	<target name="ivy-init-local" depends="ivy-init-antlib-local">
+    		<ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override="true"/>
+	</target>
+
+	<target name="ivy-resolve" depends="ivy-init-local">
+    		<ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="common"/>
+  	</target>
+
+	<target name="ivy-retrieve" depends="ivy-resolve"
+		    description="Retrieve Ivy-managed artifacts for the compile/test configurations">
+		<ivy:retrieve settingsRef="${ant.project.name}.ivy.settings" 
+		 pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" sync="true" />
+		<ivy:cachepath pathid="contrib-classpath" conf="common" />
+	</target>
         
         <target name="init-hadoop" if="hadoopMode">
+		<antcall target="ivy-retrieve-common"/>
                 <echo>Hadoop Mode</echo>
 	        <property name="build.dir" value="${basedir}/build"/>
 	        <property name="build.classes" value="${basedir}/build/classes"/>
@@ -116,10 +188,12 @@
 			        <exclude name="**/excluded/" />
 		        </fileset>
                         <pathelement location="${hadoop.root}/build/classes"/>
+ 			<path refid="contrib-classpath"/>
 	        </path>
                 <path id="testClasspath">
                         <pathelement location="${build.classes}"/>
                         <pathelement location="${test.build.classes}"/>
+ 			<path refid="contrib-classpath"/>
                         <fileset dir="${lib.dir}">
                                 <include name="**/*.jar" />
                                 <exclude name="**/excluded/" />
@@ -135,6 +209,7 @@
                 <path id="testDemuxClasspath">
                         <pathelement location="${build.classes}"/>
                         <pathelement location="${test.build.classes}"/>
+ 			<path refid="contrib-classpath"/>
                         <fileset dir="${hadoop.root}/lib">
                                 <include name="**/*.jar" />
                                 <exclude name="**/excluded/" />
@@ -146,7 +221,6 @@
                         <pathelement location="${hadoop.root}/build/classes"/>
                         <pathelement location="${hadoop.root}/build/test/classes"/>
                 </path>
-       
 
         </target>
 
@@ -173,7 +247,8 @@
                 <property name="test.include" value="Test*"/>
                 <property name="test.classpath.id" value="test.classpath"/>
                 <property name="test.output" value="yes"/>
-                <property name="test.timeout" value="900000"/>
+                <!--<property name="test.timeout" value="900000"/> -->
+                <property name="test.timeout" value="5000"/>
                 <property name="test.junit.output.format" value="plain"/>
                 <property name="test.junit.fork.mode" value="perTest" />
                 <property name="test.junit.printsummary" value="yes" />
@@ -220,13 +295,13 @@
             </javac>
         </target>
 
-
+            <!--printsummary="${test.junit.printsummary}" -->
 
 	<target name="test-chukwa" depends="compile,compile-test" description="Run Chukwa unit tests">
           <mkdir dir="${basedir}/var"/>
           <junit showoutput="yes"
             fork="yes"
-            printsummary="${test.junit.printsummary}"
+            printsummary="withOutAndErr"
             forkmode="${test.junit.fork.mode}"
             maxmemory="${test.junit.maxmemory}"
             dir="${test.build.dir}/classes/" timeout="${test.timeout}"
@@ -291,7 +366,7 @@
 
 		<copy todir="${build.dir}/collector/WEB-INF/lib">
 			<fileset dir="${basedir}/lib">
-				<include name="log4j-1.2.13.jar" />
+				<include name="log4j-${log4j.version}.jar" />
 				<include name="${build.dir}/${final.name}-core.jar" />
 			</fileset>
 		</copy>
@@ -485,6 +560,8 @@
         <!-- ================================================================== -->
         <target name="clean" depends="init" description="Clean.  Delete the build files, and their directories">
             <delete dir="${build.dir}"/>
+            <delete dir="${build.ivy.lib.dir}/${ant.project.home}"/>
+            <delete dir="build"/>
             <delete dir="${docs.src}/build"/>
         </target>
 	<!-- ====================================================== -->
@@ -513,16 +590,21 @@
                         <fileset dir="${hadoop.root}/build">
                                 <include name="hadoop-*-core.jar" />
                         </fileset>
-                        <fileset dir="${hadoop.root}/lib">
-                                <include name="commons-cli-*.jar" />
-                                <include name="commons-codec-*.jar" />
-                                <include name="commons-el.jar" />
+			<fileset dir="${build.ivy.lib.dir}\Hadoop\common">
+				
+                                <include name="jetty-*.jar" />
                                 <include name="commons-httpclient-*.jar" />
                                 <include name="commons-logging-*.jar" />
                                 <include name="commons-net-*.jar" />
                                 <include name="jasper-*.jar" />
-                                <include name="jetty-*.jar" />
-                                <include name="jsp-api.jar" />
+                                <include name="commons-el.jar" />
+                                <include name="commons-codec-*.jar" />
+			</fileset>
+			<fileset dir="lib">
+                                <include name="jsp-api.jar"/>
+			</fileset>
+                        <fileset dir="${hadoop.root}/lib">
+                                <include name="commons-cli-*.jar"/>
                         </fileset>
                 </copy>
         </target>
@@ -556,6 +638,9 @@
 			<fileset dir="lib">
 				<exclude name="**/native/**"/>
 			</fileset>
+			<fileset dir="${common.ivy.lib.dir}">
+				<include name="*.jar"/>
+			</fileset>
 		</copy>
 
 		<exec dir="${dist.dir}" executable="sh" failonerror="true">

Added: hadoop/core/trunk/src/contrib/chukwa/ivy.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/ivy.xml?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/src/contrib/chukwa/ivy.xml (added)
+++ hadoop/core/trunk/src/contrib/chukwa/ivy.xml Mon Dec 15 15:15:41 2008
@@ -0,0 +1,97 @@
+<?xml version="1.0" ?>
+<ivy-module version="1.0">
+  <info organisation="org.apache.hadoop" module="${ant.project.name}">
+    <license name="Apache 2.0"/>
+    <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
+    <description>
+        Apache Hadoop Chukwa
+    </description>
+  </info>
+  <configurations defaultconfmapping="default">
+    <!--these match the Maven configurations-->
+    <conf name="default" extends="master,runtime"/>
+    <conf name="master" description="contains the artifact but no dependencies"/>
+    <conf name="runtime" description="runtime but not the artifact" />
+    <!--Private configurations. -->
+
+    <conf name="common" visibility="private" 
+      extends="jetty"
+      description="artifacts needed to compile/test the application"/>
+    <conf name="jetty" visibility="private" />
+    
+  </configurations>
+
+  <publications>
+    <!--get the artifact from our module name-->
+    <artifact conf="master"/>
+  </publications>
+  <dependencies>
+   <dependency org="commons-fileupload"
+      name="commons-fileupload"
+      rev="${commons-fileupload.version}"
+      conf="common->default"/>
+   <dependency org="commons-httpclient"
+      name="commons-httpclient"
+      rev="${commons-httpclient.version}"
+      conf="common->master"/>  
+    <dependency org="commons-io"
+      name="commons-io"
+      rev="${commons-io.version}"
+      conf="common->default"/>  
+    <dependency org="commons-logging"
+      name="commons-logging"
+      rev="${commons-logging.version}"
+      conf="common->default"/>
+    <dependency org="commons-codec"
+      name="commons-codec"
+      rev="${commons-codec.version}"
+      conf="common->master"/>   
+  <dependency org="commons-logging"
+      name="commons-logging-api"
+      rev="${commons-logging-api.version}"
+      conf="common->master"/>   
+   <dependency org="commons-net"
+      name="commons-net"
+      rev="${commons-net.version}"
+      conf="common->master"/> 
+    <dependency org="tomcat"
+      name="servlet-api"
+      rev="${servlet-api.version}"
+      conf="common->default"/>   
+    <dependency org="org.mortbay.jetty"
+      name="jetty"
+      rev="${jetty.version}"
+      conf="common->default"/>   
+<!-- Not able to figureout the version - resolving loaclly  -->
+<!--
+    <dependency org="org.json"
+      name="json"
+      rev="${json.version}"
+      conf="common->default"/>  
+    <dependency org="org.apache.tomcat"
+      name="jsp-api"
+      rev="${jsp-api.version}"
+      conf="common->default"/>
+    <dependency org="taglibs"
+      name="application"
+      rev="${taglibs.version}"
+      conf="common->default"/> -->
+    <dependency org="org.mortbay.jetty"
+      name="jetty-util"
+      rev="${jetty-util.version}"
+      conf="common->default"/>
+    <dependency org="junit"
+      name="junit"
+      rev="${junit.version}"
+      conf="common->default"/> 
+    <dependency org="tomcat"
+      name="servlet"
+      rev="${servlet.version}"
+      conf="common->default"/>   
+    <dependency org="log4j"
+      name="log4j"
+      rev="${log4j.version}"
+      conf="common->master"/>
+    </dependencies>
+  
+</ivy-module>

Added: hadoop/core/trunk/src/contrib/chukwa/ivy/ivysettings.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/ivy/ivysettings.xml?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/src/contrib/chukwa/ivy/ivysettings.xml (added)
+++ hadoop/core/trunk/src/contrib/chukwa/ivy/ivysettings.xml Mon Dec 15 15:15:41 2008
@@ -0,0 +1,63 @@
+<ivysettings>
+  <!--
+  see http://www.jayasoft.org/ivy/doc/configuration
+  -->
+  <!-- you can override this property to use mirrors
+          http://repo1.maven.org/maven2/
+          http://mirrors.dotsrc.org/maven2
+          http://ftp.ggi-project.org/pub/packages/maven2
+          http://mirrors.sunsite.dk/maven2
+          http://public.planetmirror.com/pub/maven2
+          http://ibiblio.lsu.edu/main/pub/packages/maven2
+          http://www.ibiblio.net/pub/packages/maven2
+  -->
+  <property name="repo.maven.org"
+    value="http://repo1.maven.org/maven2/"
+    override="false"/>
+  <property name="snapshot.apache.org"
+    value="http://people.apache.org/repo/m2-snapshot-repository/"
+    override="false"/>
+  <property name="maven2.pattern"
+    value="[organisation]/[module]/[revision]/[module]-[revision]"/>
+  <property name="maven2.pattern.ext"
+    value="${maven2.pattern}.[ext]"/>
+  <!-- pull in the local repository -->
+  <include url="${ivy.default.conf.dir}/ivyconf-local.xml"/>
+  <settings defaultResolver="default"/>
+  <resolvers>
+    <ibiblio name="maven2"
+      root="${repo.maven.org}"
+      pattern="${maven2.pattern.ext}"
+      m2compatible="true"
+      />
+    <ibiblio name="apache-snapshot"
+      root="${snapshot.apache.org}"
+      pattern="${maven2.pattern.ext}"
+      m2compatible="true"
+      />
+    <chain name="default" dual="true">
+      <resolver ref="local"/>
+      <resolver ref="maven2"/>
+    </chain>
+    <chain name="internal">
+      <resolver ref="local"/>
+    </chain>
+    <chain name="external">
+      <resolver ref="maven2"/>
+    </chain>
+    <chain name="external-and-snapshots">
+      <resolver ref="maven2"/>
+      <resolver ref="apache-snapshot"/>
+    </chain>
+  </resolvers>
+  <modules>
+    <!--
+    This forces a requirement for other hadoop-artifacts to be built locally
+    rather than look for them online.
+
+    -->
+    <module organisation="org.apache.hadoop" name=".*" resolver="internal"/>
+    <!--until commons cli is external, we need to pull it in from the snapshot repository -if present -->
+    <module organisation="org.apache.commons" name=".*" resolver="external-and-snapshots"/>
+  </modules>
+</ivysettings>
\ No newline at end of file

Added: hadoop/core/trunk/src/contrib/chukwa/ivy/libraries.properties
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/ivy/libraries.properties?rev=726872&view=auto
==============================================================================
--- hadoop/core/trunk/src/contrib/chukwa/ivy/libraries.properties (added)
+++ hadoop/core/trunk/src/contrib/chukwa/ivy/libraries.properties Mon Dec 15 15:15:41 2008
@@ -0,0 +1,32 @@
+#This properties file lists the versions of the various artifacts used by chukwa.
+
+
+
+hadoop.version=0.20.0-dev
+
+
+#These are the versions of our dependencies (in alphabetical order)
+commons-fileupload.version=1.2
+commons-httpclient.version=3.0.1
+commons-logging.version=1.0.4
+commons-io.version=1.4
+commons-codec.version=1.3
+commons-net.version=1.4.1
+commons-logging-api.version=1.0.4
+
+#couldnt makeout the version of jsp-api
+#jsp-api.version=
+ivy.version=2.0.0-rc2
+# chukwa uses a diff. verion of jetty than the Hadoop
+jetty.version=6.1.11
+jetty-util.version=6.1.11
+
+junit.version=3.8.1
+
+log4j.version=1.2.13
+
+servlet.version=4.0.6
+servlet-api.version=5.5.12
+
+# Not able to figureout the taglibs version 
+#taglibs.version=

Modified: hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-LICENSE.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-LICENSE.txt?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-LICENSE.txt (original)
+++ hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-LICENSE.txt Mon Dec 15 15:15:41 2008
@@ -1,202 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
-

Modified: hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-README.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-README.txt?rev=726872&r1=726871&r2=726872&view=diff
==============================================================================
--- hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-README.txt (original)
+++ hadoop/core/trunk/src/contrib/chukwa/lib/commons-fileupload-1.2-README.txt Mon Dec 15 15:15:41 2008
@@ -1,5 +0,0 @@
-Apache Commons FileUpload
-Copyright 2002-2008 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).