Author: jdcasey
Date: Tue Aug 2 19:30:21 2005
New Revision: 227147
URL: http://svn.apache.org/viewcvs?rev=227147&view=rev
Log:
Working on: MNG-662
o Moved extension-artifact creation and caching to MavenProject, initialized by
MavenProjectBuilder, just like plugin-artifacts is.
o Added extension-artifact and report-artifact creation (and initialization in
MavenProject) to MavenProjectBuilder, for consistency with plugin-artifacts
o Removed dependency on ArtifactFactory in DefaultExtensionManager (extension
artifacts are reachable from MavenProject now)
This makes the process of resolving all artifacts referenced by a project much
simpler and more consistent (namely, for the release plugin)
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.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=227147&r1=227146&r2=227147&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
Tue Aug 2 19:30:21 2005
@@ -17,14 +17,13 @@
*/
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Extension;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.PlexusConstants;
@@ -33,7 +32,6 @@
import org.codehaus.plexus.context.Context;
import org.codehaus.plexus.context.ContextException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
-import org.codehaus.plexus.util.StringUtils;
import java.util.Collections;
import java.util.Iterator;
@@ -47,8 +45,6 @@
public class DefaultExtensionManager
implements ExtensionManager, Contextualizable
{
- private ArtifactFactory artifactFactory;
-
private ArtifactResolver artifactResolver;
private ArtifactMetadataSource artifactMetadataSource;
@@ -58,21 +54,9 @@
public void addExtension( Extension extension, MavenProject project,
ArtifactRepository localRepository )
throws ArtifactResolutionException, PlexusContainerException,
InvalidVersionSpecificationException
{
- // TODO: this is duplicated with DefaultMavenProjectBuilder. Push into
artifact factory.
- String version;
-
- if ( StringUtils.isEmpty( extension.getVersion() ) )
- {
- version = "RELEASE";
- }
- else
- {
- version = extension.getVersion();
- }
-
- VersionRange versionRange = VersionRange.createFromVersionSpec(
version );
- Artifact artifact = artifactFactory.createExtensionArtifact(
extension.getGroupId(), extension.getArtifactId(),
-
versionRange );
+ String extensionId = ArtifactUtils.versionlessKey(
extension.getGroupId(), extension.getArtifactId() );
+
+ Artifact artifact = (Artifact) project.getExtensionArtifactMap().get(
extensionId );
if ( artifact != null )
{
Modified:
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=227147&r1=227146&r2=227147&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
(original)
+++
maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml
Tue Aug 2 19:30:21 2005
@@ -39,9 +39,6 @@
<implementation>org.apache.maven.extension.DefaultExtensionManager</implementation>
<requirements>
<requirement>
- <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
- </requirement>
- <requirement>
<role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
</requirement>
<requirement>
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=227147&r1=227146&r2=227147&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Tue Aug 2 19:30:21 2005
@@ -32,6 +32,7 @@
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.Extension;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.Plugin;
@@ -552,6 +553,8 @@
project.setRemoteArtifactRepositories( remoteRepositories );
project.setPluginArtifacts( createPluginArtifacts(
project.getBuildPlugins() ) );
+ project.setReportArtifacts( createReportArtifacts(
project.getReportPlugins() ) );
+ project.setExtensionArtifacts( createExtensionArtifacts(
project.getBuildExtensions() ) );
return project;
}
@@ -826,6 +829,48 @@
}
return pluginArtifacts;
+ }
+
+ protected Set createExtensionArtifacts( List extensions )
+ throws ProjectBuildingException
+ {
+ Set extensionArtifacts = new HashSet();
+
+ if ( extensions != null )
+ {
+ for ( Iterator i = extensions.iterator(); i.hasNext(); )
+ {
+ Extension ext = (Extension) i.next();
+
+ String version;
+ if ( StringUtils.isEmpty( ext.getVersion() ) )
+ {
+ version = "RELEASE";
+ }
+ else
+ {
+ version = ext.getVersion();
+ }
+
+ Artifact artifact;
+ try
+ {
+ artifact = artifactFactory.createExtensionArtifact(
ext.getGroupId(), ext.getArtifactId(), VersionRange
+ .createFromVersionSpec( version ) );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ProjectBuildingException( "Unable to parse
extension version", e );
+ }
+
+ if ( artifact != null )
+ {
+ extensionArtifacts.add( artifact );
+ }
+ }
+ }
+
+ return extensionArtifacts;
}
public MavenProject buildStandaloneSuperProject( ArtifactRepository
localRepository, List externalProfiles )
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=227147&r1=227146&r2=227147&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
Tue Aug 2 19:30:21 2005
@@ -126,6 +126,10 @@
private Map reportArtifactMap;
+ private Set extensionArtifacts;
+
+ private Map extensionArtifactMap;
+
private Map projectReferences = new HashMap();
public MavenProject( Model model )
@@ -890,6 +894,26 @@
return reportArtifactMap;
}
+ public void setExtensionArtifacts( Set extensionArtifacts )
+ {
+ this.extensionArtifacts = extensionArtifacts;
+ }
+
+ public Set getExtensionArtifacts()
+ {
+ return this.extensionArtifacts;
+ }
+
+ public Map getExtensionArtifactMap()
+ {
+ if ( extensionArtifactMap == null )
+ {
+ extensionArtifactMap = ArtifactUtils.artifactMapByVersionlessId(
getExtensionArtifacts() );
+ }
+
+ return extensionArtifactMap;
+ }
+
public void setParentArtifact( Artifact parentArtifact )
{
this.parentArtifact = parentArtifact;
@@ -1249,4 +1273,5 @@
{
return groupId + ":" + artifactId;
}
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]