Index: ivy.xml
===================================================================
--- ivy.xml	(revision 794614)
+++ ivy.xml	(working copy)
@@ -16,7 +16,7 @@
 -->
 
 <ivy-module version="1.0">
-  <info organisation="org.apache.hadoop" module="${ant.project.name}" revision="${version}">
+  <info organisation="org.apache.hadoop" module="hadoop-core" revision="${version}">
     <license name="Apache 2.0"/>
     <ivyauthor name="Apache Hadoop Team" url="http://hadoop.apache.org"/>
     <description>
@@ -28,7 +28,7 @@
     <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"/>
+      extends="client,server,s3-server,kfs,mandatory,jetty,ftp"/>
 
     <conf name="mandatory" description="contains the critical  dependencies"
       extends="commons-logging,log4j"/>
@@ -46,23 +46,20 @@
     <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"
+    <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"/>
 
+   <conf name="common" extends="runtime,mandatory,httpclient,ftp,jetty"
+		      description="common artifacts"/>
+    <!--Testing pulls in everything-->
+   <conf name="test" extends="master,common" description="the classpath needed to run tests"/>
+
     <!--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,s3-server,kfs" visibility="private"
-      description="the classpath needed to run tests"/>
 
-    <conf name="test-hdfswithmr" extends="test" visibility="private"
-      description="the classpath needed to run tests"/>
-
     <conf name="releaseaudit" visibility="private"
 	description="Artifacts required for releaseaudit target"/>
      
@@ -77,7 +74,8 @@
 
   <publications>
     <!--get the artifact from our module name-->
-    <artifact conf="master"/>
+    <artifact name="hadoop-core" type="jar" ext="jar" conf="common"/>
+    <artifact name="hadoop-core-test" type="jar" ext="jar" conf="master,common,test"/>
   </publications>
   <dependencies>
 
Index: ivy/ivysettings.xml
===================================================================
--- ivy/ivysettings.xml	(revision 794614)
+++ ivy/ivysettings.xml	(working copy)
@@ -29,53 +29,61 @@
           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"/>
+  <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="ivy.jar.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]"/>
+  <property name="ivy.xml.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact].xml"/>
+
+  <property name="maven.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"/>
+ <credentials host="host" realm="Sonatype Nexus Repository Manager" username="user" passwd="pass"/> 
   <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"
-      />
+    <!--ibiblio resolvers-->
+    <ibiblio name="maven2" root="${repo.maven.org}" pattern="${maven2.pattern.ext}" m2compatible="true"/>
+
+    <!--local filesytem resolver -->
+    <filesystem name="local"> 
+      <artifact pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]"/>
+      <ivy pattern="${ivy.repo.dir}/[organisation]/[module]/[revision]/[type]s/[artifact].xml"/> 
+    </filesystem>
+
+    <!--url resolver-->
+    <!--
+    <url name="hudson" m2compatible="false">
+     <ivy pattern="${repo_url}/${ivy.xml.pattern}"/>
+     <artifact pattern="${repo_url}/${ivy.jar.pattern}"/>
+    </url>
+    -->
+
+    <!-- ssh resolver -->
+    <ssh name="ssh-resolver" user="${username}" userPassword="${password}" host="people.apache.org">
+      <ivy pattern="/home/${username}/ivyrepo/${ivy.xml.pattern}"/>
+      <artifact pattern="/home/${username}/ivyrepo/${ivy.jar.pattern}"/>
+    </ssh>
+
     <chain name="default" dual="true">
-      <resolver ref="local"/>
+      <resolver ref="ssh-resolver"/>
       <resolver ref="maven2"/>
     </chain>
+
     <chain name="internal">
       <resolver ref="local"/>
+      <resolver ref="ssh-resolver"/>
+      <resolver ref="maven2"/>
     </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"/>
+    <module organisation="org.apache.hadoop" name=".*" resolver="${resolver}"/>
   </modules>
 </ivysettings>
Index: ivy/libraries.properties
===================================================================
--- ivy/libraries.properties	(revision 794614)
+++ ivy/libraries.properties	(working copy)
@@ -39,8 +39,7 @@
 
 hsqldb.version=1.8.0.10
 
-#ivy.version=2.0.0-beta2
-ivy.version=2.0.0-rc2
+ivy.version=2.1.0-rc1
 
 jasper.version=5.5.12
 jsp.version=2.1
@@ -51,6 +50,7 @@
 junit.version=4.5
 jdiff.version=1.0.9
 json.version=1.0
+jsch.version=0.1.38
 
 kfs.version=0.3
 
Index: build.xml
===================================================================
--- build.xml	(revision 794614)
+++ build.xml	(working copy)
@@ -123,9 +123,13 @@
 
 	
   <!-- IVY properteis set here -->
+  <property name="ivy.repo.dir" value="${user.home}/ivyrepo" />
+  <property name="resolver" value="ssh-resolver" />
   <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="jsch.jar" location="${ivy.dir}/jsch-${jsch.version}.jar"/>
+  <property name="jsch_repo_url" value="http://repo2.maven.org/maven2/com/jcraft/jsch/${jsch.version}/jsch-${jsch.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"/>
@@ -136,15 +140,18 @@
   <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-${version}.pom" />
-  <property name="build.ivy.maven.jar" location="${build.ivy.maven.dir}/hadoop-core-${version}.jar" />
+  <property name="pom.xml" location="${build.ivy.maven.dir}/pom.xml" />
+  <property name="build.ivy.maven.core.pom" location="${build.ivy.maven.dir}/hadoop-core-${version}.pom" />
+  <property name="build.ivy.maven.core.jar" location="${build.ivy.maven.dir}/hadoop-core-${version}.jar" />
+  <property name="build.ivy.maven.core-test.pom" location="${build.ivy.maven.dir}/hadoop-core-test-${version}.pom" />
+  <property name="build.ivy.maven.core-test.jar" location="${build.ivy.maven.dir}/hadoop-core-test-${version}.jar" />
 
   <!--this is the naming policy for artifacts we want pulled down-->
   <property name="ivy.module" location="hadoop-core" />
   <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-core-[revision].[ext]"/>
+  <property name="ivy.publish.pattern" value="[artifact]-[revision].[ext]"/>
   <property name="hadoop-core.jar" location="${build.dir}/${final.name}.jar" />
   <property name="hadoop-core-test.jar" location="${build.dir}/${test.final.name}.jar" />
 
@@ -363,7 +370,7 @@
   </target>
 
   <target name="compile-contrib" depends="compile-core">
-     <subant target="compile">
+     <subant target="compile" inheritall="true">
         <property name="version" value="${version}"/>
         <fileset file="${contrib.dir}/build.xml"/>
      </subant>  	
@@ -535,7 +542,7 @@
   </target>
 
   <target name="test-contrib" depends="compile, compile-core-test" description="Run contrib unit tests">
-    <subant target="test">
+    <subant target="test" inheritall="true">
        <property name="version" value="${version}"/>
        <property name="clover.jar" value="${clover.jar}"/>
        <fileset file="${contrib.dir}/build.xml"/>
@@ -551,7 +558,7 @@
   </target>
 
   <target name="test" depends="jar-test,test-core" description="Run all unit tests">
-    <subant target="test-contrib">	 
+    <subant target="test-contrib" inheritall="true">	 
       <fileset dir="." includes="build.xml"/>
     </subant>
   </target>
@@ -844,7 +851,7 @@
 	  <arg line="${native.src.dir}/packageNativeHadoop.sh"/>
     </exec>
 
-    <subant target="package">
+    <subant target="package" inheritall="true">
       <!--Pass down the version in case its needed again and the target
       distribution directory so contribs know where to install to.-->
       <property name="version" value="${version}"/>
@@ -944,7 +951,7 @@
 	  <arg line="${native.src.dir}/packageNativeHadoop.sh"/>
     </exec>
 
-    <subant target="package">
+    <subant target="package" inheritall="true">
       <!--Pass down the version in case its needed again and the target
       distribution directory so contribs know where to install to.-->
       <property name="version" value="${version}"/>
@@ -1024,7 +1031,7 @@
   <!-- Using subant instead of ant as a workaround for 30569              -->
   <!-- ================================================================== -->
   <target name="clean-contrib">
-     <subant target="clean">        
+     <subant target="clean" inheritall="true">        
         <fileset file="src/contrib/build.xml"/>
      </subant>  	
   </target>
@@ -1149,6 +1156,7 @@
 
   <target name="ivy-download" description="To download ivy" unless="offline">
     <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
+    <get src="${jsch_repo_url}" dest="${jsch.jar}" usetimestamp="true"/>
   </target>
 
   <!--
@@ -1160,6 +1168,7 @@
       loaderRef="ivyLoader">
       <classpath>
         <pathelement location="${ivy.jar}"/>
+        <pathelement location="${jsch.jar}"/>
       </classpath>
     </typedef>
     <fail >
@@ -1179,7 +1188,9 @@
     <!--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'/>
+    <ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override='false'
+      realm="Sonatype Nexus Repository Manager"/>
+
   </target>
 
   <target name="ivy-resolve" depends="ivy-init">
@@ -1281,18 +1292,21 @@
 
   <target name="assert-hadoop-jar-exists" depends="ivy-init">
     <fail>
-      <condition >
+      <condition>
         <not>
-          <available file="${hadoop-core.jar}" />
+	  <and>
+            <available file="${hadoop-core.jar}" />
+            <available file="${hadoop-core-test.jar}" />
+          </and>
         </not>
       </condition>
-      Not found: ${hadoop-core.jar}
-      Please run the target "jar" in the main build file
+      Not found: ${hadoop-core.jar} or ${hadoop-core-test.jar}
+      Please run the target "jar and jar-test" in the main build file
     </fail>
 
   </target>
 
-  <target name="ready-to-publish" depends="jar,assert-hadoop-jar-exists,ivy-resolve"/>
+  <target name="ready-to-publish" depends="jar,jar-test,assert-hadoop-jar-exists,ivy-resolve"/>
 
   <target name="ivy-publish-local" depends="ready-to-publish,ivy-resolve">
     <ivy:publish
@@ -1300,31 +1314,75 @@
       resolver="local"
       pubrevision="${version}"
       overwrite="true"
-      artifactspattern="${build.dir}/${ivy.publish.pattern}" />
+      publishivy="true"
+      artifactspattern="${build.dir}/${ivy.publish.pattern}"/>
   </target>
 
+  <target name="ivy-publish-internal" depends="ready-to-publish,ivy-resolve,makepom">
+    <ivy:publish
+      settingsRef="${ant.project.name}.ivy.settings"
+      resolver="ssh-resolver"
+      pubrevision="${version}"
+      overwrite="true"
+      publishivy="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">
+    <property name="module.name" value="hadoop-core"/>
     <ivy:makepom settingsRef="${ant.project.name}.ivy.settings"
+      ivyfile="ivy.xml" 
+      pomfile="${pom.xml}">
+      <!--pomfile="${build.ivy.maven.core.pom}"> -->
+      <ivy:mapping conf="default" scope="default"/>
+      <ivy:mapping conf="master" scope="master"/>
+      <ivy:mapping conf="runtime" scope="runtime"/>
+      <ivy:mapping conf="common" scope="compile"/>
+      <ivy:mapping conf="client" scope="compile"/>
+      <ivy:mapping conf="server" scope="compile"/>
+      <ivy:mapping conf="s3-client" scope="compile"/>
+      <ivy:mapping conf="s3-server" scope="compile"/>
+      <ivy:mapping conf="kfs" scope="compile"/>
+      <ivy:mapping conf="mandatory" scope="compile"/>
+      <ivy:mapping conf="httpclient" scope="compile"/>
+      <ivy:mapping conf="ftp" scope="compile"/>
+      <ivy:mapping conf="commons-logging" scope="compile"/>
+      <ivy:mapping conf="log4j" scope="compile"/>
+      <ivy:mapping conf="jetty" scope="compile"/>
+      <ivy:mapping conf="test" scope="test"/>
+    </ivy:makepom>
+   <!-- <property name="module.name" value="hadoop-core-test"/>
+    <ivy:makepom settingsRef="${ant.project.name}.ivy.settings"
       ivyfile="ivy.xml"
-      pomfile="${build.ivy.maven.dir}/generated.pom">
+      pomfile="${build.ivy.maven.core-test.pom}">
       <ivy:mapping conf="default" scope="default"/>
       <ivy:mapping conf="master" scope="master"/>
       <ivy:mapping conf="runtime" scope="runtime"/>
+      <ivy:mapping conf="test" scope="test"/>
     </ivy:makepom>
+    <replaceregexp byline="true">
+      <regexp pattern="hadoop-core"/>
+      <substitution expression="hadoop-core-test"/>
+      <fileset dir="build/ivy/maven">
+        <include name="hadoop-core-test-${version}.pom"/>
+      </fileset>
+    </replaceregexp> -->
   </target>
 
-
   <target name="copy-jar-to-maven" depends="ready-to-publish">
     <copy file="${hadoop-core.jar}"
-      tofile="${build.ivy.maven.jar}"/>
-    <checksum file="${build.ivy.maven.jar}" algorithm="md5"/>
+      tofile="${build.ivy.maven.core.jar}"/>
+    <checksum file="${build.ivy.maven.core.jar}" algorithm="md5"/>
+    <copy file="${hadoop-core-test.jar}"
+      tofile="${build.ivy.maven.core-test.jar}"/>
+    <checksum file="${build.ivy.maven.core-test.jar}" algorithm="md5"/>
   </target>
 
-  <target name="copypom" depends="ivy-init-dirs">
+<!--  <target name="copypom" depends="ivy-init-dirs">
 
    <presetdef name="expandingcopy" >
     <copy overwrite="true">
@@ -1335,12 +1393,26 @@
    </presetdef>
 
    <expandingcopy file="ivy/hadoop-core.pom"
-      tofile="${build.ivy.maven.pom}"/>
-   <checksum file="${build.ivy.maven.pom}" algorithm="md5"/>
-  </target>
+      tofile="${build.ivy.maven.core.pom}"/>
+   <checksum file="${build.ivy.maven.core.pom}" algorithm="md5"/>
 
-  <target name="maven-artifacts" depends="copy-jar-to-maven,copypom" />
+   <expandingcopy file="ivy/hadoop-core-test.pom"
+      tofile="${build.ivy.maven.core-test.pom}"/>
+   <checksum file="${build.ivy.maven.core-test.pom}" algorithm="md5"/>
 
+  </target> -->
+
+   <target name="copypom" depends="ivy-init-dirs">
+
+   <checksum file="${pom.xml}" algorithm="md5"/>
+   <!--<checksum file="${build.ivy.maven.core.pom}" algorithm="md5"/>
+   <checksum file="${build.ivy.maven.core-test.pom}" algorithm="md5"/> -->
+
+  </target> 
+
+  <target name="maven-artifacts" depends="makepom, copy-jar-to-maven, copypom"/>
+  <!--<target name="maven-artifacts" depends="copy-jar-to-maven,copypom" /> -->
+
   <target name="published" depends="ivy-publish-local,maven-artifacts">
   </target>
 </project>
