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;