You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/12/23 22:26:12 UTC

svn commit: r729127 - in /maven/mercury/trunk: mercury-ant/mercury-ant-tasks/ mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/ mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/ mercury-repo/ ...

Author: ogusakov
Date: Tue Dec 23 13:26:12 2008
New Revision: 729127

URL: http://svn.apache.org/viewvc?rev=729127&view=rev
Log:
[MERCURY-65] adding mapped repo implementation

Modified:
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties
    maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java
    maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
    maven/mercury/trunk/mercury-repo/pom.xml

Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml Tue Dec 23 13:26:12 2008
@@ -179,5 +179,37 @@
                 file="${jar.target}/t.jar"
       />
   </target>
+
+  <target name="compile-thin-path" depends="init">
+    <javac srcdir="${src}"
+           destdir="${target}"
+           debug="on"
+           source="${compiler.version}"
+           target="${compiler.version}"
+    >
+      <classpath>
+        <merc:dep>
+          <merc:dependency name="asm:asm:3.0"/>
+        </merc:dep>
+     </classpath>
+    </javac>
+  </target>
+
+  <target name="compile-thin-path-2" depends="init">
+
+  	<path id="thin-path-2"> 
+    	<merc:dep>
+        <merc:dependency name="asm:asm:3.0"/>
+      </merc:dep>
+    </path>
+
+  	<javac srcdir="${src}"
+           destdir="${target}"
+  	      classpathref="thin-path-2"
+           debug="on"
+           source="${compiler.version}"
+           target="${compiler.version}"
+    />
+  </target>
   
 </project>
\ No newline at end of file

Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java Tue Dec 23 13:26:12 2008
@@ -58,7 +58,7 @@
         
         Repo central = createRepo();
         central.setId( "central" );
-        central.setUrl( remoteUrl );
+        central.setUrl( remoteUrl == null ? DEFAULT_CENTRAL_URL : remoteUrl );
         
     }
 

Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Dep.java Tue Dec 23 13:26:12 2008
@@ -1,5 +1,6 @@
 package org.apache.maven.mercury.ant.tasks;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -16,6 +17,7 @@
 import org.apache.maven.mercury.metadata.DependencyBuilderFactory;
 import org.apache.maven.mercury.repository.api.ArtifactResults;
 import org.apache.maven.mercury.repository.api.Repository;
+import org.apache.maven.mercury.repository.api.RepositoryException;
 import org.apache.maven.mercury.repository.virtual.VirtualRepositoryReader;
 import org.apache.maven.mercury.util.Util;
 import org.apache.tools.ant.BuildException;
@@ -38,29 +40,34 @@
     
     private List<Artifact> _artifacts;
     
+    private List<File> _files;
+    
     private String _configId;
     
-    String _pom;
-
     private ArtifactScopeEnum _scope = ArtifactScopeEnum.compile;
 
     private boolean _transitive = true;
 
-    protected List<ArtifactBasicMetadata> getDependencies()
+    private List<ArtifactBasicMetadata> getDependencies( VirtualRepositoryReader vr )
+    throws RepositoryException
     {
         if ( Util.isEmpty( _dependencies ) )
-        {
-            if( Util.isEmpty( _pom ) )
-                return null;
-
-            // TODO: 2008-12-22 oleg: to be implemented 
-            throw new UnsupportedOperationException( _lang.getMessage( "dep.pom.not.implemented" ) );
-        }
+            return null;
 
         List<ArtifactBasicMetadata> res = new ArrayList<ArtifactBasicMetadata>( _dependencies.size() );
 
         for ( Dependency d : _dependencies )
-            res.add( d._amd );
+        {
+            if( d._amd == null )
+                throw new IllegalArgumentException( _lang.getMessage( "dep.dependency.name.mandatory" ) );
+            
+            if( Util.isEmpty( d._pom )) 
+                res.add( d._amd );
+            else
+            {
+                ArtifactMetadata deps = vr.readDependencies( d._amd );
+            }
+        }
 
         return res;
     }
@@ -103,9 +110,9 @@
         public void setPom( String pom )
         {
             this._pom = pom;
-
-            // TODO: 2008-12-22 oleg: to be implemented 
-            throw new UnsupportedOperationException( _lang.getMessage( "dep.dependency.pom.not.implemented" ) );
+            
+            if( _amd == null )
+                throw new UnsupportedOperationException( _lang.getMessage( "dep.dependency.pom.needs.name", pom ) );
         }
 
     }
@@ -131,14 +138,14 @@
 
         DependencyBuilder db =
             DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null );
+
+        VirtualRepositoryReader vr = new VirtualRepositoryReader( repos );
         
-        List<ArtifactMetadata> res = db.resolveConflicts( scope, getDependencies() );
+        List<ArtifactMetadata> res = db.resolveConflicts( scope, getDependencies(vr) );
 
         if ( Util.isEmpty( res ) )
             return null;
 
-        VirtualRepositoryReader vr = new VirtualRepositoryReader( repos );
-
         ArtifactResults aRes = vr.readArtifacts( res );
 
         if ( aRes == null )
@@ -190,14 +197,6 @@
     {
         this._scope = scope;
     }
-    
-    public void setPom( String pom )
-    {
-        this._pom = pom;
-
-        // TODO: 2008-12-22 oleg: to be implemented
-        throw new UnsupportedOperationException( _lang.getMessage( "dep.pom.not.implemented" ) );
-    }
 
     public void setTransitive( boolean val )
     {
@@ -218,12 +217,20 @@
     {
         try
         {
+            if( _files != null )
+                return _files.iterator();
+            
             List<Artifact> artifacts = resolve();
             
             if( Util.isEmpty( artifacts ) )
                 return null;
             
-            return artifacts.iterator();
+            _files = new ArrayList<File>( artifacts.size() );
+            
+            for( Artifact a : _artifacts )
+                _files.add( a.getFile() );
+            
+            return _files.iterator();
         }
         catch ( Exception e )
         {

Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties Tue Dec 23 13:26:12 2008
@@ -38,6 +38,5 @@
 config.repo.verifier.bad.type=Verfier does not understand type {0}
 config.repo.verifier.pgp.bad.keyid=Bad key "{0}" for secret keyring {1}; expected to see 16 hex number, but did not find them 
 
-
-dep.pom.not.implemented=pom attribute not implemented for <dep ../> tag
-dep.dependency.pom.not.implemented=pom attribute not implemented for <dependency ../> tag
\ No newline at end of file
+dep.dependency.pom.needs.name=currently pom attribute "{}" should be prepended by a name attribute
+dep.dependency.name.mandatory=found a dependency without name attribute. Please correct you build file.
\ No newline at end of file

Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/test/java/org/apache/maven/mercury/ant/tasks/MecuryAntTest.java Tue Dec 23 13:26:12 2008
@@ -239,7 +239,7 @@
 
         assertFalse( jar.exists() );
 
-        executeTarget( "compile" );
+        executeTarget( title );
 
         assertTrue( af.exists() );
 
@@ -247,6 +247,38 @@
     }
 
     // -----------------------------------
+    public void testCompileThinPath()
+    {
+        String title = "compile-thin-path";
+        System.out.println( "========> start " + title );
+        System.out.flush();
+
+        File af = new File( _compileDirFile, "T.class" );
+
+        assertFalse( af.exists() );
+
+        executeTarget( title );
+
+        assertTrue( af.exists() );
+    }
+
+    // -----------------------------------
+    public void testCompileThinPath2()
+    {
+        String title = "compile-thin-path-2";
+        System.out.println( "========> start " + title );
+        System.out.flush();
+
+        File af = new File( _compileDirFile, "T.class" );
+
+        assertFalse( af.exists() );
+
+        executeTarget( title );
+
+        assertTrue( af.exists() );
+    }
+
+    // -----------------------------------
     public void testBadAuthRepo()
         throws Exception
     {

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java Tue Dec 23 13:26:12 2008
@@ -47,4 +47,39 @@
   
   public void setMetadataCache( RepositoryMetadataCache mdCache );
   public RepositoryMetadataCache getMetadataCache();
+  
+  public static final RepositoryWriter NULL_WRITER =
+  new RepositoryWriter()
+  {
+
+    public RepositoryMetadataCache getMetadataCache()
+    {
+        return null;
+    }
+
+    public void setMetadataCache( RepositoryMetadataCache mdCache )
+    {
+    }
+
+    public void writeArtifacts( Collection<Artifact> artifact )
+        throws RepositoryException
+    {
+    }
+
+    public boolean canHandle( String protocol )
+    {
+        return false;
+    }
+
+    public void close()
+    {
+    }
+
+    public String[] getProtocols()
+    {
+        return null;
+    }
+      
+  };
+          
 }

Modified: maven/mercury/trunk/mercury-repo/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/pom.xml?rev=729127&r1=729126&r2=729127&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/pom.xml (original)
+++ maven/mercury/trunk/mercury-repo/pom.xml Tue Dec 23 13:26:12 2008
@@ -35,6 +35,7 @@
     <module>mercury-repo-api</module>
     <module>mercury-repo-local-m2</module>
     <module>mercury-repo-local-flat</module>
+    <module>mercury-repo-local-map</module>
     <module>mercury-repo-remote-m2</module>
     <module>mercury-repo-cache-fs</module>
     <module>mercury-repo-virtual</module>