You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/04/29 01:05:02 UTC

svn commit: r165224 - /maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit /maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin /maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java /maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly /maven/components/trunk/maven-plugins/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean /maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin /maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy /maven/components/trunk/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb /maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea /maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install /maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar /maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin /maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia /maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test /maven/components/trunk/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war

Author: jdcasey
Date: Thu Apr 28 16:05:01 2005
New Revision: 165224

URL: http://svn.apache.org/viewcvs?rev=165224&view=rev
Log:
o Cleaned up field-level annotation support (especially descriptor extraction, generation, and building)
o Converted all "core" plugins (including maven-core-it-plugin) to use field-level annotations
o Removed generation of parameter descriptors for ${/#component.* param specifications.
o Added @readonly for parameters that cannot be overridden by user configuration (List override was dangerous here)
o Added validation against pom-derived configuration for @readonly parameters
o Fixed @parameter alias="" support...now configuration of the mojo instance actually will work with either the real param name or the alias. Would be nice to support multiple aliases, but that might require @alias annotations...
o Added [temporary?] support for null editable attributes for parameters, to support pre-built mojos from the repo.

Annotation support should be just about ready to go...

Modified:
    maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
    maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java
    maven/components/trunk/maven-plugins/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanPlugin.java
    maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/CompilerMojo.java
    maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/TestCompilerMojo.java
    maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
    maven/components/trunk/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java
    maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
    maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
    maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java
    maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
    maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/BeanGeneratorMojo.java
    maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java
    maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/JellyGeneratorMojo.java
    maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
    maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/ScpSiteDeployMojo.java
    maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java
    maven/components/trunk/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java

Modified: maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java (original)
+++ maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/CoreItMojo.java Thu Apr 28 16:05:01 2005
@@ -29,36 +29,30 @@
  * @phase process-sources
  *
  * @description Goal which cleans the build
- *
- * @parameter
- *  name="outputDirectory"
- *  type="String"
- *  required="true"
- *  validator=""
- *  expression="#project.build.directory"
- *  description=""
- * 
- * @parameter
- *  name="basedirAlignmentDirectory"
- *  type="java.io.File"
- *  required="true"
- *  validator=""
- *  expression="target/test-basedir-alignment"
- *  description=""
- *
- * @parameter name="pluginItem" type="String" required="false" validator="" description="" expression="" defaultValue="foo"
- * @parameter name="goalItem" type="String" required="false" validator="" description="" expression="bar"
  */
 public class CoreItMojo
     extends AbstractPlugin
 {
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     */
     private String outputDirectory;
 
+    /**
+     * @parameter expression="target/test-basedir-alignment"
+     */
     private File basedirAlignmentDirectory;
 
-    private String pluginItem;
+    /**
+     * @parameter
+     */
+    private String pluginItem = "foo";
 
-    private String goalItem;
+    /**
+     * @parameter
+     */
+    private String goalItem = "bar";
 
     public void execute()
         throws PluginExecutionException

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Thu Apr 28 16:05:01 2005
@@ -228,8 +228,8 @@
                 if ( StringUtils.isEmpty( pluginConfig.getVersion() ) )
                 {
                     // The model/project builder should have validated this already
-                    String message = "The maven plugin with groupId: '" + groupId + "' and artifactId: '" + artifactId +
-                        "' which was configured for use in this project does not have a version associated with it.";
+                    String message = "The maven plugin with groupId: '" + groupId + "' and artifactId: '" + artifactId
+                        + "' which was configured for use in this project does not have a version associated with it.";
                     throw new IllegalStateException( message );
                 }
                 else
@@ -247,13 +247,14 @@
             }
             catch ( ArtifactEnabledContainerException e )
             {
-                throw new PluginManagerException( "Error occurred in the artifact container attempting to download plugin " +
-                                                  groupId + ":" + artifactId, e );
+                throw new PluginManagerException(
+                                                  "Error occurred in the artifact container attempting to download plugin "
+                                                      + groupId + ":" + artifactId, e );
             }
             catch ( ArtifactResolutionException e )
             {
-                if ( groupId.equals( e.getGroupId() ) && artifactId.equals( e.getArtifactId() ) &&
-                    version.equals( e.getVersion() ) && "maven-plugin".equals( e.getType() ) )
+                if ( groupId.equals( e.getGroupId() ) && artifactId.equals( e.getArtifactId() )
+                    && version.equals( e.getVersion() ) && "maven-plugin".equals( e.getType() ) )
                 {
                     throw new PluginNotFoundException( groupId, artifactId, version, e );
                 }
@@ -264,8 +265,8 @@
             }
             catch ( ComponentLookupException e )
             {
-                throw new PluginManagerException(
-                    "Internal configuration error while retrieving " + groupId + ":" + artifactId, e );
+                throw new PluginManagerException( "Internal configuration error while retrieving " + groupId + ":"
+                    + artifactId, e );
             }
         }
     }
@@ -284,10 +285,8 @@
 
             MavenMetadataSource metadataSource = new MavenMetadataSource( artifactResolver, mavenProjectBuilder );
 
-            ( (ArtifactEnabledContainer) container ).addComponent( pluginArtifact, artifactResolver,
-                                                                   session.getPluginRepositories(),
-                                                                   session.getLocalRepository(), metadataSource,
-                                                                   artifactFilter );
+            ( (ArtifactEnabledContainer) container ).addComponent( pluginArtifact, artifactResolver, session
+                .getPluginRepositories(), session.getLocalRepository(), metadataSource, artifactFilter );
         }
         finally
         {
@@ -334,8 +333,8 @@
                 artifactResolver = (ArtifactResolver) container.lookup( ArtifactResolver.ROLE );
                 mavenProjectBuilder = (MavenProjectBuilder) container.lookup( MavenProjectBuilder.ROLE );
 
-                resolveTransitiveDependencies( session, artifactResolver, mavenProjectBuilder,
-                                               mojoDescriptor.getRequiresDependencyResolution() );
+                resolveTransitiveDependencies( session, artifactResolver, mavenProjectBuilder, mojoDescriptor
+                    .getRequiresDependencyResolution() );
                 downloadDependencies( session, artifactResolver );
             }
             catch ( ComponentLookupException e )
@@ -381,37 +380,42 @@
             Xpp3Dom dom = session.getProject().getGoalConfiguration( PluginDescriptor.getPluginIdFromGoal( goalName ),
                                                                      goalId );
 
-            PlexusConfiguration configuration;
+            PlexusConfiguration pomConfiguration;
             if ( dom == null )
             {
-                configuration = new XmlPlexusConfiguration( "configuration" );
+                pomConfiguration = new XmlPlexusConfiguration( "configuration" );
             }
             else
             {
-                configuration = new XmlPlexusConfiguration( dom );
+                pomConfiguration = new XmlPlexusConfiguration( dom );
+
+                // Validate against non-editable (@readonly) parameters, to make sure users aren't trying to 
+                // override in the POM.
+                validatePomConfiguration( mojoDescriptor, pomConfiguration );
             }
 
             ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session, pathTranslator );
 
-            configuration = mergeConfiguration( configuration, mojoDescriptor.getConfiguration() );
+            PlexusConfiguration mergedConfiguration = mergeConfiguration( pomConfiguration, mojoDescriptor
+                .getConfiguration() );
 
             try
             {
                 if ( newMojoTechnique )
                 {
-                    Map map = getPluginConfigurationFromExpressions( mojoDescriptor, configuration,
+                    Map map = getPluginConfigurationFromExpressions( mojoDescriptor, mergedConfiguration,
                                                                      expressionEvaluator );
 
-                    populatePluginFields( plugin, configuration, map, expressionEvaluator );
+                    populatePluginFields( plugin, pomConfiguration, map, expressionEvaluator );
                 }
                 else
                 {
                     getLogger().warn( "WARNING: The mojo " + mojoDescriptor.getId() + " is using the OLD API" );
 
-                    Map map = getPluginConfigurationFromExpressions( mojoDescriptor, configuration,
+                    Map map = getPluginConfigurationFromExpressions( mojoDescriptor, mergedConfiguration,
                                                                      expressionEvaluator );
 
-                    request = createPluginRequest( configuration, map );
+                    request = createPluginRequest( pomConfiguration, map );
                 }
             }
             catch ( ExpressionEvaluationException e )
@@ -461,6 +465,47 @@
         }
     }
 
+    private void validatePomConfiguration( MojoDescriptor goal, PlexusConfiguration pomConfiguration )
+        throws PluginConfigurationException
+    {
+        List parameters = goal.getParameters();
+
+        for ( int i = 0; i < parameters.size(); i++ )
+        {
+            Parameter parameter = (Parameter) parameters.get( i );
+
+            boolean editable = parameter.isEditable();
+
+            // the key for the configuration map we're building.
+            String key = parameter.getName();
+
+            // the key used to lookup the parameter in the config from the POM, etc.
+            String lookupKey = parameter.getAlias();
+
+            if ( StringUtils.isEmpty( lookupKey ) )
+            {
+                lookupKey = key;
+            }
+
+            // Make sure the parameter is either editable/configurable, or else is NOT specified in the POM 
+            if ( !editable
+                && ( pomConfiguration.getChild( lookupKey, false ) != null || pomConfiguration.getChild( key, false ) != null ) )
+            {
+                StringBuffer errorMessage = new StringBuffer().append( "ERROR: Cannot override read-only parameter: " )
+                    .append( key );
+
+                if ( !lookupKey.equals( key ) )
+                {
+                    errorMessage.append( " (with alias: " ).append( lookupKey ).append( ")" );
+                }
+
+                errorMessage.append( " in goal: " ).append( goal.getId() );
+
+                throw new PluginConfigurationException( errorMessage.toString() );
+            }
+        }
+    }
+
     private PlexusConfiguration mergeConfiguration( PlexusConfiguration dominant, PlexusConfiguration configuration )
     {
         // TODO: share with mergeXpp3Dom
@@ -551,7 +596,7 @@
     }
 
     private void populatePluginFields( Plugin plugin, PlexusConfiguration configuration, Map map,
-                                       ExpressionEvaluator expressionEvaluator )
+                                      ExpressionEvaluator expressionEvaluator )
         throws PluginConfigurationException
     {
         try
@@ -631,8 +676,8 @@
     /**
      * @deprecated [JC] in favor of what?
      */
-    private Map getPluginConfigurationFromExpressions( MojoDescriptor goal, PlexusConfiguration configuration,
-                                                       ExpressionEvaluator expressionEvaluator )
+    private Map getPluginConfigurationFromExpressions( MojoDescriptor goal, PlexusConfiguration mergedConfiguration,
+                                                      ExpressionEvaluator expressionEvaluator )
         throws ExpressionEvaluationException, PluginConfigurationException
     {
         List parameters = goal.getParameters();
@@ -643,33 +688,55 @@
         {
             Parameter parameter = (Parameter) parameters.get( i );
 
+            boolean editable = parameter.isEditable();
+
             // the key for the configuration map we're building.
             String key = parameter.getName();
-            
+
             // the key used to lookup the parameter in the config from the POM, etc.
             String lookupKey = parameter.getAlias();
-            
+
             if ( StringUtils.isEmpty( lookupKey ) )
             {
                 lookupKey = key;
             }
 
             String expression;
-            if ( configuration.getChild( lookupKey, false ) == null )
+
+            boolean foundInConfiguration = false;
+
+            if ( mergedConfiguration.getChild( lookupKey, false ) != null )
             {
-                expression = parameter.getExpression();
+                expression = mergedConfiguration.getChild( lookupKey, false ).getValue( null );
+                foundInConfiguration = true;
+            }
+            else if ( mergedConfiguration.getChild( key, false ) != null )
+            {
+                expression = mergedConfiguration.getChild( key, false ).getValue( null );
+                foundInConfiguration = true;
             }
             else
             {
-                expression = configuration.getChild( lookupKey, false ).getValue( null );
+                expression = parameter.getExpression();
+            }
+
+            if ( foundInConfiguration && expression != null && parameter.getDeprecated() != null )
+            {
+                PlexusConfiguration goalConfiguration = goal.getConfiguration();
 
-                if ( expression != null && parameter.getDeprecated() != null )
+                if ( !expression.equals( goalConfiguration.getChild( lookupKey, false ).getValue( null ) )
+                    && !expression.equals( goalConfiguration.getChild( key, false ).getValue( null ) ) )
                 {
-                    if ( !expression.equals( goal.getConfiguration().getChild( lookupKey, false ).getValue( null ) ) )
+                    StringBuffer message = new StringBuffer().append( "DEPRECATED: " ).append( key );
+
+                    if ( !lookupKey.equals( key ) )
                     {
-                        getLogger().warn(
-                            "DEPRECATED: " + parameter.getName() + " is deprecated.\n\t" + parameter.getDeprecated() );
+                        message.append( " (aliased to " ).append( lookupKey ).append( ")" );
                     }
+
+                    message.append( " is deprecated.\n\t" ).append( parameter.getDeprecated() );
+
+                    getLogger().warn( message.toString() );
                 }
             }
 
@@ -696,7 +763,7 @@
 
             if ( value == null && parameter.isRequired() )
             {
-                throw new PluginConfigurationException( createPluginParameterRequiredMessage( goal, parameter ) );
+                throw new PluginConfigurationException( createPluginParameterRequiredMessage( goal, parameter, expression ) );
             }
 
             map.put( key, value );
@@ -704,7 +771,7 @@
         return map;
     }
 
-    public static String createPluginParameterRequiredMessage( MojoDescriptor mojo, Parameter parameter )
+    public static String createPluginParameterRequiredMessage( MojoDescriptor mojo, Parameter parameter, String expression )
     {
         StringBuffer message = new StringBuffer();
 
@@ -712,6 +779,7 @@
         message.append( "' parameter is required for the execution of the " );
         message.append( mojo.getId() );
         message.append( " mojo and cannot be null." );
+        message.append( " The retrieval expression was: " ).append( expression );
 
         return message.toString();
     }
@@ -730,11 +798,20 @@
     {
         // TODO: configure this from bootstrap or scan lib
         // TODO: Note: maven-plugin just re-added until all plugins are switched over...
-        artifactFilter = new ExclusionSetFilter( new String[]{"maven-core", "maven-artifact", "maven-model",
-                                                              "maven-settings", "maven-monitor", "maven-plugin-api",
-                                                              "maven-plugin-descriptor", "plexus-container-default",
-                                                              "maven-project", "plexus-container-artifact",
-                                                              "wagon-provider-api", "classworlds", "maven-plugin"} );
+        artifactFilter = new ExclusionSetFilter( new String[] {
+            "maven-core",
+            "maven-artifact",
+            "maven-model",
+            "maven-settings",
+            "maven-monitor",
+            "maven-plugin-api",
+            "maven-plugin-descriptor",
+            "plexus-container-default",
+            "maven-project",
+            "plexus-container-artifact",
+            "wagon-provider-api",
+            "classworlds",
+            "maven-plugin" } );
     }
 
     // ----------------------------------------------------------------------
@@ -742,7 +819,7 @@
     // ----------------------------------------------------------------------
 
     private void resolveTransitiveDependencies( MavenSession context, ArtifactResolver artifactResolver,
-                                                MavenProjectBuilder mavenProjectBuilder, String scope )
+                                               MavenProjectBuilder mavenProjectBuilder, String scope )
         throws ArtifactResolutionException
     {
         MavenProject project = context.getProject();
@@ -753,10 +830,8 @@
 
         boolean systemOnline = !context.getSettings().getActiveProfile().isOffline();
 
-        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getArtifacts(),
-                                                                                context.getRemoteRepositories(),
-                                                                                context.getLocalRepository(),
-                                                                                sourceReader, filter );
+        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getArtifacts(), context
+            .getRemoteRepositories(), context.getLocalRepository(), sourceReader, filter );
 
         project.addArtifacts( result.getArtifacts().values(), artifactFactory );
     }
@@ -777,5 +852,4 @@
         }
     }
 
-}
-
+}
\ No newline at end of file

Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java Thu Apr 28 16:05:01 2005
@@ -29,6 +29,8 @@
     private String type;
 
     private boolean required;
+    
+    private boolean editable = true;
 
     private String validator;
 
@@ -142,5 +144,15 @@
     public void setAlias( String alias )
     {
         this.alias = alias;
+    }
+
+    public boolean isEditable()
+    {
+        return editable;
+    }
+
+    public void setEditable( boolean editable )
+    {
+        this.editable = editable;
     }
 }

Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java Thu Apr 28 16:05:01 2005
@@ -142,16 +142,27 @@
             Parameter parameter = new Parameter();
 
             parameter.setName( d.getChild( "name" ).getValue() );
+            
+            parameter.setAlias( d.getChild( "alias" ).getValue() );
 
             parameter.setType( d.getChild( "type" ).getValue() );
 
-            String s = d.getChild( "required" ).getValue();
+            String required = d.getChild( "required" ).getValue();
 
-            if ( s != null )
+            parameter.setRequired( "true".equals( required ) );
+            
+            PlexusConfiguration editableConfig = d.getChild("editable");
+            
+            // we need the null check for pre-build legacy plugins...
+            if(editableConfig != null)
             {
-                parameter.setRequired( s.equals( "true" ) ? true : false );
+                String editable = d.getChild("editable").getValue();
+                
+                System.out.println("Value of editable attribute for parameter: " + parameter.getName() + " is: " + editable);
+                
+                parameter.setEditable( editable == null || "true".equals( editable ) );
             }
-
+            
             parameter.setValidator( d.getChild( "validator" ).getValue() );
 
             parameter.setDescription( d.getChild( "description" ).getValue() );

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java Thu Apr 28 16:05:01 2005
@@ -20,6 +20,7 @@
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.tools.plugin.util.PluginUtils;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
 import org.codehaus.plexus.util.xml.XMLWriter;
 
@@ -178,50 +179,57 @@
         {
             Parameter parameter = (Parameter) parameters.get( j );
 
-            w.startElement( "parameter" );
-
-            element( w, "name", parameter.getName() );
+            String expression = parameter.getExpression();
             
-            if( parameter.getAlias() != null )
-            {
-                element( w, "alias", parameter.getAlias() );
-            }
-
-            element( w, "type", parameter.getType() );
-
-            if ( parameter.getDeprecated() != null )
+            if ( StringUtils.isNotEmpty( expression )
+                && ( expression.startsWith( "${component." ) || expression.startsWith( "#component." ) ) )
             {
-                element( w, "deprecated", parameter.getDeprecated() );
-            }
-
-            element( w, "validator", parameter.getValidator() );
+                // treat it as a component...a requirement, in other words.
 
-            String value = null;
-            if ( parameter.getExpression().startsWith( "#component." ) ||
-                parameter.getExpression().startsWith( "${component." ) )
-            {
                 requirements.add( parameter );
             }
             else
             {
+                // treat it as a normal parameter.
+
+                w.startElement( "parameter" );
+
+                element( w, "name", parameter.getName() );
+
+                if ( parameter.getAlias() != null )
+                {
+                    element( w, "alias", parameter.getAlias() );
+                }
+
+                element( w, "type", parameter.getType() );
+
+                if ( parameter.getDeprecated() != null )
+                {
+                    element( w, "deprecated", parameter.getDeprecated() );
+                }
+
+                // TODO: do we still need this?
+                element( w, "validator", parameter.getValidator() );
+
                 element( w, "required", Boolean.toString( parameter.isRequired() ) );
 
-                value = parameter.getExpression();
-            }
+                element( w, "editable", Boolean.toString( parameter.isEditable() ) );
 
-            element( w, "description", parameter.getDescription() );
+                element( w, "description", parameter.getDescription() );
 
-            if ( value == null || value.length() == 0 )
-            {
-                value = parameter.getDefaultValue();
-            }
+                if ( StringUtils.isEmpty( expression ) )
+                {
+                    expression = parameter.getDefaultValue();
+                }
 
-            if ( value != null && value.length() > 0 )
-            {
-                configuration.put( parameter, value );
+                if ( expression != null && expression.length() > 0 )
+                {
+                    configuration.put( parameter, expression );
+                }
+
+                w.endElement();
             }
 
-            w.endElement();
         }
 
         w.endElement();

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java Thu Apr 28 16:05:01 2005
@@ -60,13 +60,15 @@
     public static final String MAVEN_PLUGIN_MODE = "maven.plugin.mode";
 
     public static final String PARAMETER = "parameter";
-    
+
     public static final String PARAMETER_EXPRESSION = "expression";
-    
+
     public static final String REQUIRED = "required";
 
     public static final String DEPRECATED = "deprecated";
 
+    public static final String READONLY = "readonly";
+
     public static final String GOAL = "goal";
 
     public static final String PHASE = "phase";
@@ -98,13 +100,6 @@
             throw new InvalidParameterException( "type", i );
         }
 
-        String expression = parameter.getExpression();
-
-        if ( expression == null )
-        {
-            throw new InvalidParameterException( "expression", i );
-        }
-
         // TODO: remove when backward compatibility is no longer an issue.
         String description = parameter.getDescription();
 
@@ -261,10 +256,10 @@
                     System.err.println( message );
                 }
 
-                rawParams.put( tag.getNamedParameter("name"), tag );
+                rawParams.put( tag.getNamedParameter( "name" ), tag );
             }
         }
-        
+
         extractFieldParameterTags( javaClass, rawParams );
 
         Set parameters = new HashSet();
@@ -273,9 +268,9 @@
         {
             Map.Entry entry = (Entry) it.next();
             String paramName = (String) entry.getKey();
-            
+
             Object val = entry.getValue();
-            
+
             JavaField field = null;
             DocletTag parameter = null;
 
@@ -301,26 +296,28 @@
 
                 pd.setType( parameter.getNamedParameter( "type" ) );
 
-                pd.setDefaultValue( parameter.getNamedParameter( "default" ) );
-                
                 pd.setDescription( parameter.getNamedParameter( "description" ) );
+
+                pd.setRequired( parameter.getNamedParameter( REQUIRED ).equals( "true" ) ? true : false );
+
+                pd.setDeprecated( parameter.getNamedParameter( DEPRECATED ) );
                 
-                pd.setRequired( parameter.getNamedParameter( "required" ).equals( "true" ) ? true : false );
-                
-                pd.setDeprecated( parameter.getNamedParameter( "deprecated" ) );
+                pd.setDefaultValue( parameter.getNamedParameter( "default" ) );
             }
             else
             {
                 pd.setName( paramName );
 
                 pd.setType( field.getType().getValue() );
-                
+
                 pd.setDescription( field.getComment() );
-                
-                pd.setRequired( field.getTagByName(REQUIRED) != null );
+
+                pd.setRequired( field.getTagByName( REQUIRED ) != null );
+
+                pd.setEditable( field.getTagByName( READONLY ) == null );
                 
                 DocletTag deprecationTag = field.getTagByName( DEPRECATED );
-                if( deprecationTag != null)
+                if ( deprecationTag != null )
                 {
                     pd.setDeprecated( deprecationTag.getValue() );
                 }

Modified: maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/AssemblyMojo.java Thu Apr 28 16:05:01 2005
@@ -55,31 +55,51 @@
  * @goal assembly
  * @requiresDependencyResolution test
  * @description assemble an application bundle or distribution
- * @parameter name="basedir" type="String" required="true" validator="" expression="#basedir" description=""
- * @parameter name="outputDirectory" type="java.io.File" required="true" validator="" expression="#project.build.directory" description=""
- * @parameter name="workDirectory" type="java.io.File" required="true" validator="" expression="#project.build.directory/assembly/work" description="Directory to unpack JARs into if needed"
- * @parameter name="descriptor" type="java.io.File" required="false" validator="" expression="#maven.assembly.descriptor" description=""
- * @parameter name="finalName" type="String" required="true" validator="" expression="#project.build.finalName" description=""
- * @parameter name="descriptorId" type="String" required="false" validator="" expression="#maven.assembly.descriptorId" description=""
- * @parameter name="dependencies" type="java.util.Set" required="false" validator="" expression="#project.artifacts" description=""
  */
 public class AssemblyMojo
     extends AbstractPlugin
 {
     private static final String[] EMPTY_STRING_ARRAY = {};
 
+    /**
+    * @parameter expression="${basedir}"
+    * @required
+    */
     private String basedir;
 
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     */
     private File outputDirectory;
 
+    /**
+     * @parameter expression="${maven.assembly.descriptor}"
+     */
     private File descriptor;
 
+    /**
+     * @parameter expression="${maven.assembly.descriptorId}"
+     */
     private String descriptorId;
 
+    /**
+     * @parameter expression="${project.build.finalName}"
+     * @required
+     */
     private String finalName;
 
+    /**
+     * @parameter expression="${project.artifacts}"
+     */
     private Set dependencies;
 
+    /** 
+     * Directory to unpack JARs into if needed
+     * 
+     * @parameter expression="${project.build.directory}/assembly/work"
+     * @required
+     */
     private File workDirectory;
 
     public void execute()

Modified: maven/components/trunk/maven-plugins/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanPlugin.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanPlugin.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanPlugin.java (original)
+++ maven/components/trunk/maven-plugins/maven-clean-plugin/src/main/java/org/apache/maven/plugin/clean/CleanPlugin.java Thu Apr 28 16:05:01 2005
@@ -26,18 +26,19 @@
  * @version $Id$
  * @goal clean
  * @description Goal which cleans the build
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="${project.build.directory}"
- * description=""
  */
 public class CleanPlugin
     extends AbstractPlugin
 {
     private static final int DELETE_RETRY_SLEEP_MILLIS = 10;
 
+    /** 
+     * This is where compiled classes go.
+     * 
+     * @parameter expression="${project.build.directory}"
+     * @required
+     * @readonly
+     */
     private String outputDirectory;
 
     // TODO: not in the descriptor previously

Modified: maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/CompilerMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/CompilerMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/CompilerMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/CompilerMojo.java Thu Apr 28 16:05:01 2005
@@ -14,21 +14,7 @@
  * the License.
  */
 
-import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
-import org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner;
-import org.codehaus.plexus.compiler.util.scan.StaleSourceScanner;
-import org.codehaus.plexus.compiler.util.scan.mapping.SuffixMapping;
-import org.codehaus.plexus.compiler.Compiler;
-import org.codehaus.plexus.compiler.CompilerConfiguration;
-import org.codehaus.plexus.compiler.CompilerError;
-import org.codehaus.plexus.compiler.javac.JavacCompiler;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
@@ -36,191 +22,47 @@
  * @goal compile
  * @requiresDependencyResolution compile
  * @description Compiles application sources
- * @parameter name="compileSourceRoots" type="java.util.List" required="true" validator=""
- * expression="${project.compileSourceRoots}" description=""
- * @parameter name="outputDirectory" type="String" required="true" validator=""
- * expression="${project.build.outputDirectory}" description=""
- * @parameter name="classpathElements" type="List" required="true" validator=""
- * expression="${project.compileClasspathElements}" description=""
- * @parameter name="debug" type="boolean" required="false" validator=""
- * expression="${maven.compiler.debug}" description="Whether to include debugging
- * information in the compiled class files; the default value is false"
  * @todo change debug parameter type to Boolean
- * @parameter name="source" type="String" required="false" expression="${source}" validator=""
- * description="The -source argument for the Java compiler"
- * @parameter name="target" type="String" required="false" expression="${target}" validator=""
- * description="The -target argument for the Java compiler"
- * @parameter name="staleMillis" type="long" required="false" expression="${lastModGranularityMs}"
- * validator="" description="The granularity in milliseconds of the last modification
- * date for testing whether a source needs recompilation"
  * @todo change staleMillis parameter type to Long
  */
 
 public class CompilerMojo
-    extends AbstractPlugin
+    extends AbstractCompilerMojo
 {
-    private Compiler compiler = new JavacCompiler();
-
-    // TODO: use boolean when supported
-    private String debug = Boolean.TRUE.toString();
-
+    /**
+     * @parameter expression="${project.compileSourceRoots}"
+     * @required
+     * @readonly
+     */
     private List compileSourceRoots;
-
+    
+    /**
+     * @parameter expression="${project.compileClasspathElements}"
+     * @required
+     * @readonly
+     */
     private List classpathElements;
-
+    
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     * @readonly
+     */
     private String outputDirectory;
-
-    private String source;
-
-    private String target;
-
-    // TODO: Use long when supported
-    private String staleMillis = "0";
-
-    public void execute()
-        throws PluginExecutionException
+    
+    protected List getCompileSourceRoots()
     {
-        // ----------------------------------------------------------------------
-        //
-        // ----------------------------------------------------------------------
-
-        compileSourceRoots = removeEmptyCompileSourceRoots( compileSourceRoots );
-        if ( compileSourceRoots.isEmpty() )
-        {
-            getLog().info( "No sources to compile" );
-            return;
-        }
-
-        CompilerConfiguration compilerConfiguration = new CompilerConfiguration();
-
-        compilerConfiguration.setOutputLocation( outputDirectory );
-        compilerConfiguration.setClasspathEntries( classpathElements );
-        compilerConfiguration.setSourceLocations( compileSourceRoots );
-
-        // TODO: have an option to always compile (without need to clean)
-        Set staleSources = computeStaleSources();
-
-        if ( staleSources.isEmpty() )
-        {
-            getLog().info( "Nothing to compile - all classes are up to date" );
-            return;
-        }
-        else
-        {
-            compilerConfiguration.setSourceFiles( staleSources );
-        }
-
-        if ( source != null )
-        {
-            compilerConfiguration.addCompilerOption( "-source", source );
-        }
-
-        if ( target != null )
-        {
-            compilerConfiguration.addCompilerOption( "-target", target );
-        }
-
-        if ( debug != null && "true".equals( debug ) )
-        {
-            compilerConfiguration.setDebug( true );
-        }
-
-        List messages = null;
-        try
-        {
-            messages = compiler.compile( compilerConfiguration );
-        }
-        catch ( Exception e )
-        {
-            // TODO: don't catch Exception
-            throw new PluginExecutionException( "Fatal error compiling", e );
-        }
-
-        boolean compilationError = false;
-
-        for ( Iterator i = messages.iterator(); i.hasNext(); )
-        {
-            CompilerError message = (CompilerError) i.next();
-
-            if ( message.isError() )
-            {
-                compilationError = true;
-            }
-        }
-
-        if ( compilationError )
-        {
-            throw new CompilationFailureException( messages );
-        }
+        return compileSourceRoots;
     }
 
-    private Set computeStaleSources()
-        throws PluginExecutionException
+    protected List getClasspathElements()
     {
-        long staleTime = 0;
-
-        if ( staleMillis != null && staleMillis.length() > 0 )
-        {
-            try
-            {
-                staleTime = Long.parseLong( staleMillis );
-            }
-            catch ( NumberFormatException e )
-            {
-                throw new PluginExecutionException( "Invalid staleMillis plugin parameter value: \'" + staleMillis +
-                                                    "\'", e );
-            }
-
-        }
-        SuffixMapping mapping = new SuffixMapping( ".java", ".class" );
-
-        SourceInclusionScanner scanner = new StaleSourceScanner( staleTime );
-
-        scanner.addSourceMapping( mapping );
-
-        File outDir = new File( outputDirectory );
-
-        Set staleSources = new HashSet();
-
-        for ( Iterator it = compileSourceRoots.iterator(); it.hasNext(); )
-        {
-            String sourceRoot = (String) it.next();
-
-            File rootFile = new File( sourceRoot );
-
-            try
-            {
-                staleSources.addAll( scanner.getIncludedSources( rootFile, outDir ) );
-            }
-            catch ( InclusionScanException e )
-            {
-                throw new PluginExecutionException( "Error scanning source root: \'" + sourceRoot +
-                                                    "\' for stale files to recompile.", e );
-            }
-        }
-
-        return staleSources;
+        return classpathElements;
     }
 
-    /**
-     * @todo also in ant plugin. This should be resolved at some point so that it does not need to
-     * be calculated continuously - or should the plugins accept empty source roots as is?
-     */
-    private static List removeEmptyCompileSourceRoots( List compileSourceRootsList )
+    protected String getOutputDirectory()
     {
-        List newCompileSourceRootsList = new ArrayList();
-        if ( compileSourceRootsList != null )
-        {
-            // copy as I may be modifying it
-            for ( Iterator i = compileSourceRootsList.iterator(); i.hasNext(); )
-            {
-                String srcDir = (String) i.next();
-                if ( !newCompileSourceRootsList.contains( srcDir ) && new File( srcDir ).exists() )
-                {
-                    newCompileSourceRootsList.add( srcDir );
-                }
-            }
-        }
-        return newCompileSourceRootsList;
+        return outputDirectory;
     }
+
 }

Modified: maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/TestCompilerMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/TestCompilerMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/TestCompilerMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/TestCompilerMojo.java Thu Apr 28 16:05:01 2005
@@ -1,5 +1,7 @@
 package org.apache.maven.plugin;
 
+import java.util.List;
+
 /*
  * Copyright 2001-2005 The Apache Software Foundation.
  *
@@ -22,32 +24,44 @@
  * @goal testCompile
  * @description Compiles test sources
  * @requiresDependencyResolution test
- * @parameter name="compileSourceRoots"
- * type="java.util.List"
- * required="true"
- * validator=""
- * expression="${project.testCompileSourceRoots}"
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="${project.build.testOutputDirectory}"
- * description=""
- * @parameter name="classpathElements"
- * type="List"
- * required="true"
- * validator=""
- * expression="${project.testClasspathElements}"
- * description=""
- * @parameter name="debug"
- * type="String"
- * required="false"
- * validator=""
- * expression="${maven.compiler.debug}"
- * description="Whether to include debugging information in the compiled class files; the default value is false"
  */
 public class TestCompilerMojo
-    extends CompilerMojo
+    extends AbstractCompilerMojo
 {
+    /**
+     * @parameter expression="${project.testCompileSourceRoots}"
+     * @required
+     * @readonly
+     */
+    private List compileSourceRoots;
+
+    /**
+     * @parameter expression="${project.testClasspathElements}"
+     * @required
+     * @readonly
+     */
+    private List classpathElements;
+
+    /**
+     * @parameter expression="${project.build.testOutputDirectory}"
+     * @required
+     * @readonly
+     */
+    private String outputDirectory;
+
+    protected List getCompileSourceRoots()
+    {
+        return compileSourceRoots;
+    }
+
+    protected List getClasspathElements()
+    {
+        return classpathElements;
+    }
+
+    protected String getOutputDirectory()
+    {
+        return outputDirectory;
+    }
+
 }

Modified: maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java Thu Apr 28 16:05:01 2005
@@ -24,50 +24,88 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.plugin.AbstractPlugin;
 import org.apache.maven.plugin.PluginExecutionException;
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
 
 import java.io.File;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @author <a href="mailto:jdcasey@apache.org">John Casey (refactoring only)</a>
  * @version $Id$
  * @goal deploy
  * @description deploys an artifact to remote repository
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="${project}"
- * description=""
- * @parameter name="deployer"
- * type="org.apache.maven.artifact.deployer.ArtifactDeployer"
- * required="true"
- * validator=""
- * expression="${component.org.apache.maven.artifact.deployer.ArtifactDeployer}"
- * description=""
- * @parameter name="deploymentRepository"
- * type="org.apache.maven.artifact.repository.ArtifactRepository"
- * required="true"
- * validator=""
- * expression="${project.distributionManagementArtifactRepository}"
- * description=""
- * @parameter name="localRepository"
- * type="org.apache.maven.artifact.repository.ArtifactRepository"
- * required="true"
- * validator=""
- * expression="${localRepository}"
- * description=""
  */
 public class DeployMojo
     extends AbstractPlugin
 {
-    private MavenProject project;
 
+    /**
+     * @parameter expression="${project.groupId}"
+     * @required
+     * @readonly
+     */
+    private String groupId;
+
+    /**
+     * @parameter expression="${project.artifactId}"
+     * @required
+     * @readonly
+     */
+    private String artifactId;
+
+    /**
+     * @parameter expression="${project.version}"
+     * @required
+     * @readonly
+     */
+    private String version;
+
+    /**
+     * @parameter expression="${project.packaging}"
+     * @required
+     * @readonly
+     */
+    private String packaging;
+
+    /**
+     * @parameter expression="${project.file.parentFile}"
+     * @required
+     * @readonly
+     */
+    private File parentDir;
+
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     * @readonly
+     */
+    private String buildDirectory;
+
+    /**
+     * @parameter alias="archiveName" expression="${project.build.finalName}"
+     * @required
+     */
+    private String finalName;
+
+    /**
+     * @parameter expression="${component.org.apache.maven.artifact.deployer.ArtifactDeployer}"
+     * @required
+     * @readonly
+     */
     private ArtifactDeployer deployer;
 
+    /**
+     * @parameter expression="${project.distributionManagementArtifactRepository}"
+     * @required
+     * @readonly
+     */
     private ArtifactRepository deploymentRepository;
 
+    /**
+     * @parameter expression="${localRepository}"
+     * @required
+     * @readonly
+     */
     private ArtifactRepository localRepository;
 
     public void execute()
@@ -75,16 +113,15 @@
     {
         if ( deploymentRepository == null )
         {
-            String msg = "Deployment failed: repository element was not specified in the pom inside" +
-                " distributionManagement element";
+            String msg = "Deployment failed: repository element was not specified in the pom inside"
+                + " distributionManagement element";
             throw new PluginExecutionException( msg );
         }
 
         // Deploy the POM
-        Artifact artifact = new DefaultArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(),
-                                                 project.getPackaging() );
-        boolean isPomArtifact = "pom".equals( project.getPackaging() );
-        File pom = new File( project.getFile().getParentFile(), "pom.xml" );
+        Artifact artifact = new DefaultArtifact( groupId, artifactId, version, packaging );
+        boolean isPomArtifact = "pom".equals( packaging );
+        File pom = new File( parentDir, "pom.xml" );
         if ( !isPomArtifact )
         {
             ArtifactMetadata metadata = new ProjectArtifactMetadata( artifact, pom );
@@ -95,8 +132,7 @@
         {
             if ( !isPomArtifact )
             {
-                deployer.deploy( project.getBuild().getDirectory(), project.getBuild().getFinalName(), artifact,
-                                 deploymentRepository, localRepository );
+                deployer.deploy( buildDirectory, finalName, artifact, deploymentRepository, localRepository );
             }
             else
             {

Modified: maven/components/trunk/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-ejb-plugin/src/main/java/org/apache/maven/plugin/ejb/EjbMojo.java Thu Apr 28 16:05:01 2005
@@ -30,43 +30,6 @@
  * @goal ejb
  * @phase package
  * @description build an ejb
- * @parameter name="jarName"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.finalName"
- * description=""
- * @parameter name="archive"
- * type=""
- * required="false"
- * expression=""
- * validator=""
- * description=""
- * @parameter name="generateClient"
- * type="String"
- * required="false"
- * validator=""
- * expression=""
- * default="false"
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.outputDirectory"
- * description=""
- * @parameter name="basedir"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory"
- * description=""
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="#project"
- * description="current MavenProject instance"
  */
 public class EjbMojo
     extends AbstractPlugin
@@ -79,20 +42,42 @@
 
     /**
      * @todo File instead
+     * 
+     * @parameter expression="${project.build.directory}"
+     * @required
+     * @readonly
      */
     private String basedir;
 
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     */
     private String outputDirectory;
 
+    /**
+     * @parameter expression="${project.build.finalName}"
+     * @required
+     */
     private String jarName;
 
     /**
      * @todo boolean instead
+     * 
+     * @parameter
      */
-    private String generateClient;
+    private String generateClient = Boolean.FALSE.toString();
 
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
     private MavenProject project;
 
+    /**
+     * @parameter
+     */
     private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
 
     /**

Modified: maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaMojo.java Thu Apr 28 16:05:01 2005
@@ -41,17 +41,16 @@
  * @executePhase generate-sources
  * @requiresDependencyResolution test
  * @description Goal for generating IDEA files from a POM
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="#project"
- * description=""
  * @todo use dom4j or something. Xpp3Dom can't cope properly with entities and so on
  */
 public class IdeaMojo
     extends AbstractPlugin
 {
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
     private MavenProject project;
 
     public void execute()

Modified: maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java Thu Apr 28 16:05:01 2005
@@ -24,7 +24,6 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.plugin.AbstractPlugin;
 import org.apache.maven.plugin.PluginExecutionException;
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
 
 import java.io.File;
@@ -34,42 +33,80 @@
  * @version $Id$
  * @goal install
  * @description installs project's main artifact in local repository
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="${project}"
- * description=""
- * @parameter name="installer"
- * type="org.apache.maven.artifact.installer.ArtifactInstaller"
- * required="true"
- * validator=""
- * expression="${component.org.apache.maven.artifact.installer.ArtifactInstaller}"
- * description=""
- * @parameter name="localRepository"
- * type="org.apache.maven.artifact.repository.ArtifactRepository"
- * required="true"
- * validator=""
- * expression="${localRepository}"
- * description=""
  */
 public class InstallMojo
     extends AbstractPlugin
 {
-    private MavenProject project;
-
+    
+    /**
+     * @parameter expression="${project.groupId}"
+     * @required
+     * @readonly
+     */
+    private String groupId;
+
+    /**
+     * @parameter expression="${project.artifactId}"
+     * @required
+     * @readonly
+     */
+    private String artifactId;
+
+    /**
+     * @parameter expression="${project.version}"
+     * @required
+     * @readonly
+     */
+    private String version;
+
+    /**
+     * @parameter expression="${project.packaging}"
+     * @required
+     * @readonly
+     */
+    private String packaging;
+
+    /**
+     * @parameter expression="${project.file.parentFile}"
+     * @required
+     * @readonly
+     */
+    private File parentDir;
+
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     * @readonly
+     */
+    private String buildDirectory;
+
+    /**
+     * @parameter alias="archiveName" expression="${project.build.finalName}"
+     * @required
+     */
+    private String finalName;
+
+    /**
+     * @parameter expression="${component.org.apache.maven.artifact.installer.ArtifactInstaller}"
+     * @required
+     * @readonly
+     */
     private ArtifactInstaller installer;
 
+    /**
+     * @parameter expression="${localRepository}"
+     * @required
+     * @readonly
+     */
     private ArtifactRepository localRepository;
 
     public void execute()
         throws PluginExecutionException
     {
-        Artifact artifact = new DefaultArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(),
-                                                 project.getPackaging() );
+        Artifact artifact = new DefaultArtifact( groupId, artifactId, version, packaging );
 
-        boolean isPomArtifact = "pom".equals( project.getPackaging() );
-        File pom = new File( project.getFile().getParentFile(), "pom.xml" );
+        boolean isPomArtifact = "pom".equals( packaging );
+        File pom = new File( parentDir, "pom.xml" );
         if ( !isPomArtifact )
         {
             ArtifactMetadata metadata = new ProjectArtifactMetadata( artifact, pom );
@@ -81,8 +118,7 @@
             if ( !isPomArtifact )
             {
                 // TODO: would be something nice to get back from the project to get the full filename (the OGNL feedback thing)
-                installer.install( project.getBuild().getDirectory(), project.getBuild().getFinalName(), artifact,
-                                   localRepository );
+                installer.install( buildDirectory, finalName, artifact, localRepository );
             }
             else
             {

Modified: maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-jar-plugin/src/main/java/org/apache/maven/plugin/jar/JarMojo.java Thu Apr 28 16:05:01 2005
@@ -30,55 +30,47 @@
  * @goal jar
  * @phase package
  * @description build a jar
- * @parameter name="jarName"
- * type="String"
- * required="true"
- * validator=""
- * expression="${project.build.finalName}"
- * description=""
- * @parameter name="archive"
- * type=""
- * required="false"
- * expression=""
- * validator=""
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="${project.build.outputDirectory}"
- * description=""
- * @parameter name="basedir"
- * type="String"
- * required="true"
- * validator=""
- * expression="${project.build.directory}"
- * description=""
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="${project}"
- * description="current MavenProject instance"
  */
 public class JarMojo
     extends AbstractPlugin
 {
+    
+    private static final String[] DEFAULT_EXCLUDES = new String[]{"**/package.html"};
+
+    private static final String[] DEFAULT_INCLUDES = new String[]{"**/**"};
+
     /**
-     * @todo File
+     * @todo Change type to File
+     * 
+     * @parameter expression="${project.build.directory}"
+     * @required
+     * @readonly
      */
     private String basedir;
 
-    private String jarName;
+    /**
+     * @parameter alias="jarName" expression="${project.build.finalName}"
+     * @required
+     */
+    private String finalName;
 
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     * @readonly
+     */
     private String outputDirectory;
 
-    private static final String[] DEFAULT_EXCLUDES = new String[]{"**/package.html"};
-
-    private static final String[] DEFAULT_INCLUDES = new String[]{"**/**"};
-
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
     private MavenProject project;
 
+    /**
+     * @parameter
+     */
     private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
 
     /**
@@ -87,7 +79,7 @@
     public void execute()
         throws PluginExecutionException
     {
-        File jarFile = new File( basedir, jarName + ".jar" );
+        File jarFile = new File( basedir, finalName + ".jar" );
 
         MavenArchiver archiver = new MavenArchiver();
 

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java Thu Apr 28 16:05:01 2005
@@ -30,11 +30,19 @@
 public abstract class AbstractGeneratorMojo
     extends AbstractPlugin
 {
-    protected String outputDirectory;
-
+    /**
+     * @parameter expression="${project}"
+     * @required
+     */
     protected MavenProject project;
 
+    /**
+     * @parameter expression="${component.org.apache.maven.tools.plugin.scanner.MojoScanner}"
+     * @required
+     */
     protected MojoScanner mojoScanner;
+    
+    protected abstract String getOutputDirectory();
 
     protected abstract void generate( String outputDirectory, Set mavenMojoDescriptors, MavenProject project )
         throws Exception;
@@ -46,7 +54,7 @@
         {
             Set mavenMojoDescriptors = mojoScanner.execute( project );
 
-            generate( outputDirectory, mavenMojoDescriptors, project );
+            generate( getOutputDirectory(), mavenMojoDescriptors, project );
         }
         catch ( Exception e )
         {

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/BeanGeneratorMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/BeanGeneratorMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/BeanGeneratorMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/BeanGeneratorMojo.java Thu Apr 28 16:05:01 2005
@@ -26,28 +26,21 @@
  * @version $Id$
  * @goal bean
  * @description Goal for generating a plugin descriptor.
- * @parameter name="mojoScanner"
- * type="org.apache.maven.tools.plugin.scanner.MojoScanner"
- * required="true"
- * validator=""
- * expression="#component.org.apache.maven.tools.plugin.scanner.MojoScanner"
- * description="Scanner used to discover mojo descriptors from this project"
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="#project"
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory/generated-sources"
- * description=""
  */
 public class BeanGeneratorMojo
     extends AbstractGeneratorMojo
 {
+    /**
+     * @parameter expression="${project.build.directory}/generated-sources"
+     * @required
+     */
+    protected String outputDirectory;
+
+    protected String getOutputDirectory()
+    {
+        return outputDirectory;
+    }
+
     protected void generate( String outputDirectory, Set mavenMojoDescriptors, MavenProject project )
         throws Exception
     {

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java Thu Apr 28 16:05:01 2005
@@ -31,28 +31,21 @@
  * @goal descriptor
  * @phase process-classes
  * @description Goal for generating a plugin descriptor.
- * @parameter name="mojoScanner"
- * type="org.apache.maven.tools.plugin.scanner.MojoScanner"
- * required="true"
- * validator=""
- * expression="${component.org.apache.maven.tools.plugin.scanner.MojoScanner}"
- * description="Scanner used to discover mojo descriptors from this project"
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="${project}"
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="${project.build.outputDirectory}/META-INF/maven"
- * description=""
  */
 public class DescriptorGeneratorMojo
     extends AbstractGeneratorMojo
 {
+    /**
+     * @parameter expression="${project.build.outputDirectory}/META-INF/maven"
+     * @required
+     */
+    protected String outputDirectory;
+
+    protected String getOutputDirectory()
+    {
+        return outputDirectory;
+    }
+
     protected void generate( String outputDirectory, Set mavenMojoDescriptors, MavenProject project )
         throws Exception
     {

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/JellyGeneratorMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/JellyGeneratorMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/JellyGeneratorMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/JellyGeneratorMojo.java Thu Apr 28 16:05:01 2005
@@ -26,28 +26,21 @@
  * @version $Id$
  * @goal jelly
  * @description Goal for generating a plugin descriptor.
- * @parameter name="mojoScanner"
- * type="org.apache.maven.tools.plugin.scanner.MojoScanner"
- * required="true"
- * validator=""
- * expression="#component.org.apache.maven.tools.plugin.scanner.MojoScanner"
- * description="Scanner used to discover mojo descriptors from this project"
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="#project"
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory/generated-sources"
- * description=""
  */
 public class JellyGeneratorMojo
     extends AbstractGeneratorMojo
 {
+    /**
+     * @parameter expression="${project.build.directory}/generated-sources"
+     * @required
+     */
+    protected String outputDirectory;
+
+    protected String getOutputDirectory()
+    {
+        return outputDirectory;
+    }
+
     protected void generate( String outputDirectory, Set mavenMojoDescriptors, MavenProject project )
         throws Exception
     {

Modified: maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/DoxiaMojo.java Thu Apr 28 16:05:01 2005
@@ -1,9 +1,6 @@
 package org.apache.maven.doxia;
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.plugin.Plugin;
-import org.apache.maven.plugin.PluginExecutionRequest;
-import org.apache.maven.plugin.PluginExecutionResponse;
 import org.apache.maven.plugin.AbstractPlugin;
 import org.apache.maven.plugin.PluginExecutionException;
 import org.apache.maven.project.MavenProject;
@@ -17,80 +14,66 @@
 /**
  * @goal site
  * @description Doxia plugin
- * @parameter name="siteDirectory"
- * type=""
- * required=""
- * validator=""
- * expression="${basedir}/src/site"
- * description=""
- * @parameter name="generatedSiteDirectory"
- * type=""
- * required=""
- * validator=""
- * expression="${project.build.directory}/site-generated"
- * description=""
- * @parameter name="outputDirectory"
- * type=""
- * required=""
- * validator=""
- * expression="${project.build.directory}/site"
- * description=""
- * @parameter name="flavour"
- * type="String"
- * required=""
- * validator=""
- * expression="maven"
- * description=""
- * @parameter name="project"
- * type=""
- * required=""
- * validator=""
- * expression="${project}"
- * description=""
- * @parameter name="localRepository"
- * type="org.apache.maven.artifact.ArtifactRepository"
- * required="true"
- * validator=""
- * expression="#localRepository"
- * description=""
- * @parameter name="remoteRepositories"
- * type="java.util.List"
- * required="true"
- * validator=""
- * expression="#project.remoteArtifactRepositories"
- * description=""
- * @parameter name="siteRenderer"
- * type=""
- * required=""
- * validator=""
- * expression="${component.org.codehaus.doxia.site.renderer.SiteRenderer}"
- * description=""
- * @parameter name="reportManager"
- * type=""
- * required=""
- * validator=""
- * expression="${component.org.apache.maven.reporting.manager.MavenReportManager}"
- * description=""
  */
 public class DoxiaMojo
     extends AbstractPlugin
 {
+    /**
+     * @parameter expression="${basedir}/src/site"
+     * @required
+     */
     private String siteDirectory;
 
+    /**
+     * @parameter alias="workingDirectory" expression="${project.build.directory}/site-generated"
+     * @required
+     */
     private String generatedSiteDirectory;
 
+    /**
+     * @parameter expressoin="${project.build.directory}/site"
+     * @required
+     */
     private String outputDirectory;
 
-    private String flavour;
-
+    /**
+     * @parameter alias="flavor"
+     */
+    private String flavour = "maven";
+
+    /**
+     * @parameter expression="${component.org.codehaus.doxia.site.renderer.SiteRenderer}"
+     * @required
+     * @readonly
+     */
     private  SiteRenderer siteRenderer;
 
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
     private MavenProject project;
 
+    /**
+     * @parameter expression="${component.org.apache.maven.reporting.manager.MavenReportManager}"
+     * @required
+     * @readonly
+     */
     private MavenReportManager reportManager;
 
+    /**
+     * @parameter expression="${localRepository}"
+     * @required
+     * @readonly
+     */
     private ArtifactRepository localRepository;
 
+    /**
+     * @parameter expression="${project.remoteArtifactRepositories}"
+     * @required
+     * @readonly
+     */
     private List remoteRepositories;
 
     public void execute()

Modified: maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/ScpSiteDeployMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/ScpSiteDeployMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/ScpSiteDeployMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-site-plugin/src/main/java/org/apache/maven/doxia/ScpSiteDeployMojo.java Thu Apr 28 16:05:01 2005
@@ -4,17 +4,14 @@
 package org.apache.maven.doxia;
 
 import org.apache.maven.model.DistributionManagement;
-import org.apache.maven.plugin.Plugin;
-import org.apache.maven.plugin.PluginExecutionRequest;
-import org.apache.maven.plugin.PluginExecutionResponse;
 import org.apache.maven.plugin.AbstractPlugin;
 import org.apache.maven.plugin.PluginExecutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.wagon.ConnectionException;
 import org.apache.maven.wagon.WagonUtils;
 import org.apache.maven.wagon.observers.Debug;
-import org.apache.maven.wagon.providers.ssh.SshCommandExecutor;
 import org.apache.maven.wagon.providers.ssh.ScpWagon;
+import org.apache.maven.wagon.providers.ssh.SshCommandExecutor;
 import org.apache.maven.wagon.repository.Repository;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -36,40 +33,32 @@
  * then archive is transfred to remote host, nextly it is un-archived.
  * This method of deployment should normally be much faster
  * then making file by file copy.
- * @parameter name="inputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory/site"
- * description=""
- * @parameter name="workingDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory"
- * description=""
- * @parameter name="unzipCommand"
- * type="String"
- * required="true"
- * validator=""
- * expression="unzip -o"
- * description=""
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="#project"
- * description=""
  */
 public class ScpSiteDeployMojo
     extends AbstractPlugin
 {
+    /**
+     * @parameter alias="siteDirectory" expression="${project.build.directory}/site"
+     * @required
+     */
     private String inputDirectory;
 
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     */
     private String workingDirectory;
 
-    private String unzipCommand;
-
+    /**
+     * @parameter
+     */
+    private String unzipCommand = "unzip -o";
+
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
     private MavenProject project;
 
     public void execute()

Modified: maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java (original)
+++ maven/components/trunk/maven-plugins/maven-surefire-plugin/src/main/java/org/apache/maven/test/SurefirePlugin.java Thu Apr 28 16:05:01 2005
@@ -34,82 +34,67 @@
  * @version $Id$
  * @goal test
  * @description Run tests using surefire
- * @parameter name="basedir"
- * type="String"
- * required="true"
- * validator="validator"
- * expression="${basedir}"
- * description=""
- * @parameter name="classesDirectory"
- * type="String"
- * required="true"
- * validator="validator"
- * expression="${project.build.outputDirectory}"
- * description=""
- * @parameter name="testClassesDirectory"
- * type="String"
- * required="true"
- * validator="validator"
- * expression="${project.build.testOutputDirectory}"
- * description=""
- * @parameter name="includes"
- * type="java.util.List"
- * required="false"
- * validator=""
- * description=""
- * expression=""
- * @parameter name="excludes"
- * type="java.util.List"
- * required="false"
- * validator=""
- * description=""
- * expression=""
- * @parameter name="classpathElements"
- * type="java.util.List"
- * required="true"
- * validator=""
- * expression="${project.testClasspathElements}"
- * description=""
- * @parameter name="reportsDirectory"
- * type="String"
- * required="false"
- * validator=""
- * expression="${project.build.directory/surefire-reports}"
- * description="Base directory where all reports are written to."
- * @parameter name="test"
- * type="String"
- * required="false"
- * validator=""
- * expression="${test}"
- * description="Specify this parameter if you want to use the test regex notation to select tests to run."
- * @parameter name="localRepository"
- * type="org.apache.maven.artifact.repository.ArtifactRepository"
- * required="true"
- * validator=""
- * expression="${localRepository}"
- * description=""
  * @todo make version of junit and surefire configurable
  * @todo make report to be produced configurable
  */
 public class SurefirePlugin
     extends AbstractPlugin
 {
+    
+    /**
+     * @parameter expression="${basedir}"
+     * @required
+     */
     private String basedir;
 
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     */
     private String classesDirectory;
 
+    /**
+     * @parameter expression="${project.build.testOutputDirectory}"
+     * @required
+     */
     private String testClassesDirectory;
 
+    /**
+     * @parameter expression="${project.testClasspathElements}"
+     * @required
+     * @readonly
+     */
     private List classpathElements;
 
+    /**
+     * Base directory where all reports are written to.
+     * 
+     * @parameter expression="${project.build.directory}/surefire-reports"
+     */
     private String reportsDirectory;
 
+    /**
+     * Specify this parameter if you want to use the test regex notation to select tests to run.
+     * 
+     * @parameter
+     */
     private String test;
 
+    /**
+     * @parameter
+     */
     private List includes;
 
+    /**
+     * @parameter
+     */
     private List excludes;
 
+    /**
+     * @parameter expression="${localRepository}"
+     * @required
+     * @readonly
+     */
     private ArtifactRepository localRepository;
 
     public void execute()

Modified: maven/components/trunk/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java?rev=165224&r1=165223&r2=165224&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/WarMojo.java Thu Apr 28 16:05:01 2005
@@ -41,110 +41,80 @@
  * @goal war
  * @phase package
  * @description build a war/webapp
- * @parameter name="warName"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.finalName"
- * description=""
- * deprecated="Please use the finalName element of build instead"
- * @parameter name="archive"
- * type=""
- * required="false"
- * expression=""
- * validator=""
- * description=""
- * @parameter name="warSourceDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#basedir/src/main/webapp"
- * description=""
- * @parameter name="warSourceIncludes"
- * type="String"
- * required="false"
- * validator=""
- * expression=""
- * default="**"
- * description=""
- * @parameter name="warSourceExcludes"
- * type="String"
- * required="false"
- * validator=""
- * expression=""
- * description=""
- * @parameter name="webXml"
- * type="String"
- * required="false"
- * validator=""
- * expression="#maven.war.webxml"
- * description=""
- * @parameter name="webappDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory/#project.build.finalName"
- * description=""
- * @parameter name="mode"
- * type="String"
- * required="true"
- * validator=""
- * expression=""
- * default="war"
- * description=""
- * @parameter name="classesDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.outputDirectory"
- * description=""
- * @parameter name="outputDirectory"
- * type="String"
- * required="true"
- * validator=""
- * expression="#project.build.directory"
- * description=""
- * @parameter name="project"
- * type="org.apache.maven.project.MavenProject"
- * required="true"
- * validator=""
- * expression="#project"
- * description="current MavenProject instance"
  */
 public class WarMojo
     extends AbstractPlugin
 {
     public static final String WEB_INF = "WEB-INF";
 
-    private String mode;
+    /**
+     * @parameter
+     */
+    private String mode = "war";
 
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
     private MavenProject project;
 
     /**
-     * @todo File
+     * @todo Convert to File
+     * 
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     * @readonly
      */
     private String classesDirectory;
 
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     */
     private String outputDirectory;
 
     /**
-     * @todo File
+     * @todo Convert to File
+     * 
+     * @parameter expression="${project.build.directory}/${project.build.finalName}"
+     * @required
      */
     private String webappDirectory;
 
     /**
-     * @todo File
+     * @todo Convert to File
+     * 
+     * @parameter expression="${basedir}/src/main/webapp"
+     * @required
      */
     private String warSourceDirectory;
 
-    private String warSourceIncludes;
+    /**
+     * @parameter alias="includes"
+     */
+    private String warSourceIncludes = "**";
 
+    /**
+     * @parameter alias="excludes"
+     */
     private String warSourceExcludes;
 
+    /**
+     * @parameter expression="${maven.war.webxml}"
+     */
     private String webXml;
 
+    /**
+     * @parameter expression="${project.build.finalName}"
+     * @required
+     * @deprecated "Please use the finalName element of build instead"
+     */
     private String warName;
 
+    /**
+     * @parameter
+     */
     private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
 
     private static final String[] EMPTY_STRING_ARRAY = {};



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org