You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/05/04 12:01:53 UTC
svn commit: r1333843 -
/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java
Author: olamy
Date: Fri May 4 10:01:52 2012
New Revision: 1333843
URL: http://svn.apache.org/viewvc?rev=1333843&view=rev
Log:
[MPLUGIN-189] datamodel to MojoDescriptor
Modified:
maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java
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=1333843&r1=1333842&r2=1333843&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 Fri May 4 10:01:52 2012
@@ -19,13 +19,18 @@ package org.apache.maven.tools.plugin.an
*/
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;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.descriptor.Requirement;
import org.apache.maven.project.MavenProject;
import org.apache.maven.tools.plugin.DefaultPluginToolsRequest;
import org.apache.maven.tools.plugin.PluginToolsRequest;
+import org.apache.maven.tools.plugin.annotations.datamodel.ComponentAnnotationContent;
+import org.apache.maven.tools.plugin.annotations.datamodel.ExecuteAnnotationContent;
import org.apache.maven.tools.plugin.annotations.datamodel.MojoAnnotationContent;
+import org.apache.maven.tools.plugin.annotations.datamodel.ParameterAnnotationContent;
import org.apache.maven.tools.plugin.annotations.scanner.MojoAnnotatedClass;
import org.apache.maven.tools.plugin.annotations.scanner.MojoAnnotationsScanner;
import org.apache.maven.tools.plugin.annotations.scanner.MojoAnnotationsScannerRequest;
@@ -93,6 +98,7 @@ public class JavaAnnotationsMojoDescript
}
private List<MojoDescriptor> toMojoDescriptors( List<MojoAnnotatedClass> mojoAnnotatedClasses )
+ throws DuplicateParameterException
{
List<MojoDescriptor> mojoDescriptors = new ArrayList<MojoDescriptor>( mojoAnnotatedClasses.size() );
for ( MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses )
@@ -100,11 +106,53 @@ public class JavaAnnotationsMojoDescript
MojoDescriptor mojoDescriptor = new MojoDescriptor();
MojoAnnotationContent mojo = mojoAnnotatedClass.getMojo();
+ ExecuteAnnotationContent execute = mojoAnnotatedClass.getExecute();
mojoDescriptor.setAggregator( mojo.aggregator() );
mojoDescriptor.setDependencyResolutionRequired( mojo.requiresDependencyResolution() );
mojoDescriptor.setDirectInvocationOnly( mojo.requiresDirectInvocation() );
mojoDescriptor.setDeprecated( mojo.getDeprecated() );
+
+ mojoDescriptor.setExecuteGoal( execute.goal() );
+ mojoDescriptor.setExecuteLifecycle( execute.lifecycle() );
+ mojoDescriptor.setExecutePhase( execute.phase().id() );
+
+ mojoDescriptor.setExecutionStrategy( mojo.executionStrategy() );
+ // FIXME olamy wtf ?
+ //mojoDescriptor.alwaysExecute(mojo.a)
+
+ mojoDescriptor.setGoal( mojo.name() );
+ mojoDescriptor.setOnlineRequired( mojo.requiresOnline() );
+
+ mojoDescriptor.setPhase( mojo.defaultPhase().id() );
+ mojoDescriptor.setLanguage( "java" );
+
+ for ( ParameterAnnotationContent parameterAnnotationContent : mojoAnnotatedClass.getParameters() )
+ {
+ org.apache.maven.plugin.descriptor.Parameter parameter =
+ new org.apache.maven.plugin.descriptor.Parameter();
+ parameter.setName( parameterAnnotationContent.getFieldName() );
+ parameter.setAlias( parameterAnnotationContent.alias() );
+ parameter.setDefaultValue( parameterAnnotationContent.defaultValue() );
+ parameter.setDeprecated( parameterAnnotationContent.getDeprecated() );
+ parameter.setDescription( parameterAnnotationContent.getDescription() );
+ // FIXME olamy wtf ?
+ parameter.setEditable( !parameterAnnotationContent.readonly() );
+ parameter.setExpression( parameterAnnotationContent.expression() );
+ mojoDescriptor.addParameter( parameter );
+ }
+
+ for ( ComponentAnnotationContent componentAnnotationContent : mojoAnnotatedClass.getComponents() )
+ {
+ org.apache.maven.plugin.descriptor.Parameter parameter =
+ new org.apache.maven.plugin.descriptor.Parameter();
+ parameter.setName( componentAnnotationContent.getFieldName() );
+ parameter.setRequirement(
+ new Requirement( componentAnnotationContent.role(), componentAnnotationContent.roleHint() ) );
+ parameter.setEditable( false );
+ mojoDescriptor.addParameter( parameter );
+ }
+
mojoDescriptors.add( mojoDescriptor );
}
return mojoDescriptors;