Author: brett
Date: Tue Aug 23 05:28:54 2005
New Revision: 239397

URL: http://svn.apache.org/viewcvs?rev=239397&view=rev
Log:
PR: MNG-758
add @component tag for requirements

Added:
    
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
   (with props)
    
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java
   (with props)
    
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java
   (with props)
    
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java
   (with props)
Modified:
    
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Parameter.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-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java
    
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
    
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-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
    
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MojoDefinitionTagLibrary.java
    
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/ParameterTag.java

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=239397&r1=239396&r2=239397&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
 Tue Aug 23 05:28:54 2005
@@ -40,6 +40,8 @@
 
     private String defaultValue;
 
+    private Requirement requirement;
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
@@ -149,4 +151,13 @@
         return "Mojo parameter [name: \'" + getName() + "\'; alias: \'" + 
getAlias() + "\']";
     }
 
+    public Requirement getRequirement()
+    {
+        return requirement;
+    }
+
+    public void setRequirement( Requirement requirement )
+    {
+        this.requirement = requirement;
+    }
 }

Added: 
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java?rev=239397&view=auto
==============================================================================
--- 
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
 (added)
+++ 
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
 Tue Aug 23 05:28:54 2005
@@ -0,0 +1,52 @@
+package org.apache.maven.plugin.descriptor;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Describes a component requirement.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ * @version $Id$
+ */
+public class Requirement
+{
+    private final String role;
+
+    private final String roleHint;
+
+    public Requirement( String role )
+    {
+        this.role = role;
+        this.roleHint = null;
+    }
+
+    public Requirement( String role, String roleHint )
+    {
+        this.role = role;
+        this.roleHint = roleHint;
+    }
+
+    public String getRole()
+    {
+        return role;
+    }
+
+    public String getRoleHint()
+    {
+        return roleHint;
+    }
+}

Propchange: 
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

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=239397&r1=239396&r2=239397&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
 Tue Aug 23 05:28:54 2005
@@ -19,6 +19,7 @@
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.descriptor.Requirement;
 import org.apache.maven.tools.plugin.util.PluginUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
@@ -28,11 +29,11 @@
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -249,7 +250,7 @@
 
         w.startElement( "parameters" );
 
-        Collection requirements = new ArrayList();
+        Map requirements = new HashMap();
 
         Set configuration = new HashSet();
 
@@ -265,7 +266,15 @@
                 {
                     // treat it as a component...a requirement, in other words.
 
-                    requirements.add( parameter );
+                    // remove "component." plus expression delimiters
+                    String role = expression.substring( 
"${component.".length(), expression.length() - 1 );
+
+                    // TODO: remove deprecated expression
+                    requirements.put( parameter.getName(), new Requirement( 
role ) );
+                }
+                else if ( parameter.getRequirement() != null )
+                {
+                    requirements.put( parameter.getName(), 
parameter.getRequirement() );
                 }
                 else
                 {
@@ -351,19 +360,21 @@
         {
             w.startElement( "requirements" );
 
-            for ( Iterator i = requirements.iterator(); i.hasNext(); )
+            for ( Iterator i = requirements.keySet().iterator(); i.hasNext(); )
             {
-                Parameter requirement = (Parameter) i.next();
+                String key = (String) i.next();
+                Requirement requirement = (Requirement) requirements.get( key 
);
 
                 w.startElement( "requirement" );
 
-                // remove "component." plus expression delimiters
-                String expression = requirement.getExpression();
-                String role = expression.substring( "${component.".length(), 
expression.length() - 1 );
+                element( w, "role", requirement.getRole() );
 
-                element( w, "role", role );
+                if ( requirement.getRoleHint() != null )
+                {
+                    element( w, "role-hint", requirement.getRoleHint() );
+                }
 
-                element( w, "field-name", requirement.getName() );
+                element( w, "field-name", key );
 
                 w.endElement();
             }

Modified: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.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/PluginXdocGenerator.java?rev=239397&r1=239396&r2=239397&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java
 (original)
+++ 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java
 Tue Aug 23 05:28:54 2005
@@ -357,6 +357,10 @@
             {
                 w.writeMarkup( " <i>(Discovered)</i>" );
             }
+            else if ( parameter.getRequirement() != null )
+            {
+                w.writeMarkup( " <i>(Discovered)</i>" );
+            }
 
             w.endElement(); // td
 

Modified: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh?rev=239397&r1=239396&r2=239397&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
 (original)
+++ 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-beanshell/src/main/resources/extractor.bsh
 Tue Aug 23 05:28:54 2005
@@ -16,6 +16,8 @@
 this.expressionPattern = Pattern.compile( "expression\\s*=\\s*\"(.*?)\"" );
 this.phasePattern = Pattern.compile( "phase\\s*=\\s*\"(.*?)\"" );
 this.lifecyclePattern = Pattern.compile( "lifecycle\\s*=\\s*\"(.*?)\"" );
+this.rolePattern = Pattern.compile( "role\\s*=\\s*\"(.*?)\"" );
+this.roleHintPattern = Pattern.compile( "roleHint\\s*=\\s*\"(.*?)\"" );
 
 setAccessibility( true );
 
@@ -59,6 +61,25 @@
             {
                 parameter.setExpression( m.group( 1 ) );
             }
+        }
+        value = tags.get( "component" );
+        if ( value != null )
+        {
+            m = rolePattern.matcher( value );
+            if ( m.find() )
+            {
+                role = m.group( 1 );
+            }
+            m = roleHintPattern.matcher( value );
+            if ( m.find() )
+            {
+                roleHint = m.group( 1 );
+            }
+            else
+            {
+                roleHint = null;
+            }
+            parameter.setRequirement( new Requirement( role, roleHint ) );
         }
         return parameter;
     }

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=239397&r1=239396&r2=239397&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
 Tue Aug 23 05:28:54 2005
@@ -16,29 +16,28 @@
  * limitations under the License.
  */
 
+import com.thoughtworks.qdox.JavaDocBuilder;
+import com.thoughtworks.qdox.model.DocletTag;
+import com.thoughtworks.qdox.model.JavaClass;
+import com.thoughtworks.qdox.model.JavaField;
+import com.thoughtworks.qdox.model.JavaSource;
 import org.apache.maven.plugin.descriptor.InvalidParameterException;
 import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 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.extractor.MojoDescriptorExtractor;
 import org.codehaus.modello.StringUtils;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.DocletTag;
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaField;
-import com.thoughtworks.qdox.model.JavaSource;
-
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
-import java.util.Map.Entry;
 
 
 /**
@@ -51,7 +50,7 @@
     implements MojoDescriptorExtractor
 {
     public static final String MAVEN_PLUGIN_INSTANTIATION = 
"instantiationStrategy";
-    
+
     public static final String CONFIGURATOR = "configurator";
 
     public static final String PARAMETER = "parameter";
@@ -77,17 +76,19 @@
     public static final String GOAL_REQUIRES_DEPENDENCY_RESOLUTION = 
"requiresDependencyResolution";
 
     public static final String GOAL_REQUIRES_PROJECT = "requiresProject";
-    
+
     public static final String GOAL_IS_AGGREGATOR = "aggregator";
 
     public static final String GOAL_REQUIRES_ONLINE = "requiresOnline";
-    
+
     public static final String GOAL_INHERIT_BY_DEFAULT = "inheritByDefault";
 
     public static final String GOAL_MULTI_EXECUTION_STRATEGY = "attainAlways";
-    
+
     public static final String GOAL_REQUIRES_DIRECT_INVOCATION = 
"requiresDirectInvocation";
 
+    private static final String COMPONENT = "component";
+
     protected void validateParameter( Parameter parameter, int i )
         throws InvalidParameterException
     {
@@ -120,7 +121,8 @@
     // Mojo descriptor creation from @tags
     // ----------------------------------------------------------------------
 
-    private MojoDescriptor createMojoDescriptor( JavaSource javaSource, 
PluginDescriptor pluginDescriptor ) throws InvalidPluginDescriptorException
+    private MojoDescriptor createMojoDescriptor( JavaSource javaSource, 
PluginDescriptor pluginDescriptor )
+        throws InvalidPluginDescriptorException
     {
         MojoDescriptor mojoDescriptor = new MojoDescriptor();
         mojoDescriptor.setPluginDescriptor( pluginDescriptor );
@@ -151,7 +153,6 @@
             mojoDescriptor.setExecutionStrategy( 
MojoDescriptor.SINGLE_PASS_EXEC_STRATEGY );
         }
 
-
         // 
----------------------------------------------------------------------
         // Configurator hint
         // 
----------------------------------------------------------------------
@@ -162,7 +163,7 @@
         {
             mojoDescriptor.setComponentConfigurator( configurator.getValue() );
         }
- 
+
         // 
----------------------------------------------------------------------
         // Goal name
         // 
----------------------------------------------------------------------
@@ -239,7 +240,7 @@
         if ( requiresProject != null )
         {
             String requiresProjectValue = requiresProject.getValue();
-            
+
             if ( requiresProjectValue != null )
             {
                 mojoDescriptor.setProjectRequired( Boolean.valueOf( 
requiresProjectValue ).booleanValue() );
@@ -312,7 +313,8 @@
         return tag;
     }
 
-    private void extractParameters( MojoDescriptor mojoDescriptor, JavaClass 
javaClass ) throws InvalidPluginDescriptorException
+    private void extractParameters( MojoDescriptor mojoDescriptor, JavaClass 
javaClass )
+        throws InvalidPluginDescriptorException
     {
         // 
---------------------------------------------------------------------------------
         // We're resolving class-level, ancestor-class-field, 
local-class-field order here.
@@ -322,13 +324,11 @@
 
         for ( Iterator it = rawParams.entrySet().iterator(); it.hasNext(); )
         {
-            Map.Entry entry = (Entry) it.next();
+            Map.Entry entry = (Map.Entry) it.next();
             String paramName = (String) entry.getKey();
 
             JavaField field = (JavaField) entry.getValue();
 
-            DocletTag parameter = field.getTagByName( PARAMETER );
-
             Parameter pd = new Parameter();
 
             pd.setName( paramName );
@@ -337,27 +337,43 @@
 
             pd.setDescription( field.getComment() );
 
-            pd.setRequired( field.getTagByName( REQUIRED ) != null );
-
-            pd.setEditable( field.getTagByName( READONLY ) == null );
-
-            DocletTag deprecationTag = field.getTagByName( DEPRECATED );
-            if ( deprecationTag != null )
+            DocletTag componentTag = field.getTagByName( COMPONENT );
+            if ( componentTag != null )
             {
-                pd.setDeprecated( deprecationTag.getValue() );
+                String role = componentTag.getNamedParameter( "role" );
+                if ( role == null )
+                {
+                    role = field.getType().toString();
+                }
+
+                String roleHint = componentTag.getNamedParameter( "roleHint" );
+                pd.setRequirement( new Requirement( role, roleHint ) );
             }
+            else
+            {
+                DocletTag parameter = field.getTagByName( PARAMETER );
 
-            String alias = parameter.getNamedParameter( "alias" );
+                pd.setRequired( field.getTagByName( REQUIRED ) != null );
 
-            if ( !StringUtils.isEmpty( alias ) )
-            {
-                pd.setAlias( alias );
-            }
+                pd.setEditable( field.getTagByName( READONLY ) == null );
+
+                DocletTag deprecationTag = field.getTagByName( DEPRECATED );
+                if ( deprecationTag != null )
+                {
+                    pd.setDeprecated( deprecationTag.getValue() );
+                }
 
-            pd.setExpression( parameter.getNamedParameter( 
PARAMETER_EXPRESSION ) );
+                String alias = parameter.getNamedParameter( "alias" );
 
-            pd.setDefaultValue( parameter.getNamedParameter( 
PARAMETER_DEFAULT_VALUE ) );
+                if ( !StringUtils.isEmpty( alias ) )
+                {
+                    pd.setAlias( alias );
+                }
 
+                pd.setExpression( parameter.getNamedParameter( 
PARAMETER_EXPRESSION ) );
+
+                pd.setDefaultValue( parameter.getNamedParameter( 
PARAMETER_DEFAULT_VALUE ) );
+            }
             mojoDescriptor.addParameter( pd );
         }
     }
@@ -387,9 +403,7 @@
             {
                 JavaField field = classFields[i];
 
-                DocletTag paramTag = field.getTagByName( PARAMETER );
-
-                if ( paramTag != null )
+                if ( field.getTagByName( PARAMETER ) != null || 
field.getTagByName( COMPONENT ) != null )
                 {
                     rawParams.put( field.getName(), field );
                 }

Modified: 
maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java?rev=239397&r1=239396&r2=239397&view=diff
==============================================================================
--- 
maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
 (original)
+++ 
maven/components/trunk/maven-plugins/maven-compiler-plugin/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
 Tue Aug 23 05:28:54 2005
@@ -167,9 +167,7 @@
     private File buildDirectory;
 
     /**
-     * @parameter 
expression="${component.org.codehaus.plexus.compiler.manager.CompilerManager}"
-     * @required
-     * @readonly
+     * @component
      */
     private CompilerManager compilerManager;
 
@@ -261,12 +259,13 @@
 
         try
         {
-            staleSources = computeStaleSources( compilerConfiguration, 
compiler, getSourceInclusionScanner( staleMillis ) );
+            staleSources = computeStaleSources( compilerConfiguration, 
compiler,
+                                                getSourceInclusionScanner( 
staleMillis ) );
 
             canUpdateTarget = compiler.canUpdateTarget( compilerConfiguration 
);
 
-            if ( compiler.getCompilerOutputStyle() == 
CompilerOutputStyle.ONE_OUTPUT_FILE_FOR_ALL_INPUT_FILES
-                && !canUpdateTarget )
+            if ( compiler.getCompilerOutputStyle() == 
CompilerOutputStyle.ONE_OUTPUT_FILE_FOR_ALL_INPUT_FILES &&
+                !canUpdateTarget )
             {
                 getLog().info( "RESCANNING!" );
                 // TODO: This second scan for source files is sub-optimal
@@ -354,7 +353,7 @@
     }
 
     private Set computeStaleSources( CompilerConfiguration 
compilerConfiguration, Compiler compiler,
-                                    SourceInclusionScanner scanner )
+                                     SourceInclusionScanner scanner )
         throws MojoExecutionException, CompilerException
     {
         CompilerOutputStyle outputStyle = compiler.getCompilerOutputStyle();
@@ -403,8 +402,8 @@
             }
             catch ( InclusionScanException e )
             {
-                throw new MojoExecutionException( "Error scanning source root: 
\'" + sourceRoot + "\' "
-                    + "for stale files to recompile.", e );
+                throw new MojoExecutionException(
+                    "Error scanning source root: \'" + sourceRoot + "\' " + 
"for stale files to recompile.", e );
             }
         }
 

Modified: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MojoDefinitionTagLibrary.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MojoDefinitionTagLibrary.java?rev=239397&r1=239396&r2=239397&view=diff
==============================================================================
--- 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MojoDefinitionTagLibrary.java
 (original)
+++ 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MojoDefinitionTagLibrary.java
 Tue Aug 23 05:28:54 2005
@@ -47,6 +47,9 @@
         registerTag( "requiresDependencyResolution", 
RequiresDependencyResolutionTag.class );
         registerTag( "requiresProject", RequiresProjectTag.class );
         registerTag( "requiresOnline", RequiresOnlineTag.class );
+        registerTag( "requirement", RequirementTag.class );
+        registerTag( "role", RequirementRoleTag.class );
+        registerTag( "roleHint", RequirementRoleHintTag.class );
         registerTag( "type", ParamTypeTag.class );
     }
 

Modified: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/ParameterTag.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/ParameterTag.java?rev=239397&r1=239396&r2=239397&view=diff
==============================================================================
--- 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/ParameterTag.java
 (original)
+++ 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/ParameterTag.java
 Tue Aug 23 05:28:54 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.plugin.descriptor.Parameter;
+import org.apache.maven.plugin.descriptor.Requirement;
 import org.codehaus.marmalade.model.AbstractMarmaladeTag;
 import org.codehaus.marmalade.runtime.MarmaladeExecutionContext;
 import org.codehaus.marmalade.runtime.MarmaladeExecutionException;
@@ -43,6 +44,8 @@
 
     private String defaultVal;
 
+    private Requirement requirement = null;
+
     protected void doExecute( MarmaladeExecutionContext context )
         throws MarmaladeExecutionException
     {
@@ -65,6 +68,7 @@
         param.setType( type );
         param.setDeprecated( deprecated );
         param.setDefaultValue( defaultVal );
+        param.setRequirement( requirement );
 
         return param;
     }
@@ -107,5 +111,10 @@
     public void setDeprecated( String deprecated )
     {
         this.deprecated = deprecated;
+    }
+
+    public void setRequirement( Requirement requirement )
+    {
+        this.requirement = requirement;
     }
 }

Added: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java?rev=239397&view=auto
==============================================================================
--- 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java
 (added)
+++ 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java
 Tue Aug 23 05:28:54 2005
@@ -0,0 +1,36 @@
+package org.apache.maven.script.marmalade.tags;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.marmalade.runtime.MarmaladeExecutionException;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ * @version $Id$
+ */
+public class RequirementRoleHintTag
+    extends AbstractStringValuedBodyTag
+{
+
+    protected void setValue( String value )
+        throws MarmaladeExecutionException
+    {
+        RequirementTag parent = (RequirementTag) requireParent( 
RequirementTag.class );
+        parent.setRoleHint( value );
+    }
+
+}
\ No newline at end of file

Propchange: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleHintTag.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java?rev=239397&view=auto
==============================================================================
--- 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java
 (added)
+++ 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java
 Tue Aug 23 05:28:54 2005
@@ -0,0 +1,36 @@
+package org.apache.maven.script.marmalade.tags;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.marmalade.runtime.MarmaladeExecutionException;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ * @version $Id$
+ */
+public class RequirementRoleTag
+    extends AbstractStringValuedBodyTag
+{
+
+    protected void setValue( String value )
+        throws MarmaladeExecutionException
+    {
+        RequirementTag parent = (RequirementTag) requireParent( 
RequirementTag.class );
+        parent.setRole( value );
+    }
+
+}
\ No newline at end of file

Propchange: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementRoleTag.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java?rev=239397&view=auto
==============================================================================
--- 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java
 (added)
+++ 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java
 Tue Aug 23 05:28:54 2005
@@ -0,0 +1,55 @@
+package org.apache.maven.script.marmalade.tags;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.plugin.descriptor.Requirement;
+import org.codehaus.marmalade.model.AbstractMarmaladeTag;
+import org.codehaus.marmalade.runtime.MarmaladeExecutionContext;
+import org.codehaus.marmalade.runtime.MarmaladeExecutionException;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
+ * @version $Id$
+ */
+public class RequirementTag
+    extends AbstractMarmaladeTag
+{
+    private String role;
+
+    private String roleHint;
+
+    protected void doExecute( MarmaladeExecutionContext context )
+        throws MarmaladeExecutionException
+    {
+        processChildren( context );
+
+        Requirement requirement = new Requirement( role, roleHint );
+
+        ParameterTag paramTag = (ParameterTag) requireParent( 
ParameterTag.class );
+        paramTag.setRequirement( requirement );
+    }
+
+    public void setRoleHint( String roleHint )
+    {
+        this.roleHint = roleHint;
+    }
+
+    public void setRole( String role )
+    {
+        this.role = role;
+    }
+}
\ No newline at end of file

Propchange: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/RequirementTag.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to