Return-Path: X-Original-To: apmail-maven-commits-archive@www.apache.org Delivered-To: apmail-maven-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8A635CE53 for ; Tue, 8 May 2012 21:01:12 +0000 (UTC) Received: (qmail 70281 invoked by uid 500); 8 May 2012 21:01:12 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 70195 invoked by uid 500); 8 May 2012 21:01:12 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 70184 invoked by uid 99); 8 May 2012 21:01:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 May 2012 21:01:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 08 May 2012 21:01:07 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 060552388B9B; Tue, 8 May 2012 21:00:45 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1335764 - in /maven/plugin-tools/branches/MPLUGIN-189: maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/ maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/ maven-plugin-tools-annotations... Date: Tue, 08 May 2012 21:00:45 -0000 To: commits@maven.apache.org From: olamy@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120508210046.060552388B9B@eris.apache.org> Author: olamy Date: Tue May 8 21:00:44 2012 New Revision: 1335764 URL: http://svn.apache.org/viewvc?rev=1335764&view=rev Log: use artifacts for scanning for future use Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/MojoAnnotationsScannerRequest.java maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java?rev=1335764&r1=1335763&r2=1335764&view=diff ============================================================================== --- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java (original) +++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java Tue May 8 21:00:44 2012 @@ -19,6 +19,7 @@ package org.apache.maven.plugin.plugin; * under the License. */ +import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; @@ -124,6 +125,16 @@ public abstract class AbstractGeneratorM protected boolean skip; /** + * The set of dependencies for the current project + * + * @parameter default-value = "${project.artifacts}" + * @required + * @readonly + * @since 3.0 + */ + protected Set dependencies; + + /** * @return the output directory where files will be generated. */ protected abstract File getOutputDirectory(); @@ -203,6 +214,7 @@ public abstract class AbstractGeneratorM PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor ); request.setEncoding( encoding ); request.setSkipErrorNoDescriptorsFound( skipErrorNoDescriptorsFound ); + request.setDependencies( dependencies ); mojoScanner.populatePluginDescriptor( request ); Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java?rev=1335764&r1=1335763&r2=1335764&view=diff ============================================================================== --- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java (original) +++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java Tue May 8 21:00:44 2012 @@ -22,7 +22,6 @@ import com.thoughtworks.qdox.JavaDocBuil import com.thoughtworks.qdox.model.DocletTag; import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.JavaField; -import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.plugin.descriptor.DuplicateParameterException; import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; import org.apache.maven.plugin.descriptor.MojoDescriptor; @@ -75,29 +74,23 @@ public class JavaAnnotationsMojoDescript public List execute( PluginToolsRequest request ) throws ExtractionException, InvalidPluginDescriptorException { - try - { - MojoAnnotationsScannerRequest mojoAnnotationsScannerRequest = new MojoAnnotationsScannerRequest(); - mojoAnnotationsScannerRequest.setClassesDirectories( - Arrays.asList( new File( request.getProject().getBuild().getOutputDirectory() ) ) ); + MojoAnnotationsScannerRequest mojoAnnotationsScannerRequest = new MojoAnnotationsScannerRequest(); - mojoAnnotationsScannerRequest.setDependencies( - toFiles( request.getProject().getCompileClasspathElements() ) ); + mojoAnnotationsScannerRequest.setClassesDirectories( + Arrays.asList( new File( request.getProject().getBuild().getOutputDirectory() ) ) ); - Map mojoAnnotatedClasses = - mojoAnnotationsScanner.scan( mojoAnnotationsScannerRequest ); + mojoAnnotationsScannerRequest.setDependencies( request.getDependencies() ); - Map javaClassesMap = discoverClasses( request ); + Map mojoAnnotatedClasses = + mojoAnnotationsScanner.scan( mojoAnnotationsScannerRequest ); - populateDataFromJavadoc( mojoAnnotatedClasses, javaClassesMap ); + Map javaClassesMap = discoverClasses( request ); + + populateDataFromJavadoc( mojoAnnotatedClasses, javaClassesMap ); + + return toMojoDescriptors( mojoAnnotatedClasses, request ); - return toMojoDescriptors( mojoAnnotatedClasses, request ); - } - catch ( DependencyResolutionRequiredException e ) - { - throw new ExtractionException( e.getMessage(), e ); - } } /** Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java?rev=1335764&r1=1335763&r2=1335764&view=diff ============================================================================== --- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java (original) +++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java Tue May 8 21:00:44 2012 @@ -18,6 +18,7 @@ package org.apache.maven.tools.plugin.an * under the License. */ +import org.apache.maven.artifact.Artifact; import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Execute; import org.apache.maven.plugins.annotations.Mojo; @@ -66,17 +67,20 @@ public class DefaultMojoAnnotationsScann try { - for ( File dependency : request.getDependencies() ) + for ( Artifact dependency : request.getDependencies() ) { - if ( dependency.isDirectory() ) + File dependencyFile = dependency.getFile(); + if ( dependencyFile != null && dependencyFile.exists() ) { - mojoAnnotatedClasses.putAll( scanDirectory( dependency, request.getIncludePatterns() ) ); - } - else - { - mojoAnnotatedClasses.putAll( scanFile( dependency, request.getIncludePatterns() ) ); + if ( dependencyFile.isDirectory() ) + { + mojoAnnotatedClasses.putAll( scanDirectory( dependencyFile, request.getIncludePatterns() ) ); + } + else + { + mojoAnnotatedClasses.putAll( scanFile( dependencyFile, request.getIncludePatterns() ) ); + } } - } for ( File classDirectory : request.getClassesDirectories() ) Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/MojoAnnotationsScannerRequest.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/MojoAnnotationsScannerRequest.java?rev=1335764&r1=1335763&r2=1335764&view=diff ============================================================================== --- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/MojoAnnotationsScannerRequest.java (original) +++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/MojoAnnotationsScannerRequest.java Tue May 8 21:00:44 2012 @@ -18,10 +18,14 @@ package org.apache.maven.tools.plugin.an * under the License. */ +import org.apache.maven.artifact.Artifact; + import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * @author Olivier Lamy @@ -31,7 +35,7 @@ public class MojoAnnotationsScannerReque { private List classesDirectories = new ArrayList(); - private List dependencies = new ArrayList(); + private Set dependencies = new HashSet(); private List includePatterns = Arrays.asList( "**/*.class" ); @@ -52,12 +56,12 @@ public class MojoAnnotationsScannerReque this.classesDirectories = classesDirectories; } - public List getDependencies() + public Set getDependencies() { return dependencies; } - public void setDependencies( List dependencies ) + public void setDependencies( Set dependencies ) { this.dependencies = dependencies; } Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java?rev=1335764&r1=1335763&r2=1335764&view=diff ============================================================================== --- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java (original) +++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/DefaultPluginToolsRequest.java Tue May 8 21:00:44 2012 @@ -19,23 +19,27 @@ package org.apache.maven.tools.plugin; * under the License. */ +import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.StringUtils; +import java.util.HashSet; +import java.util.Set; + /** * Default implementation of {@link PluginToolsRequest}, which is used to pass parameters to components used to extract * {@link MojoDescriptor} instances from different types of metadata for a given plugin. - * + * * @author jdcasey * @since 2.5 */ public class DefaultPluginToolsRequest implements PluginToolsRequest { - + private static final String DEFAULT_ENCODING = ReaderFactory.FILE_ENCODING; private PluginDescriptor pluginDescriptor; @@ -46,6 +50,8 @@ public class DefaultPluginToolsRequest private boolean skipErrorNoDescriptorsFound; + private Set dependencies; + public DefaultPluginToolsRequest( MavenProject project, PluginDescriptor pluginDescriptor ) { this.project = project; @@ -59,7 +65,7 @@ public class DefaultPluginToolsRequest { return pluginDescriptor; } - + /** * {@inheritDoc} */ @@ -76,7 +82,7 @@ public class DefaultPluginToolsRequest { return project; } - + /** * {@inheritDoc} */ @@ -127,4 +133,19 @@ public class DefaultPluginToolsRequest this.skipErrorNoDescriptorsFound = skipErrorNoDescriptorsFound; return this; } + + public Set getDependencies() + { + if ( this.dependencies == null ) + { + this.dependencies = new HashSet(); + } + return dependencies; + } + + public PluginToolsRequest setDependencies( Set dependencies ) + { + this.dependencies = dependencies; + return this; + } } Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java?rev=1335764&r1=1335763&r2=1335764&view=diff ============================================================================== --- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java (original) +++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/PluginToolsRequest.java Tue May 8 21:00:44 2012 @@ -19,10 +19,13 @@ package org.apache.maven.tools.plugin; * under the License. */ +import org.apache.maven.artifact.Artifact; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.project.MavenProject; +import java.util.Set; + /** * Request that encapsulates all information relevant to the process of extracting {@link MojoDescriptor} * instances from metadata for a certain type of mojo. @@ -74,16 +77,29 @@ public interface PluginToolsRequest * By default an exception is throw if no mojo descriptor is found. As the maven-plugin is defined in core, the * descriptor generator mojo is bound to generate-resources phase. * But for annotations, the compiled classes are needed, so skip error + * * @since 3.0 */ PluginToolsRequest setSkipErrorNoDescriptorsFound( boolean skipErrorNoDescriptorsFound ); /** - * @since 3.0 * @return + * @since 3.0 */ boolean isSkipErrorNoDescriptorsFound(); + /** + * Returns the list of {@link Artifact} used in class path scanning for annotations + * @return + * @since 3.0 + */ + Set getDependencies(); + /** + * + * @param dependencies + * @return + */ + PluginToolsRequest setDependencies( Set dependencies ); }