Author: ogusakov
Date: Sun Dec 28 18:22:44 2008
New Revision: 729824

URL: http://svn.apache.org/viewvc?rev=729824&view=rev
Log:
[MERCURY-65] pom attribute UT works, can read POMs now !! :)

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/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java

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=729824&r1=729823&r2=729824&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/build.xml Sun Dec 28 
18:22:44 2008
@@ -260,7 +260,7 @@
     >
       <classpath> 
         <deps>
-          <dependency name="t:t:3.0::pom" 
pom="${basedir}/target/test-classes/" />
+          <dependency name="t:t:3.0::pom" 
pom="${basedir}/target/test-classes/t-3.0.pom" />
         </deps>
       </classpath>
     </javac>

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=729824&r1=729823&r2=729824&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
 Sun Dec 28 18:22:44 2008
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.util.Util;
@@ -31,7 +32,7 @@
 
     Collection<Auth> _auths;
 
-    Collection<Repository> _repositories;
+    List<Repository> _repositories;
 
     public Config()
     {
@@ -48,7 +49,7 @@
         central.setUrl( remoteUrl == null ? DEFAULT_CENTRAL_URL : remoteUrl );
     }
 
-    public Collection<Repository> getRepositories()
+    public List<Repository> getRepositories()
         throws BuildException
     {
         if ( Util.isEmpty( _repos ) )

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=729824&r1=729823&r2=729824&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
 Sun Dec 28 18:22:44 2008
@@ -2,15 +2,16 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.maven.mercury.MavenDependencyProcessor;
 import org.apache.maven.mercury.artifact.Artifact;
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
 import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
+import org.apache.maven.mercury.builder.api.DependencyProcessor;
 import org.apache.maven.mercury.logging.IMercuryLogger;
 import org.apache.maven.mercury.logging.MercuryLoggerManager;
 import org.apache.maven.mercury.metadata.DependencyBuilder;
@@ -18,6 +19,10 @@
 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.local.map.DefaultStorage;
+import org.apache.maven.mercury.repository.local.map.LocalRepositoryMap;
+import org.apache.maven.mercury.repository.local.map.Storage;
+import org.apache.maven.mercury.repository.local.map.StorageException;
 import org.apache.maven.mercury.repository.virtual.VirtualRepositoryReader;
 import org.apache.maven.mercury.util.Util;
 import org.apache.tools.ant.BuildException;
@@ -47,6 +52,10 @@
     private ArtifactScopeEnum _scope = ArtifactScopeEnum.compile;
 
     private boolean _transitive = true;
+    
+    private LocalRepositoryMap _pomRepo;
+    
+    private Storage _pomStorage;
 
     private List<ArtifactBasicMetadata> getDependencies( 
VirtualRepositoryReader vr )
     throws RepositoryException
@@ -56,8 +65,6 @@
 
         List<ArtifactBasicMetadata> res = new 
ArrayList<ArtifactBasicMetadata>( _dependencies.size() );
         
-       
-
         for ( Dependency d : _dependencies )
         {
             if( d._amd == null )
@@ -67,10 +74,22 @@
                 res.add( d._amd );
             else
             {
+                String key = d._amd.getGAV();
+                
+                ArtifactMetadata deps = null;
                 
-//                vr.addRepository( repo );
+                try
+                {
+                    _pomStorage.add( key, new File(d._pom) );
+                    
+                    deps = vr.readDependencies( d._amd );
                 
-                ArtifactMetadata deps = vr.readDependencies( d._amd );
+                    _pomStorage.removeRaw( key );
+                }
+                catch ( StorageException e )
+                {
+                    throw new RepositoryException(e);
+                }
                 
                 if( deps != null && !Util.isEmpty( deps.getDependencies() ) )
                     for( ArtifactBasicMetadata bmd : deps.getDependencies() )
@@ -143,7 +162,15 @@
         if( Util.isEmpty( _dependencies ) )
             return null;
 
-        Collection<Repository> repos = config.getRepositories();
+        List<Repository> repos = config.getRepositories();
+        
+        DependencyProcessor dp = new MavenDependencyProcessor();
+        
+        _pomStorage = new DefaultStorage();
+        
+        _pomRepo = new LocalRepositoryMap( "inMemMdRepo", dp, _pomStorage );
+        
+        repos.add( 0, _pomRepo );
 
         DependencyBuilder db =
             DependencyBuilderFactory.create( 
DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null );
@@ -221,7 +248,7 @@
     {
         return true;
     }
-
+    
//----------------------------------------------------------------------------------------
     public Iterator iterator()
     {
         try
@@ -248,7 +275,7 @@
             return null;
         }
     }
-
+    
//----------------------------------------------------------------------------------------
     public int size()
     {
         try
@@ -267,4 +294,6 @@
             return 0;
         }
     }
+    
//----------------------------------------------------------------------------------------
+    
//----------------------------------------------------------------------------------------
 }
\ No newline at end of file

Modified: 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties?rev=729824&r1=729823&r2=729824&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
 (original)
+++ 
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/resources/org/apache/maven/mercury/ant/tasks/Messages.properties
 Sun Dec 28 18:22:44 2008
@@ -41,4 +41,6 @@
 
 
 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.not.implemented=pom attribute not implemented for 
<dependency ../> tag
+dep.cannot.remove=cannot delete non-existing datum for: {0}
+defaultStorage.add.file.no.file=file for the key {0} does not exist.

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java?rev=729824&r1=729823&r2=729824&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/DefaultStorage.java
 Sun Dec 28 18:22:44 2008
@@ -117,11 +117,25 @@
     }
 
     public void add( String key, File file )
+    throws StorageException
     {
+        if( file == null || !file.exists() )
+            throw new StorageException( _lang.getMessage( 
"defaultStorage.add.file.no.file", key ) );
+        
         if( _files == null )
             _files = new HashMap<String, File>(32);
         
         _files.put( key, file );
     }
+
+    /* (non-Javadoc)
+     * @see 
org.apache.maven.mercury.repository.local.map.Storage#removeRaw(java.lang.String)
+     */
+    public void removeRaw( String key )
+    throws StorageException
+    {
+        if( Util.isEmpty( _files ) )
+            throw new StorageException( _lang.getMessage( "dep.cannot.remove", 
key ) );
+    }
     
 }

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java?rev=729824&r1=729823&r2=729824&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/LocalRepositoryMap.java
 Sun Dec 28 18:22:44 2008
@@ -42,6 +42,11 @@
     protected Storage _storage;
 
     // 
----------------------------------------------------------------------------------
+    public Storage getStorage()
+    {
+        return _storage;
+    }
+    // 
----------------------------------------------------------------------------------
     public LocalRepositoryMap( String id, DependencyProcessor dp, Storage 
storage )
     {
         super( id, FLAT_REPOSITORY_TYPE );

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java?rev=729824&r1=729823&r2=729824&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-map/src/main/java/org/apache/maven/mercury/repository/local/map/Storage.java
 Sun Dec 28 18:22:44 2008
@@ -52,7 +52,17 @@
      * 
      * @param key
      * @param file
+     * @throws StorageException 
      */
-    public abstract void add( String key, File file );
+    public abstract void add( String key, File file )
+    throws StorageException;
+
+    /**
+     * delete this datum
+     * 
+     * @param key
+     */
+    public abstract void removeRaw( String key )
+    throws StorageException;
 
 }
\ No newline at end of file


Reply via email to