Author: oching
Date: Sun Jul 11 04:23:27 2010
New Revision: 962977

URL: http://svn.apache.org/viewvc?rev=962977&view=rev
Log:
[MRM-980] fix repo merger and update repo merger tests
submitted by Patti Arachchige Eshan Sudharaka

Modified:
    
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
    
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java

Modified: 
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java?rev=962977&r1=962976&r2=962977&view=diff
==============================================================================
--- 
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
 (original)
+++ 
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
 Sun Jul 11 04:23:27 2010
@@ -81,6 +81,11 @@ public class Maven2RepositoryMerger
         this.configuration = configuration;
     }
 
+     public void setMetadataRepository( MetadataRepository metadataRepository )
+    {
+        this.metadataRepository = metadataRepository;
+    }
+
     public void merge( String sourceRepoId, String targetRepoId )
         throws Exception
     {
@@ -144,11 +149,25 @@ public class Maven2RepositoryMerger
         // pom file copying
         String fileName = artifactMetadata.getProject() + "-" + 
artifactMetadata.getVersion() + ".pom";
 
-        File sourcePomFile =
-            pathTranslator.toFile( new File( sourceRepoPath ), 
artifactMetadata.getId(), artifactMetadata.getProject(),
-                                   artifactMetadata.getVersion(), fileName );
-        String relativePathToPomFile = sourcePomFile.getAbsolutePath().split( 
sourceRepoPath )[1];
-        File targetPomFile = new File( targetRepoPath, relativePathToPomFile );
+         // pom file copying
+        // TODO need to use path translator to get the pom file path
+//        String fileName = artifactMetadata.getProject() + "-" + 
artifactMetadata.getVersion() + ".pom";
+//
+//        File sourcePomFile =
+//            pathTranslator.toFile( new File( sourceRepoPath ), 
artifactMetadata.getId(), artifactMetadata.getProject(),
+//                                   artifactMetadata.getVersion(), fileName );
+//
+//        String relativePathToPomFile = 
sourcePomFile.getAbsolutePath().split( sourceRepoPath )[1];
+//        File targetPomFile = new File( targetRepoPath, relativePathToPomFile 
);
+
+        //pom file copying  (file path is taken with out using path translator)
+
+        String index = artifactPath.substring( lastIndex + 1 );
+        int last = index.lastIndexOf( '.' );
+        File sourcePomFile = new File( sourceRepoPath, artifactPath.substring( 
0, lastIndex ) + "/" +
+            artifactPath.substring( lastIndex + 1 ).substring( 0, last ) + 
".pom" );
+        File targetPomFile = new File( targetRepoPath, artifactPath.substring( 
0, lastIndex ) + "/" +
+            artifactPath.substring( lastIndex + 1 ).substring( 0, last ) + 
".pom" );
 
         if ( !targetPomFile.exists() )
         {

Modified: 
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java?rev=962977&r1=962976&r2=962977&view=diff
==============================================================================
--- 
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
 (original)
+++ 
archiva/branches/archiva-MRM-980/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
 Sun Jul 11 04:23:27 2010
@@ -23,23 +23,26 @@ import org.codehaus.plexus.spring.Plexus
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration;
 import org.apache.maven.archiva.repository.RepositoryContentFactory;
 import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.reports.RepositoryProblemFacet;
-import org.mockito.MockitoAnnotations;
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
 import org.junit.Before;
 
+import java.util.List;
+import java.util.ArrayList;
+
 public class Maven2RepositoryMergerTest
     extends PlexusInSpringTestCase
 {
 
-    private static final String SOURCE_REPOSITORY_ID = "test-repository";
-
-    private static final String TARGET_REPOSITORY_ID = "target-repo";
-
     private static final String TEST_REPO_ID = "test";
 
-    // private static final String TARGET_REPOSITORY_ID = "target-repo";
+    private static final String TARGET_REPOSITORY_ID = "target-repo";
 
     private Configuration config;
 
@@ -59,31 +62,51 @@ public class Maven2RepositoryMergerTest
         throws Exception
     {
         super.setUp();
+        MockitoAnnotations.initMocks( this );
+        metadataRepository = mock( MetadataRepository.class );
+
         ArchivaConfiguration configuration = (ArchivaConfiguration) lookup( 
ArchivaConfiguration.class );
         Configuration c = new Configuration();
         ManagedRepositoryConfiguration testRepo = new 
ManagedRepositoryConfiguration();
         testRepo.setId( TEST_REPO_ID );
         testRepo.setLocation( getTestPath( "target/test-repository" ) );
-        // testRepo.setLocation( 
"/boot/gsoc/apps/apache-archiva-1.4-SNAPSHOT/data/repositories/internal" );
+
+        RepositoryScanningConfiguration repoScanConfig = new 
RepositoryScanningConfiguration();
+        List<String> knownContentConsumers = new ArrayList<String>();
+        knownContentConsumers.add( "metadata-updater12" );
+        repoScanConfig.setKnownContentConsumers( knownContentConsumers );
+        c.setRepositoryScanning( repoScanConfig );
 
         ManagedRepositoryConfiguration targetRepo = new 
ManagedRepositoryConfiguration();
         targetRepo.setId( "target-rep" );
-        targetRepo.setLocation( getTestPath( "src/test/resources/target-repo" 
) );
+        targetRepo.setLocation( getTestPath( "target" ) );
         c.addManagedRepository( testRepo );
         c.addManagedRepository( targetRepo );
         configuration.save( c );
 
         repositoryMerger = (Maven2RepositoryMerger) lookup( 
RepositoryMerger.class, "maven2" );
+        repositoryMerger.setMetadataRepository( metadataRepository );
+    }
 
-        metadataRepository = (MetadataRepository) lookup( 
MetadataRepository.class );
+    private List<ArtifactMetadata> getArtifacts()
+    {
+        List<ArtifactMetadata> metadata = new ArrayList<ArtifactMetadata>();
+        ArtifactMetadata artifact1 = new ArtifactMetadata();
+        artifact1.setNamespace( "com.example.test" );
+        artifact1.setProject( "test-artifact" );
+        artifact1.setVersion( "1.0-SNAPSHOT" );
+        artifact1.setProjectVersion( "1.0-SNAPSHOT" );
+        artifact1.setId( "test-artifact-1.0-20100308.230825-1.jar" );
 
+        metadata.add( artifact1 );
+        return metadata;
     }
 
     public void testMerge()
         throws Exception
     {
+        when( metadataRepository.getArtifacts( TEST_REPO_ID ) ).thenReturn( 
getArtifacts() );
         repositoryMerger.merge( TEST_REPO_ID, "target-rep" );
-        // assert( true , (metadataRepository.getArtifacts( TEST_REPO_ID 
).size() > 0 ) );
-
+        verify( metadataRepository ).getArtifacts( TEST_REPO_ID );
     }
 }
\ No newline at end of file


Reply via email to