Add support for custom ProjectDependencyAnalyzer implementations ----------------------------------------------------------------
Key: MDEP-262 URL: http://jira.codehaus.org/browse/MDEP-262 Project: Maven 2.x Dependency Plugin Issue Type: Improvement Components: analyze Reporter: Tobias Gierke Assignee: Brian Fox Attachments: maven-dependency-analyzer_1.2.patch, maven-dependency-plugin_2.2.patch I've written a customized ProjectDependencyAnalyzer (includes dependencies from Spring XMLs) that I'd like to be able to use with the maven-dependency-plugin. The current plugin implementation only supports a single ProjectDependencyAnalyzer component on the classpath (otherwise plexus will fail) and has no way of specifying which analyzer to use at runtime. The appended patches add support for custom ProjectDependencyAnalyzer components to the plugin. The basic idea is to assign ProjectDependencyAnalyzer components a unique role-hint and let the plugin dynamically look-up the implementation to use by specifying the role-hint as configuration parameter. 1. maven-dependency-analyzer_1.2.patch Patch against maven-dependency-analyzer 1.2-SNAPSHOT (trunk / r942613) To apply patch: patch -p1 <maven-dependency-analyzer_1.2.patch CHANGES: - DefaultProjectDependencyAnalyzer component now has an additonal role-hint 'default' so plexus won't complain when multiple ProjectDependencyAnalyzer components are one the classpath - changes the visibility of buildDependencyClasses() and findArtifactForClassName() from private to protected to allow subclassing - buildDependencyClasses() now takes the artifact map as additional parameter so subclasses can call findArtifactForClassName() with it 2. maven-dependency-plugin_2.2.patch Patch against maven-dependency-plugin 2.2-SNAPSHOT (trunk / r942613) To apply patch: patch -p1 <maven-dependency-plugin_2.2.patch CHANGES: - AbstractDependencyMojo now has a new 'analyzer' parameter that is the role hint to use when looking up the ProjectDependencyAnalyzer from the container ( the default value is set to 'default' and thus references DefaultProjectDependencyAnalyzer) - AbstractDependencyMojo now implements Contextualizable and dynamically looks up the ProjectDependencyAnalyzer component to use from the plexus container - Integration test added that first buids and installs a custom dummy ProjectDependencyAnalyzer component and then runs dependency:analyze with this analyzer -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira