You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/09/19 00:02:33 UTC

svn commit: r1387387 - in /archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge: Maven2RepositoryMerger.java RepositoryMerger.java RepositoryMergerException.java

Author: olamy
Date: Tue Sep 18 22:02:33 2012
New Revision: 1387387

URL: http://svn.apache.org/viewvc?rev=1387387&view=rev
Log:
use a better exception mechanism for that

Added:
    archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMergerException.java
      - copied, changed from r1387386, archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java
Modified:
    archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
    archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java

Modified: archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java?rev=1387387&r1=1387386&r2=1387387&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java (original)
+++ archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java Tue Sep 18 22:02:33 2012
@@ -27,8 +27,8 @@ import org.apache.archiva.configuration.
 import org.apache.archiva.maven2.metadata.MavenMetadataReader;
 import org.apache.archiva.metadata.model.ArtifactMetadata;
 import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.archiva.metadata.repository.MetadataRepositoryException;
 import org.apache.archiva.metadata.repository.filter.Filter;
-import org.apache.archiva.metadata.repository.filter.IncludesFilter;
 import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
 import org.apache.archiva.model.ArchivaRepositoryMetadata;
 import org.apache.archiva.repository.RepositoryException;
@@ -59,7 +59,7 @@ import java.util.regex.Pattern;
 /**
  *
  */
-@Service( "repositoryMerger#maven2" )
+@Service ("repositoryMerger#maven2")
 public class Maven2RepositoryMerger
     implements RepositoryMerger
 {
@@ -80,8 +80,8 @@ public class Maven2RepositoryMerger
 
     @Inject
     public Maven2RepositoryMerger(
-        @Named( value = "archivaConfiguration#default" ) ArchivaConfiguration archivaConfiguration,
-        @Named( value = "repositoryPathTranslator#maven2" ) RepositoryPathTranslator repositoryPathTranslator )
+        @Named (value = "archivaConfiguration#default") ArchivaConfiguration archivaConfiguration,
+        @Named (value = "repositoryPathTranslator#maven2") RepositoryPathTranslator repositoryPathTranslator )
     {
         this.configuration = archivaConfiguration;
         this.pathTranslator = repositoryPathTranslator;
@@ -93,30 +93,60 @@ public class Maven2RepositoryMerger
     }
 
     public void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId )
-        throws Exception
+        throws RepositoryMergerException
     {
 
-        List<ArtifactMetadata> artifactsInSourceRepo = metadataRepository.getArtifacts( sourceRepoId );
-        for ( ArtifactMetadata artifactMetadata : artifactsInSourceRepo )
+        try
+        {
+            List<ArtifactMetadata> artifactsInSourceRepo = metadataRepository.getArtifacts( sourceRepoId );
+            for ( ArtifactMetadata artifactMetadata : artifactsInSourceRepo )
+            {
+                artifactMetadata.setRepositoryId( targetRepoId );
+                createFolderStructure( sourceRepoId, targetRepoId, artifactMetadata );
+            }
+        }
+        catch ( MetadataRepositoryException e )
+        {
+            throw new RepositoryMergerException( e.getMessage(), e );
+        }
+        catch ( IOException e )
         {
-            artifactMetadata.setRepositoryId( targetRepoId );
-            createFolderStructure( sourceRepoId, targetRepoId, artifactMetadata );
+            throw new RepositoryMergerException( e.getMessage(), e );
+        }
+        catch ( RepositoryException e )
+        {
+            throw new RepositoryMergerException( e.getMessage(), e );
         }
     }
 
     // TODO when UI needs a subset to merge
     public void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId,
                        Filter<ArtifactMetadata> filter )
-        throws Exception
+        throws RepositoryMergerException
     {
-        List<ArtifactMetadata> sourceArtifacts = metadataRepository.getArtifacts( sourceRepoId );
-        for ( ArtifactMetadata metadata : sourceArtifacts )
+        try
         {
-            if ( filter.accept( metadata ) )
+            List<ArtifactMetadata> sourceArtifacts = metadataRepository.getArtifacts( sourceRepoId );
+            for ( ArtifactMetadata metadata : sourceArtifacts )
             {
-                createFolderStructure( sourceRepoId, targetRepoId, metadata );
+                if ( filter.accept( metadata ) )
+                {
+                    createFolderStructure( sourceRepoId, targetRepoId, metadata );
+                }
             }
         }
+        catch ( MetadataRepositoryException e )
+        {
+            throw new RepositoryMergerException( e.getMessage(), e );
+        }
+        catch ( IOException e )
+        {
+            throw new RepositoryMergerException( e.getMessage(), e );
+        }
+        catch ( RepositoryException e )
+        {
+            throw new RepositoryMergerException( e.getMessage(), e );
+        }
     }
 
     private void createFolderStructure( String sourceRepoId, String targetRepoId, ArtifactMetadata artifactMetadata )
@@ -206,7 +236,7 @@ public class Maven2RepositoryMerger
             if ( versionMetaDataFileInSourceRepo.exists() )
             {//Pattern quote for windows path
                 String relativePathToVersionMetadataFile =
-                     versionMetaDataFileInSourceRepo.getAbsolutePath().split( Pattern.quote( sourceRepoPath ) )[1];
+                    versionMetaDataFileInSourceRepo.getAbsolutePath().split( Pattern.quote( sourceRepoPath ) )[1];
                 File versionMetaDataFileInTargetRepo = new File( targetRepoPath, relativePathToVersionMetadataFile );
 
                 if ( !versionMetaDataFileInTargetRepo.exists() )
@@ -352,30 +382,36 @@ public class Maven2RepositoryMerger
 
     public List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository metadataRepository, String sourceRepo,
                                                            String targetRepo )
-        throws Exception
+        throws RepositoryMergerException
     {
-        List<ArtifactMetadata> targetArtifacts = metadataRepository.getArtifacts( targetRepo );
-        List<ArtifactMetadata> sourceArtifacts = metadataRepository.getArtifacts( sourceRepo );
-        List<ArtifactMetadata> conflictsArtifacts = new ArrayList<ArtifactMetadata>();
-
-        for ( ArtifactMetadata targetArtifact : targetArtifacts )
+        try
         {
-            for ( ArtifactMetadata sourceArtifact : sourceArtifacts )
+            List<ArtifactMetadata> targetArtifacts = metadataRepository.getArtifacts( targetRepo );
+            List<ArtifactMetadata> sourceArtifacts = metadataRepository.getArtifacts( sourceRepo );
+            List<ArtifactMetadata> conflictsArtifacts = new ArrayList<ArtifactMetadata>();
+
+            for ( ArtifactMetadata targetArtifact : targetArtifacts )
             {
-                if ( isEquals( targetArtifact, sourceArtifact ) )
+                for ( ArtifactMetadata sourceArtifact : sourceArtifacts )
                 {
-                    if ( !conflictsArtifacts.contains( sourceArtifact ) )
+                    if ( isEquals( targetArtifact, sourceArtifact ) )
                     {
-                        conflictsArtifacts.add( sourceArtifact );
+                        if ( !conflictsArtifacts.contains( sourceArtifact ) )
+                        {
+                            conflictsArtifacts.add( sourceArtifact );
+                        }
                     }
                 }
             }
-        }
 
-        sourceArtifacts.removeAll( conflictsArtifacts );
-        Filter<ArtifactMetadata> artifactsWithOutConflicts = new IncludesFilter<ArtifactMetadata>( sourceArtifacts );
-//        merge( sourceRepo, targetRepo, artifactsWithOutConflicts );
-        return conflictsArtifacts;
+            sourceArtifacts.removeAll( conflictsArtifacts );
+
+            return conflictsArtifacts;
+        }
+        catch ( MetadataRepositoryException e )
+        {
+            throw new RepositoryMergerException( e.getMessage(), e );
+        }
     }
 
     private boolean isEquals( ArtifactMetadata sourceArtifact, ArtifactMetadata targetArtifact )

Modified: archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java?rev=1387387&r1=1387386&r2=1387387&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java (original)
+++ archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java Tue Sep 18 22:02:33 2012
@@ -28,13 +28,13 @@ import java.util.List;
 public interface RepositoryMerger
 {
     void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId )
-        throws Exception;
+        throws RepositoryMergerException;
 
     void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId,
                 Filter<ArtifactMetadata> filter )
-        throws Exception;
+        throws RepositoryMergerException;
 
     List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository metadataRepository, String sourceRepo,
                                                     String targetRepo )
-        throws Exception;
+        throws RepositoryMergerException;
 }
\ No newline at end of file

Copied: archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMergerException.java (from r1387386, archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java)
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMergerException.java?p2=archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMergerException.java&p1=archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java&r1=1387386&r2=1387387&rev=1387387&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java (original)
+++ archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMergerException.java Tue Sep 18 22:02:33 2012
@@ -1,5 +1,4 @@
 package org.apache.archiva.stagerepository.merge;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -9,7 +8,7 @@ package org.apache.archiva.stagereposito
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
- *  http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
@@ -19,22 +18,15 @@ package org.apache.archiva.stagereposito
  * under the License.
  */
 
-import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.repository.MetadataRepository;
-import org.apache.archiva.metadata.repository.filter.Filter;
-
-import java.util.List;
-
-public interface RepositoryMerger
+/**
+ * @author Olivier Lamy
+ * @since 1.4-M3
+ */
+public class RepositoryMergerException
+    extends Exception
 {
-    void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId )
-        throws Exception;
-
-    void merge( MetadataRepository metadataRepository, String sourceRepoId, String targetRepoId,
-                Filter<ArtifactMetadata> filter )
-        throws Exception;
-
-    List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository metadataRepository, String sourceRepo,
-                                                    String targetRepo )
-        throws Exception;
-}
\ No newline at end of file
+    public RepositoryMergerException( String msg, Exception e )
+    {
+        super( msg, e );
+    }
+}