]> source.dussan.org Git - archiva.git/commitdiff
use a new bean rather than a lot of params to ease futur enhancements
authorOlivier Lamy <olamy@apache.org>
Tue, 23 Oct 2012 13:29:21 +0000 (13:29 +0000)
committerOlivier Lamy <olamy@apache.org>
Tue, 23 Oct 2012 13:29:21 +0000 (13:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1401289 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java
archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java
archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverMRM1411RepoGroupTest.java
archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverManagedReleaseTest.java
archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverManagedSnapshotTest.java
archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java

index 5465931239e77d20ff3dbcc4b707b993d2941911..23dee2f46184f412ac8650dfb7f02f159b9d5616 100644 (file)
@@ -34,6 +34,7 @@ import org.apache.archiva.metadata.repository.MetadataRepository;
 import org.apache.archiva.metadata.repository.MetadataRepositoryException;
 import org.apache.archiva.metadata.repository.RepositorySession;
 import org.apache.archiva.metadata.repository.RepositorySessionFactory;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
@@ -54,11 +55,9 @@ import java.util.List;
 
 /**
  * Take an artifact off of disk and put it into the metadata repository.
- *
- *
  */
-@Service( "knownRepositoryContentConsumer#create-archiva-metadata" )
-@Scope( "prototype" )
+@Service ("knownRepositoryContentConsumer#create-archiva-metadata")
+@Scope ("prototype")
 public class ArchivaMetadataCreationConsumer
     extends AbstractMonitoredConsumer
     implements KnownRepositoryContentConsumer, RegistryListener
@@ -98,7 +97,7 @@ public class ArchivaMetadataCreationConsumer
      * factory.
      */
     @Inject
-    @Named( value = "repositoryStorage#maven2" )
+    @Named (value = "repositoryStorage#maven2")
     private RepositoryStorage repositoryStorage;
 
     private static final Logger log = LoggerFactory.getLogger( ArchivaMetadataCreationConsumer.class );
@@ -170,13 +169,16 @@ public class ArchivaMetadataCreationConsumer
             ProjectVersionMetadata versionMetadata = null;
             try
             {
-                versionMetadata = repositoryStorage.readProjectVersionMetadata( repoId, artifact.getNamespace(),
-                                                                                artifact.getProject(), projectVersion );
+                ReadMetadataRequest readMetadataRequest =
+                    new ReadMetadataRequest().repoId( repoId ).namespace( artifact.getNamespace() ).projectId(
+                        artifact.getProject() ).projectVersion( projectVersion );
+                versionMetadata = repositoryStorage.readProjectVersionMetadata( readMetadataRequest );
                 createVersionMetadata = true;
             }
             catch ( RepositoryStorageMetadataNotFoundException e )
             {
-                log.warn( "Missing or invalid POM for artifact:{} (repository:{}); creating empty metadata" , path, repoId );
+                log.warn( "Missing or invalid POM for artifact:{} (repository:{}); creating empty metadata", path,
+                          repoId );
 
                 versionMetadata = new ProjectVersionMetadata();
                 versionMetadata.setId( projectVersion );
@@ -185,7 +187,8 @@ public class ArchivaMetadataCreationConsumer
             }
             catch ( RepositoryStorageMetadataInvalidException e )
             {
-                log.warn( "Error occurred resolving POM for artifact:{} (repository:{}); message: {}" , new Object[] { path, repoId, e.getMessage() } );
+                log.warn( "Error occurred resolving POM for artifact:{} (repository:{}); message: {}",
+                          new Object[]{ path, repoId, e.getMessage() } );
             }
 
             // read the metadata and update it if it is newer or doesn't exist
@@ -202,12 +205,16 @@ public class ArchivaMetadataCreationConsumer
         }
         catch ( MetadataRepositoryException e )
         {
-            log.warn( "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(), new Object[] { path, repoId, e.getMessage() }, e );
+            log.warn(
+                "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(),
+                new Object[]{ path, repoId, e.getMessage() }, e );
             repositorySession.revert();
         }
         catch ( RepositoryStorageRuntimeException e )
         {
-            log.warn( "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(), new Object[] { path, repoId, e.getMessage() }, e );
+            log.warn(
+                "Error occurred persisting metadata for artifact:{} (repository:{}); message: {}" + e.getMessage(),
+                new Object[]{ path, repoId, e.getMessage() }, e );
             repositorySession.revert();
         }
         finally
index 014f755e7af930c0d9d2d242abe5ae55fc8a03e4..013cc4e7c022d7a4aa1244f64eecb6d0c39e3c73 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.archiva.metadata.model.ProjectMetadata;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.model.ProjectVersionReference;
 import org.apache.archiva.metadata.repository.filter.ExcludesFilter;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
@@ -56,7 +57,7 @@ import java.util.List;
  * unknowingly by the caller.
  * <p/>
  */
-@Service( "metadataResolver#default" )
+@Service ("metadataResolver#default")
 public class DefaultMetadataResolver
     implements MetadataResolver
 {
@@ -72,7 +73,7 @@ public class DefaultMetadataResolver
      * appropriate methods to pass in the already determined repository configuration, for example, instead of the ID
      */
     @Inject
-    @Named( value = "repositoryStorage#maven2" )
+    @Named (value = "repositoryStorage#maven2")
     private RepositoryStorage repositoryStorage;
 
     /**
@@ -98,7 +99,10 @@ public class DefaultMetadataResolver
         {
             try
             {
-                metadata = repositoryStorage.readProjectVersionMetadata( repoId, namespace, projectId, projectVersion );
+                ReadMetadataRequest readMetadataRequest =
+                    new ReadMetadataRequest().repoId( repoId ).namespace( namespace ).projectId(
+                        projectId ).projectVersion( projectVersion );
+                metadata = repositoryStorage.readProjectVersionMetadata( readMetadataRequest );
 
                 log.debug( "Resolved project version metadata from storage: {}", metadata );
 
@@ -309,9 +313,11 @@ public class DefaultMetadataResolver
                 {
                     try
                     {
+                        ReadMetadataRequest readMetadataRequest =
+                            new ReadMetadataRequest().repoId( repoId ).namespace( namespace ).projectId(
+                                projectId ).projectVersion( projectVersion );
                         ProjectVersionMetadata versionMetadata =
-                            repositoryStorage.readProjectVersionMetadata( repoId, namespace, projectId,
-                                                                          projectVersion );
+                            repositoryStorage.readProjectVersionMetadata( readMetadataRequest );
                         for ( RepositoryListener listener : listeners )
                         {
                             listener.addArtifact( session, repoId, namespace, projectId, versionMetadata );
@@ -365,8 +371,13 @@ public class DefaultMetadataResolver
             Collection<ArtifactMetadata> artifacts =
                 metadataRepository.getArtifacts( repoId, namespace, projectId, projectVersion );
             ExcludesFilter<String> filter = new ExcludesFilter<String>( createArtifactIdList( artifacts ) );
+
+            ReadMetadataRequest readMetadataRequest =
+                new ReadMetadataRequest().repoId( repoId ).namespace( namespace ).projectId( projectId ).projectVersion(
+                    projectVersion ).filter( filter );
+
             Collection<ArtifactMetadata> storageArtifacts =
-                repositoryStorage.readArtifactsMetadata( repoId, namespace, projectId, projectVersion, filter );
+                repositoryStorage.readArtifactsMetadata( readMetadataRequest );
             if ( storageArtifacts != null && !storageArtifacts.isEmpty() )
             {
 
index e115812da9f40c44981b635a32adecb885d85a1f..4921613a6790f9e2ad7ac46258e8b606a529e66d 100644 (file)
@@ -31,8 +31,7 @@ public interface RepositoryStorage
 {
     ProjectMetadata readProjectMetadata( String repoId, String namespace, String projectId );
 
-    ProjectVersionMetadata readProjectVersionMetadata( String repoId, String namespace, String projectId,
-                                                       String projectVersion )
+    ProjectVersionMetadata readProjectVersionMetadata( ReadMetadataRequest readMetadataRequest )
         throws RepositoryStorageMetadataInvalidException, RepositoryStorageMetadataNotFoundException,
         RepositoryStorageRuntimeException;
 
@@ -48,8 +47,7 @@ public interface RepositoryStorage
     Collection<String> listProjectVersions( String repoId, String namespace, String projectId, Filter<String> filter )
         throws RepositoryStorageRuntimeException;
 
-    Collection<ArtifactMetadata> readArtifactsMetadata( String repoId, String namespace, String projectId,
-                                                        String projectVersion, Filter<String> filter )
+    Collection<ArtifactMetadata> readArtifactsMetadata( ReadMetadataRequest readMetadataRequest )
         throws RepositoryStorageRuntimeException;
 
     // FIXME: reconsider this API, do we want to expose storage format in the form of a path?
index 3eee39799116abb81635fbf65948ae5fdfeea703..3476ca6995caa474a694e28bc596ad4531dd48a4 100644 (file)
@@ -36,6 +36,7 @@ import org.apache.archiva.metadata.model.ArtifactMetadata;
 import org.apache.archiva.metadata.model.ProjectMetadata;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.repository.filter.Filter;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
@@ -91,7 +92,7 @@ import java.util.Map;
  * within the session in the context of a single managed repository's resolution needs.
  * <p/>
  */
-@Service( "repositoryStorage#maven2" )
+@Service ("repositoryStorage#maven2")
 public class Maven2RepositoryStorage
     implements RepositoryStorage
 {
@@ -119,13 +120,13 @@ public class Maven2RepositoryStorage
      *
      */
     @Inject
-    @Named( value = "repositoryPathTranslator#maven2" )
+    @Named (value = "repositoryPathTranslator#maven2")
     private RepositoryPathTranslator pathTranslator;
 
     @Inject
     private WagonFactory wagonFactory;
 
-    private final static Logger log = LoggerFactory.getLogger( Maven2RepositoryStorage.class );
+    private static final Logger log = LoggerFactory.getLogger( Maven2RepositoryStorage.class );
 
     private static final String METADATA_FILENAME_START = "maven-metadata";
 
@@ -146,35 +147,39 @@ public class Maven2RepositoryStorage
         return null;
     }
 
-    public ProjectVersionMetadata readProjectVersionMetadata( String repoId, String namespace, String projectId,
-                                                              String projectVersion )
+    public ProjectVersionMetadata readProjectVersionMetadata( ReadMetadataRequest readMetadataRequest )
         throws RepositoryStorageMetadataNotFoundException, RepositoryStorageMetadataInvalidException,
         RepositoryStorageRuntimeException
     {
         try
         {
-            ManagedRepository managedRepository = managedRepositoryAdmin.getManagedRepository( repoId );
+            ManagedRepository managedRepository =
+                managedRepositoryAdmin.getManagedRepository( readMetadataRequest.getRepoId() );
 
-            String artifactVersion = projectVersion;
-            if ( VersionUtil.isSnapshot( projectVersion ) ) // skygo trying to improve speed by honoring managed configuration MRM-1658
+            String artifactVersion = readMetadataRequest.getProjectVersion();
+            if ( VersionUtil.isSnapshot(
+                readMetadataRequest.getProjectVersion() ) ) // skygo trying to improve speed by honoring managed configuration MRM-1658
             {
                 if ( managedRepository.isReleases() && !managedRepository.isSnapshots() )
                 {
-                    throw new RepositoryStorageRuntimeException("lookforsnaponreleaseonly", "managed repo is configured for release only");
+                    throw new RepositoryStorageRuntimeException( "lookforsnaponreleaseonly",
+                                                                 "managed repo is configured for release only" );
                 }
-            } 
-            else 
+            }
+            else
             {
                 if ( !managedRepository.isReleases() && managedRepository.isSnapshots() )
                 {
-                    throw new RepositoryStorageRuntimeException("lookforsreleaseonsneponly", "managed repo is configured for snapshot only");
+                    throw new RepositoryStorageRuntimeException( "lookforsreleaseonsneponly",
+                                                                 "managed repo is configured for snapshot only" );
                 }
             }
             File basedir = new File( managedRepository.getLocation() );
-            if ( VersionUtil.isSnapshot( projectVersion ) )
+            if ( VersionUtil.isSnapshot( readMetadataRequest.getProjectVersion() ) )
             {
-                File metadataFile =
-                    pathTranslator.toFile( basedir, namespace, projectId, projectVersion, METADATA_FILENAME );
+                File metadataFile = pathTranslator.toFile( basedir, readMetadataRequest.getNamespace(),
+                                                           readMetadataRequest.getProjectId(),
+                                                           readMetadataRequest.getProjectVersion(), METADATA_FILENAME );
                 try
                 {
                     ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
@@ -197,8 +202,10 @@ public class Maven2RepositoryStorage
             }
 
             // TODO: won't work well with some other layouts, might need to convert artifact parts to ID by path translator
-            String id = projectId + "-" + artifactVersion + ".pom";
-            File file = pathTranslator.toFile( basedir, namespace, projectId, projectVersion, id );
+            String id = readMetadataRequest.getProjectId() + "-" + artifactVersion + ".pom";
+            File file =
+                pathTranslator.toFile( basedir, readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(),
+                                       readMetadataRequest.getProjectVersion(), id );
 
             if ( !file.exists() )
             {
@@ -213,7 +220,7 @@ public class Maven2RepositoryStorage
             Map<String, NetworkProxy> networkProxies = new HashMap<String, NetworkProxy>();
 
             Map<String, List<ProxyConnector>> proxyConnectorsMap = proxyConnectorAdmin.getProxyConnectorAsMap();
-            List<ProxyConnector> proxyConnectors = proxyConnectorsMap.get( repoId );
+            List<ProxyConnector> proxyConnectors = proxyConnectorsMap.get( readMetadataRequest.getRepoId() );
             if ( proxyConnectors != null )
             {
                 for ( ProxyConnector proxyConnector : proxyConnectors )
@@ -273,11 +280,11 @@ public class Maven2RepositoryStorage
                                       "Using defaults for project version metadata.." );
 
                         ProjectVersionMetadata metadata = new ProjectVersionMetadata();
-                        metadata.setId( projectVersion );
+                        metadata.setId( readMetadataRequest.getProjectVersion() );
 
                         MavenProjectFacet facet = new MavenProjectFacet();
-                        facet.setGroupId( namespace );
-                        facet.setArtifactId( projectId );
+                        facet.setGroupId( readMetadataRequest.getNamespace() );
+                        facet.setArtifactId( readMetadataRequest.getProjectId() );
                         facet.setPackaging( "jar" );
                         metadata.addFacet( facet );
 
@@ -286,13 +293,13 @@ public class Maven2RepositoryStorage
                                 ? problem.getMessage()
                                 : problem.getException().getMessage() );
                         RepositoryProblemFacet repoProblemFacet = new RepositoryProblemFacet();
-                        repoProblemFacet.setRepositoryId( repoId );
-                        repoProblemFacet.setId( repoId );
+                        repoProblemFacet.setRepositoryId( readMetadataRequest.getRepoId() );
+                        repoProblemFacet.setId( readMetadataRequest.getRepoId() );
                         repoProblemFacet.setMessage( errMsg );
                         repoProblemFacet.setProblem( errMsg );
-                        repoProblemFacet.setProject( projectId );
-                        repoProblemFacet.setVersion( projectVersion );
-                        repoProblemFacet.setNamespace( namespace );
+                        repoProblemFacet.setProject( readMetadataRequest.getProjectId() );
+                        repoProblemFacet.setVersion( readMetadataRequest.getProjectVersion() );
+                        repoProblemFacet.setNamespace( readMetadataRequest.getNamespace() );
 
                         metadata.addFacet( repoProblemFacet );
 
@@ -304,9 +311,9 @@ public class Maven2RepositoryStorage
             }
 
             // Check if the POM is in the correct location
-            boolean correctGroupId = namespace.equals( model.getGroupId() );
-            boolean correctArtifactId = projectId.equals( model.getArtifactId() );
-            boolean correctVersion = projectVersion.equals( model.getVersion() );
+            boolean correctGroupId = readMetadataRequest.getNamespace().equals( model.getGroupId() );
+            boolean correctArtifactId = readMetadataRequest.getProjectId().equals( model.getArtifactId() );
+            boolean correctVersion = readMetadataRequest.getProjectVersion().equals( model.getVersion() );
             if ( !correctGroupId || !correctArtifactId || !correctVersion )
             {
                 StringBuilder message = new StringBuilder( "Incorrect POM coordinates in '" + file + "':" );
@@ -329,7 +336,7 @@ public class Maven2RepositoryStorage
             ProjectVersionMetadata metadata = new ProjectVersionMetadata();
             metadata.setCiManagement( convertCiManagement( model.getCiManagement() ) );
             metadata.setDescription( model.getDescription() );
-            metadata.setId( projectVersion );
+            metadata.setId( readMetadataRequest.getProjectVersion() );
             metadata.setIssueManagement( convertIssueManagement( model.getIssueManagement() ) );
             metadata.setLicenses( convertLicenses( model.getLicenses() ) );
             metadata.setMailingLists( convertMailingLists( model.getMailingLists() ) );
@@ -561,21 +568,25 @@ public class Maven2RepositoryStorage
         return getSortedFiles( dir, filter );
     }
 
-    public Collection<ArtifactMetadata> readArtifactsMetadata( String repoId, String namespace, String projectId,
-                                                               String projectVersion, Filter<String> filter )
+    public Collection<ArtifactMetadata> readArtifactsMetadata( ReadMetadataRequest readMetadataRequest )
         throws RepositoryStorageRuntimeException
     {
-        File dir = pathTranslator.toFile( getRepositoryBasedir( repoId ), namespace, projectId, projectVersion );
+        File dir = pathTranslator.toFile( getRepositoryBasedir( readMetadataRequest.getRepoId() ),
+                                          readMetadataRequest.getNamespace(), readMetadataRequest.getProjectId(),
+                                          readMetadataRequest.getProjectVersion() );
 
         // all files that are not metadata and not a checksum / signature are considered artifacts
-        File[] files = dir.listFiles( new ArtifactDirectoryFilter( filter ) );
+        File[] files = dir.listFiles( new ArtifactDirectoryFilter( readMetadataRequest.getFilter() ) );
 
         List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>();
         if ( files != null )
         {
             for ( File file : files )
             {
-                ArtifactMetadata metadata = getArtifactFromFile( repoId, namespace, projectId, projectVersion, file );
+                ArtifactMetadata metadata =
+                    getArtifactFromFile( readMetadataRequest.getRepoId(), readMetadataRequest.getNamespace(),
+                                         readMetadataRequest.getProjectId(), readMetadataRequest.getProjectVersion(),
+                                         file );
                 artifacts.add( metadata );
             }
         }
index 0c8377c766c64d08a95709e8b6a74985e3f3c995..4c1fb43971caddf763c4c8e96aaca82af0d04012 100644 (file)
@@ -19,15 +19,7 @@ package org.apache.archiva.metadata.repository.storage.maven2;
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import javax.inject.Inject;
-import javax.inject.Named;
 import junit.framework.TestCase;
-import org.apache.archiva.admin.model.beans.RepositoryGroup;
 import org.apache.archiva.common.utils.FileUtil;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.configuration.Configuration;
@@ -42,7 +34,7 @@ import org.apache.archiva.metadata.model.MailingList;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.repository.filter.AllFilter;
 import org.apache.archiva.metadata.repository.filter.Filter;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.proxy.common.WagonFactory;
 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 import org.apache.commons.io.FileUtils;
@@ -50,25 +42,34 @@ import org.apache.maven.wagon.Wagon;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-import org.springframework.test.context.ContextConfiguration;
 
-@RunWith( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
+@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
+@ContextConfiguration ( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
 public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
     extends TestCase
 {
     private static final Filter<String> ALL = new AllFilter<String>();
 
     @Inject
-    @Named( value = "repositoryStorage#maven2" )
+    @Named ( value = "repositoryStorage#maven2" )
     private Maven2RepositoryStorage storage;
 
     private static final String TEST_REPO_ID = "test";
-    
+
     private static final String TEST_SNAP_REPO_ID = "tests";
-    
+
     private static final String TEST_REPO_GROUP_ID = "testrg";
 
     private static final String TEST_REMOTE_REPO_ID = "central";
@@ -95,11 +96,11 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
     private WagonFactory wagonFactory;
 
     ManagedRepositoryConfiguration testRepo;
-    
+
     ManagedRepositoryConfiguration testRepoS;
-    
+
     Configuration c;
-    
+
     @Before
     @Override
     public void setUp()
@@ -108,21 +109,21 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         super.setUp();
 
         c = new Configuration();
-        
+
         testRepo = new ManagedRepositoryConfiguration();
         testRepo.setId( TEST_REPO_ID );
         testRepo.setLocation( new File( "target/test-repository" ).getAbsolutePath() );
         testRepo.setReleases( true );
         testRepo.setSnapshots( false );
         c.addManagedRepository( testRepo );
-       
+
         testRepoS = new ManagedRepositoryConfiguration();
         testRepoS.setId( TEST_SNAP_REPO_ID );
         testRepoS.setLocation( new File( "target/test-repositorys" ).getAbsolutePath() );
         testRepoS.setReleases( false );
         testRepoS.setSnapshots( true );
         c.addManagedRepository( testRepoS );
-        
+
         RemoteRepositoryConfiguration testRemoteRepo = new RemoteRepositoryConfiguration();
         testRemoteRepo.setId( TEST_REMOTE_REPO_ID );
         testRemoteRepo.setLayout( "default" );
@@ -142,24 +143,24 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         proxyConnectors.setTargetRepoId( TEST_REMOTE_REPO_ID );
         proxyConnectors.setDisabled( false );
         c.addProxyConnector( proxyConnectors );
-        
+
         List<String> repos = new ArrayList<String>();
         repos.add( TEST_REPO_ID );
         repos.add( TEST_SNAP_REPO_ID );
 
-        RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration( );
+        RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration();
         repoGroup.setId( TEST_REPO_GROUP_ID );
         repoGroup.setRepositories( repos );
         c.addRepositoryGroup( repoGroup );
-        
+
         configuration.save( c );
 
-        assertFalse ( c.getManagedRepositories().get( 0 ).isSnapshots() );
-        assertTrue ( c.getManagedRepositories().get( 0 ).isReleases() );
-        
-        assertTrue ( c.getManagedRepositories().get( 1 ).isSnapshots() );
-        assertFalse ( c.getManagedRepositories().get( 1 ).isReleases() );
-        
+        assertFalse( c.getManagedRepositories().get( 0 ).isSnapshots() );
+        assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
+
+        assertTrue( c.getManagedRepositories().get( 1 ).isSnapshots() );
+        assertFalse( c.getManagedRepositories().get( 1 ).isReleases() );
+
         wagonFactory = mock( WagonFactory.class );
 
         storage.setWagonFactory( wagonFactory );
@@ -176,8 +177,10 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-a",
                                     "target/test-repository/com/example/test/test-artifact-module-a" );
 
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "test-artifact-module-a", "1.0" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "test-artifact-module-a" ).projectVersion( "1.0" );
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
 
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
         assertEquals( "jar", facet.getPackaging() );
@@ -226,8 +229,10 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-a",
                                     "target/test-repository/com/example/test/test-artifact-module-a" );
 
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "test-artifact-module-a", "1.0" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "test-artifact-module-a" ).projectVersion( "1.0" );
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
         assertEquals( "1.0", metadata.getId() );
 
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
@@ -251,8 +256,11 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-a",
                                     "target/test-repository/com/example/test/test-artifact-module-a" );
 
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-parent", "1.1" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "missing-parent" ).projectVersion( "1.1" );
+
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
 
         assertEquals( "1.1", metadata.getId() );
 
@@ -278,9 +286,12 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
                                     "target/test-repositorys/com/example/test/test-snapshot-artifact-module-a" );
         copyTestArtifactWithParent( "target/test-classes/com/example/test/test-snapshot-artifact-root",
                                     "target/test-repositorys/com/example/test/test-snapshot-artifact-root" );
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_SNAP_REPO_ID, "com.example.test", "test-snapshot-artifact-module-a",
-                                                "1.1-SNAPSHOT" );
+
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().namespace( TEST_SNAP_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "test-snapshot-artifact-module-a" ).projectVersion( "1.1-SNAPSHOT" );
+
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
 
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
         assertEquals( "jar", facet.getPackaging() );
@@ -319,9 +330,10 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         copyTestArtifactWithParent( "target/test-classes/com/example/test/test-snapshot-artifact-module-a",
                                     "target/test-repositorys/com/example/test/test-snapshot-artifact-module-a" );
 
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_SNAP_REPO_ID, "com.example.test", "test-snapshot-artifact-module-a",
-                                                "1.1-SNAPSHOT" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_SNAP_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "test-snapshot-artifact-module-a" ).projectVersion( "1.1-SNAPSHOT" );
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
 
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
         assertEquals( "jar", facet.getPackaging() );
@@ -353,7 +365,7 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
 
         deleteTestArtifactWithParent( paths );
     }
-    
+
     @Test
     public void testGetProjectVersionMetadataWithParentSnapshotVersionAndSnapNotAllowed2()
         throws Exception
@@ -361,9 +373,11 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         copyTestArtifactWithParent( "target/test-classes/com/example/test/test-artifact-module-b",
                                     "target/test-repository/com/example/test/test-artifact-module-b" );
 
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "test-artifact-module-b",
-                                                "1.0" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "test-artifact-module-b" ).projectVersion( "1.0" );
+
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
 
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
         assertEquals( "jar", facet.getPackaging() );
@@ -413,7 +427,7 @@ public class Maven2RepositoryMetadataResolverMRM1411RepoGroupTest
         assertNull( dependency.getClassifier() );
         assertNull( dependency.getSystemPath() );
     }
-    
+
     private void assertArtifact( ArtifactMetadata artifact, String id, int size, String sha1, String md5 )
     {
         assertEquals( id, artifact.getId() );
index 5f211227ae72b2db6f6bef26b99c3cc62f610ba3..a0965fcc4169ab56a0da3d6d2ca35236f59f4f49 100644 (file)
@@ -19,12 +19,11 @@ package org.apache.archiva.metadata.repository.storage.maven2;
  * under the License.
  */
 
-import javax.inject.Inject;
-import javax.inject.Named;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.repository.filter.AllFilter;
 import org.apache.archiva.metadata.repository.filter.Filter;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
 import org.apache.archiva.proxy.common.WagonFactory;
 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
@@ -33,16 +32,19 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 
-@RunWith( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
+@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
+@ContextConfiguration ( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
 public class Maven2RepositoryMetadataResolverManagedReleaseTest
     extends Maven2RepositoryMetadataResolverTest
 {
     private static final Filter<String> ALL = new AllFilter<String>();
 
     @Inject
-    @Named( value = "repositoryStorage#maven2" )
+    @Named ( value = "repositoryStorage#maven2" )
     private Maven2RepositoryStorage storage;
 
     private static final String TEST_REPO_ID = "test";
@@ -79,57 +81,65 @@ public class Maven2RepositoryMetadataResolverManagedReleaseTest
 
         testRepo.setReleases( true );
         testRepo.setSnapshots( false );
-        
+
         configuration.save( c );
 
-        assertFalse ( c.getManagedRepositories().get( 0 ).isSnapshots() );
-        assertTrue ( c.getManagedRepositories().get( 0 ).isReleases() );
-              
+        assertFalse( c.getManagedRepositories().get( 0 ).isSnapshots() );
+        assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
+
     }
 
     @Test
     @Override
-    public void testModelWithJdkProfileActivation() 
+    public void testModelWithJdkProfileActivation()
         throws Exception
     {
         // skygo IMHO must fail because TEST_REPO_ID ( is snap ,no release) and we seek for a snapshot
-      
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.maven", "maven-archiver", "2.4.1" );
-    }   
-    
-    @Test( expected = RepositoryStorageRuntimeException.class)
+
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "org.apache.maven" ).projectId(
+                "maven-archiver" ).projectVersion( "2.4.1" );
+
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
+    }
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForTimestampedSnapshotMissingMetadata()
         throws Exception
-    {       
-        storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT" );        
+    {
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "missing-metadata" ).projectVersion( "1.0-SNAPSHOT" );
+        storage.readProjectVersionMetadata( readMetadataRequest );
     }
-    
-    @Test( expected = RepositoryStorageRuntimeException.class)
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForTimestampedSnapshotMalformedMetadata()
         throws Exception
     {
-        storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "malformed-metadata",
-                                                "1.0-SNAPSHOT" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectVersion(
+                "malformed-metadata" ).projectVersion( "1.0-SNAPSHOT" );
+        storage.readProjectVersionMetadata( readMetadataRequest );
     }
-    
-    @Test( expected = RepositoryStorageRuntimeException.class)
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForTimestampedSnapshot()
         throws Exception
     {
         super.testGetProjectVersionMetadataForTimestampedSnapshot();
     }
-    
-    
-    @Test( expected = RepositoryStorageRuntimeException.class)
+
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForTimestampedSnapshotIncompleteMetadata()
         throws Exception
     {
         super.testGetProjectVersionMetadataForTimestampedSnapshotIncompleteMetadata();
     }
-    
+
 }
index ea51003eeae75d574849b7a91cdcc0050b3d49f3..77d54735332714875ccc1867b760569478561380 100644 (file)
@@ -19,14 +19,11 @@ package org.apache.archiva.metadata.repository.storage.maven2;
  * under the License.
  */
 
-import javax.inject.Inject;
-import javax.inject.Named;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.repository.filter.AllFilter;
 import org.apache.archiva.metadata.repository.filter.Filter;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
-import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageRuntimeException;
 import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 import org.junit.Before;
@@ -34,16 +31,19 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.test.context.ContextConfiguration;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 
-@RunWith( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
+@RunWith ( ArchivaSpringJUnit4ClassRunner.class )
+@ContextConfiguration ( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
 public class Maven2RepositoryMetadataResolverManagedSnapshotTest
     extends Maven2RepositoryMetadataResolverTest
 {
     private static final Filter<String> ALL = new AllFilter<String>();
 
     @Inject
-    @Named( value = "repositoryStorage#maven2" )
+    @Named ( value = "repositoryStorage#maven2" )
     private Maven2RepositoryStorage storage;
 
     private static final String TEST_REPO_ID = "test";
@@ -79,54 +79,66 @@ public class Maven2RepositoryMetadataResolverManagedSnapshotTest
 
         testRepo.setReleases( false );
         testRepo.setSnapshots( true );
-        
+
         configuration.save( c );
 
-        assertTrue ( c.getManagedRepositories().get( 0 ).isSnapshots() );
-        assertFalse ( c.getManagedRepositories().get( 0 ).isReleases() );
+        assertTrue( c.getManagedRepositories().get( 0 ).isSnapshots() );
+        assertFalse( c.getManagedRepositories().get( 0 ).isReleases() );
     }
 
-    @Test( expected = RepositoryStorageRuntimeException.class)
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
-    public void testModelWithJdkProfileActivation() 
+    public void testModelWithJdkProfileActivation()
         throws Exception
     {
         // skygo IMHO must fail because TEST_REPO_ID ( is snap ,no release) and we seek for a snapshot
-      
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.maven", "maven-archiver", "2.4.1" );
-    }   
-    
-    @Test( expected = RepositoryStorageRuntimeException.class )
+
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "org.apache.maven" ).projectId(
+                "maven-archiver" ).projectVersion( "2.4.1" );
+
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
+    }
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForMislocatedPom()
-        throws Exception    
+        throws Exception
     {
-        storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "mislocated-pom", "1.0" );
-        
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "mislocated-pom" ).projectVersion( "1.0" );
+        storage.readProjectVersionMetadata( readMetadataRequest );
+
     }
-    
+
     @Test
     @Override
     public void testGetProjectVersionMetadata()
         throws Exception
     {
-       // super test is on release
-    }    
-    
-    @Test( expected = RepositoryStorageRuntimeException.class )
+        // super test is on release
+    }
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForInvalidPom()
         throws Exception
     {
-        storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "invalid-pom", "1.0" );       
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "invalid-pom" ).projectVersion( "1.0" );
+        storage.readProjectVersionMetadata( readMetadataRequest );
     }
-    
-    @Test( expected = RepositoryStorageRuntimeException.class )
+
+    @Test ( expected = RepositoryStorageRuntimeException.class )
     @Override
     public void testGetProjectVersionMetadataForMissingPom()
         throws Exception
     {
-        storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-pom", "1.0" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "com.example.test" ).projectId(
+                "missing-pom" ).projectVersion( "1.0" );
+        storage.readProjectVersionMetadata( readMetadataRequest );
     }
 }
index c9e047e503484b393b1e9c2640517d1377cf0f39..65d15906de4ebfa4b2a04788b055eb15e1de3fe1 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.archiva.metadata.repository.storage.maven2;
  * under the License.
  */
 
+import junit.framework.TestCase;
 import org.apache.archiva.common.utils.FileUtil;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.configuration.Configuration;
@@ -33,9 +34,11 @@ import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.repository.filter.AllFilter;
 import org.apache.archiva.metadata.repository.filter.ExcludesFilter;
 import org.apache.archiva.metadata.repository.filter.Filter;
+import org.apache.archiva.metadata.repository.storage.ReadMetadataRequest;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
 import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
 import org.apache.archiva.proxy.common.WagonFactory;
+import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.wagon.Wagon;
 import org.junit.Before;
@@ -53,21 +56,19 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
-import junit.framework.TestCase;
-import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@RunWith( ArchivaSpringJUnit4ClassRunner.class )
-@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } )
+@RunWith (ArchivaSpringJUnit4ClassRunner.class)
+@ContextConfiguration (locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" })
 public class Maven2RepositoryMetadataResolverTest
     extends TestCase
 {
     private static final Filter<String> ALL = new AllFilter<String>();
 
     @Inject
-    @Named( value = "repositoryStorage#maven2" )
+    @Named (value = "repositoryStorage#maven2")
     private Maven2RepositoryStorage storage;
 
     private static final String TEST_REPO_ID = "test";
@@ -96,9 +97,9 @@ public class Maven2RepositoryMetadataResolverTest
     private WagonFactory wagonFactory;
 
     ManagedRepositoryConfiguration testRepo;
-    
+
     Configuration c;
-    
+
     @Before
     @Override
     public void setUp()
@@ -113,7 +114,6 @@ public class Maven2RepositoryMetadataResolverTest
         testRepo.setReleases( true );
         testRepo.setSnapshots( true );
         c.addManagedRepository( testRepo );
-       
 
         RemoteRepositoryConfiguration testRemoteRepo = new RemoteRepositoryConfiguration();
         testRemoteRepo.setId( TEST_REMOTE_REPO_ID );
@@ -131,9 +131,9 @@ public class Maven2RepositoryMetadataResolverTest
 
         configuration.save( c );
 
-        assertTrue ( c.getManagedRepositories().get( 0 ).isSnapshots() );
-        assertTrue ( c.getManagedRepositories().get( 0 ).isReleases() );
-        
+        assertTrue( c.getManagedRepositories().get( 0 ).isSnapshots() );
+        assertTrue( c.getManagedRepositories().get( 0 ).isReleases() );
+
         wagonFactory = mock( WagonFactory.class );
 
         storage.setWagonFactory( wagonFactory );
@@ -146,9 +146,10 @@ public class Maven2RepositoryMetadataResolverTest
     public void testModelWithJdkProfileActivation()
         throws Exception
     {
-
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.maven", "maven-archiver", "2.4.1" );
+        ReadMetadataRequest readMetadataRequest =
+            new ReadMetadataRequest().repoId( TEST_REPO_ID ).namespace( "org.apache.maven" ).projectId(
+                "maven-archiver" ).projectVersion( "2.4.1" );
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata( readMetadataRequest );
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
     }
 
@@ -156,8 +157,8 @@ public class Maven2RepositoryMetadataResolverTest
     public void testGetProjectVersionMetadata()
         throws Exception
     {
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" );
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" ) );
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
         assertEquals( "jar", facet.getPackaging() );
         assertEquals( "http://archiva.apache.org/ref/1.2.1/archiva-base/archiva-common", metadata.getUrl() );
@@ -211,8 +212,8 @@ public class Maven2RepositoryMetadataResolverTest
     public void testGetArtifactMetadata()
         throws Exception
     {
-        Collection<ArtifactMetadata> springArtifacts =
-            storage.readArtifactsMetadata( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL );
+        Collection<ArtifactMetadata> springArtifacts = storage.readArtifactsMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL ) );
         List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( springArtifacts );
         Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
         {
@@ -253,8 +254,8 @@ public class Maven2RepositoryMetadataResolverTest
     public void testGetArtifactMetadataSnapshots()
         throws Exception
     {
-        Collection<ArtifactMetadata> testArtifacts =
-            storage.readArtifactsMetadata( TEST_REPO_ID, "com.example.test", "test-artifact", "1.0-SNAPSHOT", ALL );
+        Collection<ArtifactMetadata> testArtifacts = storage.readArtifactsMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "test-artifact", "1.0-SNAPSHOT", ALL ) );
         List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( testArtifacts );
         Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
         {
@@ -336,8 +337,8 @@ public class Maven2RepositoryMetadataResolverTest
     public void testGetProjectVersionMetadataForTimestampedSnapshot()
         throws Exception
     {
-        ProjectVersionMetadata metadata =
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" );
+        ProjectVersionMetadata metadata = storage.readProjectVersionMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" ) );
         MavenProjectFacet facet = (MavenProjectFacet) metadata.getFacet( MavenProjectFacet.FACET_ID );
         assertEquals( "pom", facet.getPackaging() );
         assertEquals( "http://www.apache.org/", metadata.getUrl() );
@@ -376,7 +377,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         try
         {
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT" );
+            storage.readProjectVersionMetadata(
+                new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT" ) );
             fail( "Should not be found" );
         }
         catch ( RepositoryStorageMetadataNotFoundException e )
@@ -391,8 +393,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         try
         {
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "malformed-metadata",
-                                                "1.0-SNAPSHOT" );
+            storage.readProjectVersionMetadata(
+                new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "malformed-metadata", "1.0-SNAPSHOT" ) );
             fail( "Should not be found" );
         }
         catch ( RepositoryStorageMetadataNotFoundException e )
@@ -407,8 +409,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         try
         {
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "incomplete-metadata",
-                                                "1.0-SNAPSHOT" );
+            storage.readProjectVersionMetadata(
+                new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "incomplete-metadata", "1.0-SNAPSHOT" ) );
             fail( "Should not be found" );
         }
         catch ( RepositoryStorageMetadataNotFoundException e )
@@ -423,7 +425,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         try
         {
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "invalid-pom", "1.0" );
+            storage.readProjectVersionMetadata(
+                new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "invalid-pom", "1.0" ) );
             fail( "Should have received an exception due to invalid POM" );
         }
         catch ( RepositoryStorageMetadataInvalidException e )
@@ -438,7 +441,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         try
         {
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "mislocated-pom", "1.0" );
+            storage.readProjectVersionMetadata(
+                new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "mislocated-pom", "1.0" ) );
             fail( "Should have received an exception due to mislocated POM" );
         }
         catch ( RepositoryStorageMetadataInvalidException e )
@@ -453,7 +457,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         try
         {
-            storage.readProjectVersionMetadata( TEST_REPO_ID, "com.example.test", "missing-pom", "1.0" );
+            storage.readProjectVersionMetadata(
+                new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "missing-pom", "1.0" ) );
             fail( "Should not be found" );
         }
         catch ( RepositoryStorageMetadataNotFoundException e )
@@ -551,8 +556,8 @@ public class Maven2RepositoryMetadataResolverTest
     public void testGetArtifacts()
         throws Exception
     {
-        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(
-            storage.readArtifactsMetadata( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL ) );
+        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( storage.readArtifactsMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", ALL ) ) );
         assertEquals( 3, artifacts.size() );
         Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
         {
@@ -574,8 +579,8 @@ public class Maven2RepositoryMetadataResolverTest
     {
         ExcludesFilter<String> filter =
             new ExcludesFilter<String>( Collections.singletonList( "plexus-spring-1.2.pom" ) );
-        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(
-            storage.readArtifactsMetadata( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", filter ) );
+        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( storage.readArtifactsMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "org.codehaus.plexus", "plexus-spring", "1.2", filter ) ) );
         assertEquals( 2, artifacts.size() );
         Collections.sort( artifacts, new Comparator<ArtifactMetadata>()
         {
@@ -593,9 +598,8 @@ public class Maven2RepositoryMetadataResolverTest
     public void testGetArtifactsTimestampedSnapshots()
         throws Exception
     {
-        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(
-            storage.readArtifactsMetadata( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT",
-                                           ALL ) );
+        List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>( storage.readArtifactsMetadata(
+            new ReadMetadataRequest( TEST_REPO_ID, "com.example.test", "missing-metadata", "1.0-SNAPSHOT", ALL ) ) );
         assertEquals( 1, artifacts.size() );
 
         ArtifactMetadata artifact = artifacts.get( 0 );