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

svn commit: r307245 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/extension/ maven-core/src/main/java/org/apache/maven/plugin/ maven-project/src/main/java/org/apache/maven/project/ maven-project/src/main/java/org/apache/maven/...

Author: brett
Date: Fri Oct  7 20:06:54 2005
New Revision: 307245

URL: http://svn.apache.org/viewcvs?rev=307245&view=rev
Log:
PR: MNG-950
use active project artifacts for extensions and plugin dependencies

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?rev=307245&r1=307244&r2=307245&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java Fri Oct  7 20:06:54 2005
@@ -70,6 +70,9 @@
             for ( Iterator i = result.getArtifacts().iterator(); i.hasNext(); )
             {
                 Artifact a = (Artifact) i.next();
+
+                a = project.replaceWithActiveArtifact( a );
+
                 container.addJarResource( a.getFile() );
             }
         }

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=307245&r1=307244&r2=307245&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Fri Oct  7 20:06:54 2005
@@ -49,7 +49,6 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.artifact.ActiveProjectArtifact;
 import org.apache.maven.project.artifact.MavenMetadataSource;
 import org.apache.maven.project.path.PathTranslator;
 import org.apache.maven.reporting.MavenReport;
@@ -259,30 +258,7 @@
                               ArtifactRepository localRepository )
         throws ArtifactResolutionException, PluginManagerException, ArtifactNotFoundException
     {
-        // TODO: share with MMS? Not sure if it belongs here
-        if ( project.getProjectReferences() != null && !project.getProjectReferences().isEmpty() )
-        {
-            // TODO: use MavenProject getProjectReferenceId
-            String refId = plugin.getGroupId() + ":" + plugin.getArtifactId();
-            MavenProject ref = (MavenProject) project.getProjectReferences().get( refId );
-            if ( ref != null && ref.getArtifact() != null )
-            {
-                // TODO: if not matching, we should get the correct artifact from that project (attached)
-                if ( ref.getArtifact().getDependencyConflictId().equals( pluginArtifact.getDependencyConflictId() ) )
-                {
-                    // if the project artifact doesn't exist, don't use it. We haven't built that far.
-                    if ( ref.getArtifact().getFile() != null && ref.getArtifact().getFile().exists() )
-                    {
-                        pluginArtifact = new ActiveProjectArtifact( ref, pluginArtifact );
-                    }
-                    else
-                    {
-                        getLogger().warn( "Plugin found in the reactor has not been built when it's use was attempted" +
-                            " - resolving from the repository instead" );
-                    }
-                }
-            }
-        }
+        pluginArtifact = project.replaceWithActiveArtifact( pluginArtifact );
 
         artifactResolver.resolve( pluginArtifact, project.getPluginArtifactRepositories(), localRepository );
 
@@ -318,7 +294,7 @@
         try
         {
             Set artifacts = MavenMetadataSource.createArtifacts( artifactFactory, plugin.getDependencies(), null, null,
-                                                                 project.getProjectReferences() );
+                                                                 project );
             addedPlugin.setIntroducedDependencyArtifacts( artifacts );
         }
         catch ( InvalidVersionSpecificationException e )
@@ -630,6 +606,8 @@
 
                     if ( !artifact.equals( pluginArtifact ) )
                     {
+                        artifact = project.replaceWithActiveArtifact( artifact );
+
                         pluginContainer.addJarResource( artifact.getFile() );
                     }
                 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=307245&r1=307244&r2=307245&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Fri Oct  7 20:06:54 2005
@@ -45,6 +45,7 @@
 import org.apache.maven.model.Resource;
 import org.apache.maven.model.Scm;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.project.artifact.ActiveProjectArtifact;
 import org.apache.maven.project.artifact.MavenMetadataSource;
 import org.apache.maven.project.overlay.BuildOverlay;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
@@ -1408,7 +1409,7 @@
         throws InvalidVersionSpecificationException
     {
         return MavenMetadataSource.createArtifacts( artifactFactory, getDependencies(), inheritedScope,
-                                                    dependencyFilter, projectReferences );
+                                                    dependencyFilter, this );
     }
 
     public void addProjectReference( MavenProject project )
@@ -1453,5 +1454,35 @@
     public String getDefaultGoal()
     {
         return getBuild() != null ? getBuild().getDefaultGoal() : null;
+    }
+
+    public Artifact replaceWithActiveArtifact( Artifact pluginArtifact )
+    {
+        if ( getProjectReferences() != null && !getProjectReferences().isEmpty() )
+        {
+            // TODO: use MavenProject getProjectReferenceId
+            String refId = pluginArtifact.getGroupId() + ":" + pluginArtifact.getArtifactId();
+            MavenProject ref = (MavenProject) getProjectReferences().get( refId );
+            if ( ref != null && ref.getArtifact() != null )
+            {
+                // TODO: if not matching, we should get the correct artifact from that project (attached)
+                if ( ref.getArtifact().getDependencyConflictId().equals( pluginArtifact.getDependencyConflictId() ) )
+                {
+                    // if the project artifact doesn't exist, don't use it. We haven't built that far.
+                    if ( ref.getArtifact().getFile() != null && ref.getArtifact().getFile().exists() )
+                    {
+                        pluginArtifact = new ActiveProjectArtifact( ref, pluginArtifact );
+                    }
+                    else
+                    {
+/* TODO...
+                        logger.warn( "Artifact found in the reactor has not been built when it's use was " +
+                            "attempted - resolving from the repository instead" );
+*/
+                    }
+                }
+            }
+        }
+        return pluginArtifact;
     }
 }

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=307245&r1=307244&r2=307245&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Fri Oct  7 20:06:54 2005
@@ -18,7 +18,6 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.metadata.ResolutionGroup;
@@ -57,7 +56,6 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 /**
@@ -259,7 +257,7 @@
     }
 
     public static Set createArtifacts( ArtifactFactory artifactFactory, List dependencies, String inheritedScope,
-                                       ArtifactFilter dependencyFilter, Map projectReferences )
+                                       ArtifactFilter dependencyFilter, MavenProject project )
         throws InvalidVersionSpecificationException
     {
         Set projectArtifacts = new HashSet( dependencies.size() );
@@ -315,20 +313,9 @@
 
                 artifact.setDependencyFilter( dependencyFilter );
 
-                if ( projectReferences != null )
+                if ( project != null )
                 {
-                    // TODO: use MavenProject getProjectReferenceId
-                    String refId = d.getGroupId() + ":" + d.getArtifactId();
-                    MavenProject project = (MavenProject) projectReferences.get( refId );
-                    if ( project != null && project.getArtifact() != null )
-                    {
-                        // TODO: if not matching, we should get the correct artifact from that project (attached)
-                        if ( project.getArtifact().getDependencyConflictId().equals(
-                            artifact.getDependencyConflictId() ) )
-                        {
-                            artifact = new ActiveProjectArtifact( project, artifact );
-                        }
-                    }
+                    artifact = project.replaceWithActiveArtifact( artifact );
                 }
 
                 projectArtifacts.add( artifact );
@@ -363,21 +350,6 @@
         }
 
         return versions;
-    }
-
-    private Metadata loadMetadata( ArtifactMetadata repoMetadata, ArtifactRepository remoteRepository,
-                                   ArtifactRepository localRepository )
-        throws ArtifactMetadataRetrievalException
-    {
-        File metadataFile = new File( localRepository.getBasedir(),
-                                      localRepository.pathOfLocalRepositoryMetadata( repoMetadata, remoteRepository ) );
-
-        Metadata metadata = null;
-        if ( metadataFile.exists() )
-        {
-            metadata = readMetadata( metadataFile );
-        }
-        return metadata;
     }
 
     /**