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 2010/11/05 16:02:16 UTC
svn commit: r1031611 - in /maven/plugins/trunk/maven-dependency-plugin:
pom.xml
src/main/java/org/apache/maven/plugin/dependency/AbstractAnalyzeMojo.java
Author: brianf
Date: Fri Nov 5 15:02:16 2010
New Revision: 1031611
URL: http://svn.apache.org/viewvc?rev=1031611&view=rev
Log:
MDEP-262 patch from Tobias Glerke
Modified:
maven/plugins/trunk/maven-dependency-plugin/pom.xml
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractAnalyzeMojo.java
Modified: maven/plugins/trunk/maven-dependency-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/pom.xml?rev=1031611&r1=1031610&r2=1031611&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-dependency-plugin/pom.xml Fri Nov 5 15:02:16 2010
@@ -282,6 +282,9 @@ under the License.
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
</pomIncludes>
+ <setupIncludes>
+ <setupInclude>setup-custom-analyzer/pom.xml</setupInclude>
+ </setupIncludes>
<preBuildHookScript>setup</preBuildHookScript>
<postBuildHookScript>validate</postBuildHookScript>
<localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractAnalyzeMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractAnalyzeMojo.java?rev=1031611&r1=1031610&r2=1031611&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractAnalyzeMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractAnalyzeMojo.java Fri Nov 5 15:02:16 2010
@@ -34,6 +34,12 @@ import org.apache.maven.project.MavenPro
import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalysis;
import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalyzer;
import org.apache.maven.shared.dependency.analyzer.ProjectDependencyAnalyzerException;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+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.xml.PrettyPrintXMLWriter;
/**
@@ -46,10 +52,17 @@ import org.codehaus.plexus.util.xml.Pret
*/
public abstract class AbstractAnalyzeMojo
extends AbstractMojo
+ implements Contextualizable
{
// fields -----------------------------------------------------------------
/**
+ * The plexus context to look-up the right {@link ProjectDependencyAnalyzer} implementation depending on the mojo
+ * configuration.
+ */
+ private Context context;
+
+ /**
* The Maven project to analyze.
*
* @parameter expression="${project}"
@@ -59,13 +72,12 @@ public abstract class AbstractAnalyzeMoj
private MavenProject project;
/**
- * The Maven project dependency analyzer to use.
+ * Project dependency analyzer to use (plexus component role-hint).
*
- * @component
- * @required
- * @readonly
+ * @parameter expression="${analyzer}" default-value="default"
+ * @since 2.2
*/
- private ProjectDependencyAnalyzer analyzer;
+ private String analyzer;
/**
* Whether to fail the build if a dependency warning is found.
@@ -158,6 +170,32 @@ public abstract class AbstractAnalyzeMoj
}
}
+ protected ProjectDependencyAnalyzer createProjectDependencyAnalyzer()
+ throws MojoExecutionException
+ {
+
+ final String role = ProjectDependencyAnalyzer.ROLE;
+ final String roleHint = analyzer;
+
+ try
+ {
+ final PlexusContainer container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+
+ return (ProjectDependencyAnalyzer) container.lookup( role, roleHint );
+ }
+ catch ( Exception exception )
+ {
+ throw new MojoExecutionException( "Failed to instantiate " + "ProjectDependencyAnalyser with role " + role
+ + " / role-hint " + roleHint,exception );
+ }
+ }
+
+ public void contextualize( Context context )
+ throws ContextException
+ {
+ this.context = context;
+ }
+
// private methods --------------------------------------------------------
private boolean checkDependencies()
@@ -166,7 +204,7 @@ public abstract class AbstractAnalyzeMoj
ProjectDependencyAnalysis analysis;
try
{
- analysis = analyzer.analyze( project );
+ analysis = createProjectDependencyAnalyzer().analyze( project );
}
catch ( ProjectDependencyAnalyzerException exception )
{