You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/05/31 22:57:45 UTC

svn commit: r543255 - /maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java

Author: jdcasey
Date: Thu May 31 13:57:44 2007
New Revision: 543255

URL: http://svn.apache.org/viewvc?view=rev&rev=543255
Log:
[MASSEMBLY-210] Including the ancestry of the current project in the repository.

Modified:
    maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java

Modified: maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java?view=diff&rev=543255&r1=543254&r2=543255
==============================================================================
--- maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java (original)
+++ maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java Thu May 31 13:57:44 2007
@@ -183,6 +183,9 @@
         {
             assembleRepositoryMetadata( result, filter, centralRepository, targetRepository );
         }
+
+        addPomWithAncestry( project.getArtifact(), project.getRemoteArtifactRepositories(), localRepository,
+                            targetRepository, groupVersionAlignments );
     }
 
     private ArtifactFilter buildRepositoryFilter( RepositoryInfo repository, MavenProject project )
@@ -276,38 +279,7 @@
 
                     writeChecksums( targetFile );
 
-                    if ( !"pom".equals( a.getType() ) )
-                    {
-                        a = artifactFactory.createProjectArtifact( a.getGroupId(), a.getArtifactId(), a.getVersion() );
-
-                        MavenProject p = projectBuilder.buildFromRepository( a,
-                                                                             project.getRemoteArtifactRepositories(),
-                                                                             localRepository );
-
-                        do
-                        {
-                            a = artifactFactory.createProjectArtifact( p.getGroupId(), p.getArtifactId(), p
-                                .getVersion() );
-
-                            setAlignment( a, groupVersionAlignments );
-
-                            File sourceFile = new File( localRepository.getBasedir(), localRepository.pathOf( a ) );
-
-                            if ( !sourceFile.exists() )
-                            {
-                                break;
-                            }
-
-                            targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( a ) );
-
-                            FileUtils.copyFile( sourceFile, targetFile );
-
-                            writeChecksums( targetFile );
-
-                            p = p.getParent();
-                        }
-                        while ( p != null );
-                    }
+                    addPomWithAncestry( a, project.getRemoteArtifactRepositories(), localRepository, targetRepository, groupVersionAlignments );
                 }
             }
         }
@@ -323,9 +295,66 @@
         {
             throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
         }
-        catch ( ProjectBuildingException e )
+    }
+
+    private void addPomWithAncestry( Artifact artifact, List remoteArtifactRepositories,
+                                     ArtifactRepository localRepository, ArtifactRepository targetRepository,
+                                     Map groupVersionAlignments )
+        throws RepositoryAssemblyException
+    {
+        if ( !"pom".equals( artifact.getType() ) )
         {
-            throw new RepositoryAssemblyException( "Error reading POM.", e );
+            artifact = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() );
+
+            MavenProject p;
+            try
+            {
+                p = projectBuilder.buildFromRepository( artifact,
+                                                                     remoteArtifactRepositories,
+                                                                     localRepository );
+            }
+            catch ( ProjectBuildingException e )
+            {
+                throw new RepositoryAssemblyException( "Error reading POM: " + artifact.getId(), e );
+            }
+
+            do
+            {
+                artifact = artifactFactory.createProjectArtifact( p.getGroupId(), p.getArtifactId(), p
+                    .getVersion() );
+
+                setAlignment( artifact, groupVersionAlignments );
+
+                File sourceFile = new File( localRepository.getBasedir(), localRepository.pathOf( artifact ) );
+
+                if ( !sourceFile.exists() )
+                {
+                    break;
+                }
+
+                File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) );
+
+                try
+                {
+                    FileUtils.copyFile( sourceFile, targetFile );
+                }
+                catch ( IOException e )
+                {
+                    throw new RepositoryAssemblyException( "Error writing POM metdata: " + artifact.getId(), e );
+                }
+
+                try
+                {
+                    writeChecksums( targetFile );
+                }
+                catch ( IOException e )
+                {
+                    throw new RepositoryAssemblyException( "Error writing checksums for POM: " + artifact.getId(), e );
+                }
+
+                p = p.getParent();
+            }
+            while ( p != null );
         }
     }