Author: bentmann
Date: Thu Mar 25 21:55:08 2010
New Revision: 927604
URL: http://svn.apache.org/viewvc?rev=927604&view=rev
Log:
o Aligned version resolver with prefix resolver and made it support a model as
additional input
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java?rev=927604&r1=927603&r2=927604&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
Thu Mar 25 21:55:08 2010
@@ -26,6 +26,7 @@ import org.apache.maven.artifact.reposit
import org.apache.maven.artifact.repository.RepositoryCache;
import org.apache.maven.artifact.repository.RepositoryRequest;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.project.MavenProject;
import org.apache.maven.repository.ArtifactTransferListener;
@@ -43,6 +44,8 @@ public class DefaultPluginVersionRequest
private String artifactId;
+ private Model pom;
+
private RepositoryRequest repositoryRequest;
/**
@@ -126,6 +129,18 @@ public class DefaultPluginVersionRequest
return this;
}
+ public Model getPom()
+ {
+ return pom;
+ }
+
+ public DefaultPluginVersionRequest setPom( Model pom )
+ {
+ this.pom = pom;
+
+ return this;
+ }
+
public RepositoryCache getCache()
{
return repositoryRequest.getCache();
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java?rev=927604&r1=927603&r2=927604&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java
Thu Mar 25 21:55:08 2010
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.RepositoryCache;
import org.apache.maven.artifact.repository.RepositoryRequest;
+import org.apache.maven.model.Model;
import org.apache.maven.repository.ArtifactTransferListener;
/**
@@ -66,6 +67,23 @@ public interface PluginVersionRequest
PluginVersionRequest setArtifactId( String artifactId );
/**
+ * Gets the POM whose build plugins are to be scanned for the version.
+ *
+ * @return The POM whose build plugins are to be scanned for the verion or
{...@code null} to only search the plugin
+ * repositories.
+ */
+ Model getPom();
+
+ /**
+ * Sets the POM whose build plugins are to be scanned for the version.
+ *
+ * @param pom The POM whose build plugins are to be scanned for the
version, may be {...@code null} to only search the
+ * plugin repositories.
+ * @return This request, never {...@code null}.
+ */
+ PluginVersionRequest setPom( Model pom );
+
+ /**
* Indicates whether network access to remote repositories has been
disabled.
*
* @return {...@code true} if remote access has been disabled, {...@code
false} otherwise.
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java?rev=927604&r1=927603&r2=927604&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
Thu Mar 25 21:55:08 2010
@@ -22,11 +22,14 @@ package org.apache.maven.plugin.version.
import java.io.File;
import java.io.IOException;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.metadata.Metadata;
import org.apache.maven.artifact.repository.metadata.io.MetadataReader;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Plugin;
import org.apache.maven.plugin.version.PluginVersionRequest;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
import org.apache.maven.plugin.version.PluginVersionResolver;
@@ -63,6 +66,38 @@ public class DefaultPluginVersionResolve
{
logger.debug( "Resolving plugin version for " + request.getGroupId() +
":" + request.getArtifactId() );
+ PluginVersionResult result = resolveFromProject( request );
+
+ if ( result == null )
+ {
+ result = resolveFromRepository( request );
+
+ if ( StringUtils.isEmpty( result.getVersion() ) )
+ {
+ throw new PluginVersionResolutionException(
request.getGroupId(), request.getArtifactId(),
+
request.getLocalRepository(),
+
request.getRemoteRepositories(),
+ "Plugin not found
in any plugin repository" );
+ }
+ else if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "Resolved plugin version for " +
request.getGroupId() + ":" + request.getArtifactId()
+ + " to " + result.getVersion() + " from repository "
+ + ( result.getRepository() != null ?
result.getRepository().getId() : "null" ) );
+ }
+ }
+ else if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "Resolved plugin version for " +
request.getGroupId() + ":" + request.getArtifactId()
+ + " to " + result.getVersion() + " from POM " +
request.getPom() );
+ }
+
+ return result;
+ }
+
+ private PluginVersionResult resolveFromRepository( PluginVersionRequest
request )
+ throws PluginVersionResolutionException
+ {
DefaultPluginVersionResult result = new DefaultPluginVersionResult();
Metadata mergedMetadata = new Metadata();
@@ -155,13 +190,6 @@ public class DefaultPluginVersionResolve
"Plugin not found in
any plugin repository" );
}
- if ( logger.isDebugEnabled() )
- {
- logger.debug( "Resolved plugin version for " +
request.getGroupId() + ":" + request.getArtifactId()
- + " to " + result.getVersion() + " from repository "
- + ( result.getRepository() != null ?
result.getRepository().getId() : "null" ) );
- }
-
return result;
}
@@ -209,4 +237,43 @@ public class DefaultPluginVersionResolve
return target.merge( source );
}
+ private PluginVersionResult resolveFromProject( PluginVersionRequest
request )
+ {
+ PluginVersionResult result = null;
+
+ if ( request.getPom() != null && request.getPom().getBuild() != null )
+ {
+ Build build = request.getPom().getBuild();
+
+ result = resolveFromProject( request, build.getPlugins() );
+
+ if ( result == null && build.getPluginManagement() != null )
+ {
+ result = resolveFromProject( request,
build.getPluginManagement().getPlugins() );
+ }
+ }
+
+ return result;
+ }
+
+ private PluginVersionResult resolveFromProject( PluginVersionRequest
request, List<Plugin> plugins )
+ {
+ for ( Plugin plugin : plugins )
+ {
+ if ( request.getGroupId().equals( plugin.getGroupId() )
+ && request.getArtifactId().equals( plugin.getArtifactId() ) )
+ {
+ if ( plugin.getVersion() != null )
+ {
+ return new DefaultPluginVersionResult( plugin.getVersion()
);
+ }
+ else
+ {
+ return null;
+ }
+ }
+ }
+ return null;
+ }
+
}
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java?rev=927604&r1=927603&r2=927604&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java
Thu Mar 25 21:55:08 2010
@@ -35,6 +35,16 @@ class DefaultPluginVersionResult
private ArtifactRepository repository;
+ public DefaultPluginVersionResult()
+ {
+ // does nothing
+ }
+
+ public DefaultPluginVersionResult( String version )
+ {
+ this.version = version;
+ }
+
public String getVersion()
{
return version;