You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2010/07/08 07:53:28 UTC

svn commit: r961576 - in /archiva/branches/archiva-MRM-980/archiva-modules: archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/ archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/ archiva...

Author: brett
Date: Thu Jul  8 05:53:27 2010
New Revision: 961576

URL: http://svn.apache.org/viewvc?rev=961576&view=rev
Log:
[MRM-980] Add getArtifacts() method to be able to retrieve all artifacts in a repository
Submitted by: Patti Arachchige Eshan Sudharaka

Modified:
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
    archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
    archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
    archiva/branches/archiva-MRM-980/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
    archiva/branches/archiva-MRM-980/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java Thu Jul  8 05:53:27 2010
@@ -159,4 +159,8 @@ public class TestMetadataRepository
     {
         return null;  //To change body of implemented methods use File | Settings | File Templates.
     }
+
+    public List<ArtifactMetadata> getArtifacts(String repositoryId){
+        return null;
+    }
 }

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java Thu Jul  8 05:53:27 2010
@@ -199,4 +199,8 @@ public class TestMetadataRepository
     {
         return artifacts;
     }
+
+    public List<ArtifactMetadata> getArtifacts(String repositoryId){
+        return artifacts;
+    }
 }
\ No newline at end of file

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java Thu Jul  8 05:53:27 2010
@@ -159,4 +159,7 @@ public class TestMetadataRepository
     {
         return null;  //To change body of implemented methods use File | Settings | File Templates.
     }
+    public List<ArtifactMetadata> getArtifacts(String repositoryId){
+        return null;
+    }
 }

Modified: archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java Thu Jul  8 05:53:27 2010
@@ -75,4 +75,6 @@ public interface MetadataRepository
      * @param repositoryId the repository to delete
      */
     void deleteRepository( String repositoryId );
+
+    List<ArtifactMetadata> getArtifacts(String repositoryId);
 }

Modified: archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java Thu Jul  8 05:53:27 2010
@@ -486,6 +486,17 @@ public abstract class AbstractMetadataRe
         assertTrue( repository.getArtifactsByDateRange( TEST_REPO_ID, null, upper ).isEmpty() );
     }
 
+     public void testGetArtifactsByRepoId()
+    {
+        repository.updateNamespace( TEST_REPO_ID, TEST_NAMESPACE );
+        repository.updateProject( TEST_REPO_ID, createProject() );
+        ArtifactMetadata artifact = createArtifact();
+        repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
+        assertFalse( repository.getArtifacts(TEST_REPO_ID).isEmpty());
+
+
+    }
+
     public void testGetNamespacesWithSparseDepth()
     {
         repository.updateNamespace( TEST_REPO_ID, "org.apache.maven.shared" );

Modified: archiva/branches/archiva-MRM-980/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java Thu Jul  8 05:53:27 2010
@@ -114,4 +114,7 @@ public class TestMetadataRepository
     {
         //To change body of implemented methods use File | Settings | File Templates.
     }
+    public List<ArtifactMetadata> getArtifacts(String repositoryId){
+        return null;
+    }
 }
\ No newline at end of file

Modified: archiva/branches/archiva-MRM-980/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java?rev=961576&r1=961575&r2=961576&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java Thu Jul  8 05:53:27 2010
@@ -140,7 +140,7 @@ public class FileMetadataRepository
             {
                 properties.remove( name );
             }
-            
+
             // clear the facet contents so old properties are no longer written
             clearMetadataFacetProperties( versionMetadata, properties );
         }
@@ -227,7 +227,7 @@ public class FileMetadataRepository
             }
         }
     }
-    
+
     private void clearMetadataFacetProperties( ProjectVersionMetadata versionMetadata, Properties properties )
     {
         List<Object> propsToRemove = new ArrayList<Object>();
@@ -242,7 +242,7 @@ public class FileMetadataRepository
                 }
             }
         }
-        
+
         for( Object key : propsToRemove )
         {
             properties.remove( key );
@@ -577,7 +577,7 @@ public class FileMetadataRepository
         properties.remove( "artifact:sha1:" + id );
         properties.remove( "artifact:version:" + id );
         properties.remove( "artifact:facetIds:" + id );
-        
+
         String prefix = "artifact:facet:" + id + ":";
         for ( Object key : new ArrayList( properties.keySet() ) )
         {
@@ -1075,4 +1075,36 @@ public class FileMetadataRepository
             return artifact1.getWhenGathered().compareTo( artifact2.getWhenGathered() );
         }
     }
+
+    public List<ArtifactMetadata> getArtifacts( String repoId )
+    {
+
+        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>();
+        for ( String ns : getRootNamespaces( repoId ) )
+        {
+            getArtifacts( artifacts, repoId, ns );
+        }
+        return artifacts;
+    }
+
+    private void getArtifacts( List<ArtifactMetadata> artifacts, String repoId, String ns )
+    {
+        for ( String namespace : getNamespaces( repoId, ns ) )
+        {
+            getArtifacts( artifacts, repoId, ns + "." + namespace );
+        }
+
+        for ( String project : getProjects( repoId, ns ) )
+        {
+            for ( String version : getProjectVersions( repoId, ns, project ) )
+            {
+                for ( ArtifactMetadata artifact : getArtifacts( repoId, ns, project, version ) )
+                {
+
+                    artifacts.add( artifact );
+
+                }
+            }
+        }
+    }
 }