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/05/04 05:28:42 UTC

svn commit: r168064 - /maven/components/trunk/maven-core /maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin /maven/components/trunk/maven-core/src/main/resources/META-INF/plexus /maven/components/trunk/maven-mboot2/src/main/java /maven/components/trunk/maven-plugin-descriptor /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/extractor /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-plugin-tools/maven-plugin-tools-java/src/test/resources/source /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade /maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade /maven/components/trunk/maven-plugins/maven-plugin-plugin /maven/components/trunk/maven-script/maven-script-marmalade /maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade /maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags /maven/components/trunk/maven-script/maven-script-marmalade/src/test/java/org/apache/maven/script/marmalade

Author: jdcasey
Date: Tue May  3 20:28:41 2005
New Revision: 168064

URL: http://svn.apache.org/viewcvs?rev=168064&view=rev
Log:
Added marmalade support back in...it's currently still using the libraries-shovelled-into-core method, but it now uses the new mojo mechanism that uses plexus ComponentConfigurators...had to make the lookup for configurators dynamic for the DefaultPluginManager, too.

Modified:
    maven/components/trunk/maven-core/pom.xml
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/plexus.xml
    maven/components/trunk/maven-mboot2/src/main/java/MBoot.java
    maven/components/trunk/maven-plugin-descriptor/pom.xml
    maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.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/extractor/AbstractScriptedMojoDescriptorExtractor.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-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestOne.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestTwo.java
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/pom.xml
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java
    maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml
    maven/components/trunk/maven-script/maven-script-marmalade/pom.xml
    maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/MarmaladeMojo.java
    maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MetadataTag.java
    maven/components/trunk/maven-script/maven-script-marmalade/src/test/java/org/apache/maven/script/marmalade/MarmaladeMojoTest.java

Modified: maven/components/trunk/maven-core/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/pom.xml?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Tue May  3 20:28:41 2005
@@ -64,12 +64,12 @@
       <artifactId>plexus-i18n</artifactId>
       <version>1.0-beta-3</version>
     </dependency>
-    <!-- dependency>
+    <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-script-marmalade</artifactId>
       <version>2.0-SNAPSHOT</version>
       <scope>runtime</scope>
-    </dependency -->
+    </dependency>
     <dependency>
       <groupId>plexus</groupId>
       <artifactId>plexus-container-default</artifactId>

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=168064&r1=168063&r2=168064&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 Tue May  3 20:28:41 2005
@@ -84,8 +84,6 @@
 
     protected PathTranslator pathTranslator;
 
-    protected ComponentConfigurator configurator;
-
     private ArtifactFactory artifactFactory;
 
     public DefaultPluginManager()
@@ -362,7 +360,7 @@
 
         try
         {
-            plugin = (Mojo) container.lookup( Mojo.ROLE, goalName );
+            plugin = (Mojo) container.lookup( Mojo.ROLE, mojoDescriptor.getRoleHint() );
 
             plugin.setLog( session.getLog() );
 
@@ -405,7 +403,7 @@
                     Map map = getPluginConfigurationFromExpressions( plugin, mojoDescriptor, mergedConfiguration,
                                                                      expressionEvaluator );
 
-                    populatePluginFields( plugin, pomConfiguration, expressionEvaluator );
+                    populatePluginFields( plugin, mojoDescriptor, mergedConfiguration, expressionEvaluator );
                 }
                 else
                 {
@@ -594,18 +592,51 @@
         return new MojoExecutionRequest( map );
     }
 
-    private void populatePluginFields( Mojo plugin, PlexusConfiguration configuration,
-                                       ExpressionEvaluator expressionEvaluator )
+    private void populatePluginFields( Mojo plugin, MojoDescriptor mojoDescriptor, PlexusConfiguration configuration,
+                                      ExpressionEvaluator expressionEvaluator )
         throws PluginConfigurationException
     {
+        ComponentConfigurator configurator = null;
+
         try
         {
+            String configuratorId = mojoDescriptor.getComponentConfigurator();
+
+            if ( StringUtils.isNotEmpty( configuratorId ) )
+            {
+                configurator = (ComponentConfigurator) container.lookup( ComponentConfigurator.ROLE, configuratorId );
+            }
+            else
+            {
+                configurator = (ComponentConfigurator) container.lookup( ComponentConfigurator.ROLE );
+            }
+
             configurator.configureComponent( plugin, configuration, expressionEvaluator );
+
         }
         catch ( ComponentConfigurationException e )
         {
             throw new PluginConfigurationException( "Unable to parse the created DOM for plugin configuration", e );
         }
+        catch ( ComponentLookupException e )
+        {
+            throw new PluginConfigurationException(
+                                                    "Unable to retrieve component configurator for plugin configuration",
+                                                    e );
+        }
+        finally
+        {
+            if ( configurator != null )
+            {
+                try
+                {
+                    container.release( configurator );
+                }
+                catch ( ComponentLifecycleException e )
+                {
+                }
+            }
+        }
     }
 
     private Field findPluginField( Class clazz, String key )
@@ -791,7 +822,9 @@
                                                               "maven-settings", "maven-monitor", "maven-plugin-api",
                                                               "maven-plugin-descriptor", "plexus-container-default",
                                                               "maven-project", "plexus-container-artifact", "maven-reporting-api", "doxia-core",
-                                                              "wagon-provider-api", "classworlds", "maven-plugin"} );
+                                                              "wagon-provider-api", "classworlds", "maven-plugin",
+                                                              "plexus-marmalade-factory", "maven-script-marmalade",
+                                                              "marmalade-core"} );
     }
 
     // ----------------------------------------------------------------------

Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/plexus.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/plexus.xml?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/plexus.xml (original)
+++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/plexus.xml Tue May  3 20:28:41 2005
@@ -25,9 +25,6 @@
           <role>org.apache.maven.project.path.PathTranslator</role>
         </requirement>
         <requirement>
-          <role>org.codehaus.plexus.component.configurator.ComponentConfigurator</role>
-        </requirement>
-        <requirement>
           <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
         </requirement>
       </requirements>

Modified: maven/components/trunk/maven-mboot2/src/main/java/MBoot.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-mboot2/src/main/java/MBoot.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-mboot2/src/main/java/MBoot.java (original)
+++ maven/components/trunk/maven-mboot2/src/main/java/MBoot.java Tue May  3 20:28:41 2005
@@ -36,12 +36,12 @@
 public class MBoot
 {
     String[] builds = new String[]{"maven-model", "maven-settings", "maven-monitor", "maven-plugin-api",
-                                   "maven-plugin-descriptor", "maven-artifact", /*"maven-script/maven-script-marmalade",*/
+                                   "maven-plugin-descriptor", "maven-artifact", "maven-script/maven-script-marmalade",
                                    "maven-project", "maven-core", "maven-archiver", "maven-reporting/maven-reporting-api",
                                    "maven-reporting/maven-reporting-manager", "maven-plugin-tools/maven-plugin-tools-api",
                                    "maven-plugin-tools/maven-plugin-tools-java",
                                    "maven-plugin-tools/maven-plugin-tools-pluggy",
-                                   /*"maven-plugin-tools/maven-plugin-tools-marmalade",*/ "maven-core-it-verifier"};
+                                   "maven-plugin-tools/maven-plugin-tools-marmalade", "maven-core-it-verifier"};
 
     String[] pluginBuilds = new String[]{"maven-plugins/maven-clean-plugin", "maven-plugins/maven-compiler-plugin",
                                          "maven-plugins/maven-install-plugin", "maven-plugins/maven-jar-plugin",

Modified: maven/components/trunk/maven-plugin-descriptor/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/pom.xml?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/pom.xml (original)
+++ maven/components/trunk/maven-plugin-descriptor/pom.xml Tue May  3 20:28:41 2005
@@ -16,7 +16,7 @@
     <dependency>
       <groupId>plexus</groupId>
       <artifactId>plexus-container-default</artifactId>
-      <version>1.0-alpha-2</version>
+      <version>1.0-alpha-3-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java (original)
+++ maven/components/trunk/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java Tue May  3 20:28:41 2005
@@ -257,7 +257,7 @@
 
     public String getRoleHint()
     {
-        return getId();
+        return getId() + ":" + getGoal();
     }
 
     public String getComponentType()

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=168064&r1=168063&r2=168064&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 Tue May  3 20:28:41 2005
@@ -12,7 +12,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @version $Id$
@@ -104,6 +103,13 @@
             mojo.setLanguage( langConfig.getValue() );
         }
 
+        PlexusConfiguration configuratorConfig = c.getChild( "configurator" );
+
+        if ( configuratorConfig != null )
+        {
+            mojo.setComponentConfigurator( configuratorConfig.getValue() );
+        }
+
         String phase = c.getChild( "phase" ).getValue();
 
         if ( phase != null )
@@ -144,7 +150,7 @@
             Parameter parameter = new Parameter();
 
             parameter.setName( d.getChild( "name" ).getValue() );
-            
+
             parameter.setAlias( d.getChild( "alias" ).getValue() );
 
             parameter.setType( d.getChild( "type" ).getValue() );
@@ -152,17 +158,17 @@
             String required = d.getChild( "required" ).getValue();
 
             parameter.setRequired( "true".equals( required ) );
-            
-            PlexusConfiguration editableConfig = d.getChild("editable");
-            
+
+            PlexusConfiguration editableConfig = d.getChild( "editable" );
+
             // we need the null check for pre-build legacy plugins...
-            if(editableConfig != null)
+            if ( editableConfig != null )
             {
-                String editable = d.getChild("editable").getValue();
-                
+                String editable = d.getChild( "editable" ).getValue();
+
                 parameter.setEditable( editable == null || "true".equals( editable ) );
             }
-            
+
             parameter.setValidator( d.getChild( "validator" ).getValue() );
 
             parameter.setDescription( d.getChild( "description" ).getValue() );
@@ -187,9 +193,9 @@
         // ----------------------------------------------------------------------
 
         mojo.setMojoConfiguration( c.getChild( "configuration" ) );
-        
+
         // TODO: Go back to this when we get the container ready to configure mojos...
-//        mojo.setConfiguration( c.getChild( "configuration" ) );
+        //        mojo.setConfiguration( c.getChild( "configuration" ) );
 
         // ----------------------------------------------------------------------
         // Requirements

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.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/extractor/AbstractScriptedMojoDescriptorExtractor.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java Tue May  3 20:28:41 2005
@@ -1,6 +1,7 @@
 package org.apache.maven.tools.plugin.extractor;
 
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.DirectoryScanner;
 
 import java.io.File;
@@ -15,6 +16,7 @@
  * @author jdcasey
  */
 public abstract class AbstractScriptedMojoDescriptorExtractor
+    extends AbstractLogEnabled
     implements MojoDescriptorExtractor
 {
     public Set execute( MavenProject project )
@@ -42,7 +44,9 @@
             Set sources = new HashSet();
 
             String resourceDir = (String) it.next();
-            File dir = new File( resourceDir );
+            File dir = new File( resourceDir ).getAbsoluteFile();
+            
+            resourceDir = dir.getPath();
 
             if ( dir.exists() )
             {
@@ -57,7 +61,7 @@
                 for ( int i = 0; i < relativePaths.length; i++ )
                 {
                     String relativePath = relativePaths[i];
-                    File scriptFile = new File( dir, relativePath );
+                    File scriptFile = new File( dir, relativePath ).getAbsoluteFile();
 
                     if ( scriptFile.isFile() && relativePath.endsWith( scriptFileExtension ) )
                     {

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=168064&r1=168063&r2=168064&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 May  3 20:28:41 2005
@@ -155,6 +155,19 @@
         //
         // ----------------------------------------------------------------------
 
+        if ( mojoDescriptor.getComponentConfigurator() != null )
+        {
+            w.startElement( "configurator" );
+
+            w.writeText( mojoDescriptor.getComponentConfigurator() );
+
+            w.endElement();
+        }
+
+        // ----------------------------------------------------------------------
+        //
+        // ----------------------------------------------------------------------
+
         w.startElement( "instantiationStrategy" );
 
         w.writeText( mojoDescriptor.getInstantiationStrategy() );
@@ -186,7 +199,7 @@
             Parameter parameter = (Parameter) parameters.get( j );
 
             String expression = parameter.getExpression();
-            
+
             if ( StringUtils.isNotEmpty( expression )
                 && ( expression.startsWith( "${component." ) || expression.startsWith( "#component." ) ) )
             {

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=168064&r1=168063&r2=168064&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 May  3 20:28:41 2005
@@ -301,7 +301,7 @@
                 pd.setRequired( parameter.getNamedParameter( REQUIRED ).equals( "true" ) ? true : false );
 
                 pd.setDeprecated( parameter.getNamedParameter( DEPRECATED ) );
-                
+
                 pd.setDefaultValue( parameter.getNamedParameter( "default" ) );
             }
             else
@@ -315,7 +315,7 @@
                 pd.setRequired( field.getTagByName( REQUIRED ) != null );
 
                 pd.setEditable( field.getTagByName( READONLY ) == null );
-                
+
                 DocletTag deprecationTag = field.getTagByName( DEPRECATED );
                 if ( deprecationTag != null )
                 {
@@ -400,7 +400,9 @@
 
         for ( int i = 0; i < javaSources.length; i++ )
         {
-            DocletTag tag = getJavaClass( javaSources[i] ).getTagByName( GOAL );
+            JavaClass javaClass = getJavaClass( javaSources[i] );
+
+            DocletTag tag = javaClass.getTagByName( GOAL );
 
             if ( tag != null )
             {

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestOne.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestOne.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestOne.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestOne.java Tue May  3 20:28:41 2005
@@ -14,7 +14,7 @@
 {
     /**
      * Maven project used to generate IDEA project files.
-     * @parameter expression="#project"
+     * @parameter
      * @required
      */
     protected String[] project;

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestTwo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestTwo.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestTwo.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-java/src/test/resources/source/JavaExtractorTestTwo.java Tue May  3 20:28:41 2005
@@ -12,7 +12,7 @@
 
     /**
      * Maven project used to generate IDEA project files.
-     * @parameter expression="#project"
+     * @parameter
      * @required
      */
     private String[] project;

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/pom.xml?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/pom.xml (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/pom.xml Tue May  3 20:28:41 2005
@@ -11,7 +11,7 @@
     <dependency>
       <groupId>marmalade</groupId>
       <artifactId>marmalade-core</artifactId>
-      <version>1.0-alpha-2</version>
+      <version>1.0-alpha-3-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>

Modified: maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java (original)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-marmalade/src/main/java/org/apache/maven/tools/plugin/extractor/marmalade/MarmaladeMojoDescriptorExtractor.java Tue May  3 20:28:41 2005
@@ -20,19 +20,15 @@
 import org.apache.maven.script.marmalade.MarmaladeMojoExecutionDirectives;
 import org.apache.maven.script.marmalade.tags.MojoTag;
 import org.apache.maven.tools.plugin.extractor.AbstractScriptedMojoDescriptorExtractor;
-import org.codehaus.marmalade.metamodel.ScriptBuilder;
+import org.codehaus.marmalade.launch.MarmaladeLauncher;
 import org.codehaus.marmalade.model.MarmaladeScript;
 import org.codehaus.marmalade.model.MarmaladeTag;
-import org.codehaus.marmalade.parsing.DefaultParsingContext;
-import org.codehaus.marmalade.parsing.MarmaladeParsingContext;
-import org.codehaus.marmalade.parsing.ScriptParser;
 import org.codehaus.marmalade.runtime.DefaultContext;
 import org.codehaus.marmalade.runtime.MarmaladeExecutionContext;
-import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.component.factory.marmalade.PlexusIntegratedLog;
+import org.codehaus.plexus.logging.Logger;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
@@ -72,7 +68,20 @@
                 {
                     File scriptFile = (File) it.next();
 
-                    MarmaladeScript script = parse( scriptFile );
+                    MarmaladeLauncher launcher = new MarmaladeLauncher().withInputFile( scriptFile );
+
+                    Logger logger = getLogger();
+
+                    if ( logger != null )
+                    {
+                        PlexusIntegratedLog log = new PlexusIntegratedLog();
+
+                        log.enableLogging( logger );
+
+                        launcher = launcher.withLog( log );
+                    }
+
+                    MarmaladeScript script = launcher.getMarmaladeScript();
 
                     MarmaladeTag rootTag = script.getRoot();
                     if ( rootTag instanceof MojoTag )
@@ -86,15 +95,15 @@
 
                         contextMap = context.getExternalizedVariables();
 
-                        MojoDescriptor descriptor = (MojoDescriptor) contextMap.get(
-                            MarmaladeMojoExecutionDirectives.METADATA_OUTVAR );
+                        MojoDescriptor descriptor = (MojoDescriptor) contextMap
+                            .get( MarmaladeMojoExecutionDirectives.METADATA_OUTVAR );
 
                         descriptors.add( descriptor );
                     }
                     else
                     {
-                        System.out.println( "This script is not a mojo. Its root tag is {element: " +
-                                            rootTag.getTagInfo().getElement() + ", class: " + rootTag.getClass().getName() + "}" );
+                        System.out.println( "This script is not a mojo. Its root tag is {element: "
+                            + rootTag.getTagInfo().getElement() + ", class: " + rootTag.getClass().getName() + "}" );
                     }
                 }
             }
@@ -104,34 +113,6 @@
         finally
         {
             Thread.currentThread().setContextClassLoader( oldCl );
-        }
-    }
-
-    private MarmaladeScript parse( File scriptFile )
-        throws Exception
-    {
-        BufferedReader reader = null;
-
-        try
-        {
-            reader = new BufferedReader( new FileReader( scriptFile ) );
-
-            MarmaladeParsingContext parsingContext = new DefaultParsingContext();
-
-            parsingContext.setInputLocation( scriptFile.getPath() );
-            parsingContext.setInput( reader );
-
-            ScriptParser parser = new ScriptParser();
-
-            ScriptBuilder builder = parser.parse( parsingContext );
-
-            MarmaladeScript script = builder.build();
-
-            return script;
-        }
-        finally
-        {
-            IOUtil.close( reader );
         }
     }
 

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml Tue May  3 20:28:41 2005
@@ -22,11 +22,11 @@
       <version>2.0-SNAPSHOT</version>
       <scope>runtime</scope>
     </dependency>
-    <!-- dependency>
+    <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-tools-marmalade</artifactId>
       <version>2.0-SNAPSHOT</version>
       <scope>runtime</scope>
-    </dependency -->
+    </dependency>
   </dependencies>
 </model>

Modified: maven/components/trunk/maven-script/maven-script-marmalade/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/pom.xml?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-script/maven-script-marmalade/pom.xml (original)
+++ maven/components/trunk/maven-script/maven-script-marmalade/pom.xml Tue May  3 20:28:41 2005
@@ -16,12 +16,12 @@
     <dependency>
       <groupId>marmalade</groupId>
       <artifactId>marmalade-core</artifactId>
-      <version>1.0-alpha-2</version>
+      <version>1.0-alpha-3-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>plexus</groupId>
       <artifactId>plexus-marmalade-factory</artifactId>
-      <version>1.0-alpha-2</version>
+      <version>1.0-alpha-3-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </model>

Modified: maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/MarmaladeMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/MarmaladeMojo.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/MarmaladeMojo.java (original)
+++ maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/MarmaladeMojo.java Tue May  3 20:28:41 2005
@@ -16,79 +16,99 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugin.AbstractPlugin;
-import org.apache.maven.plugin.PluginExecutionRequest;
-import org.apache.maven.plugin.PluginExecutionResponse;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
 import org.codehaus.marmalade.model.MarmaladeScript;
 import org.codehaus.marmalade.runtime.DefaultContext;
 import org.codehaus.marmalade.runtime.MarmaladeExecutionContext;
 import org.codehaus.marmalade.runtime.MarmaladeExecutionException;
+import org.codehaus.plexus.component.MapOrientedComponent;
+import org.codehaus.plexus.component.repository.ComponentRequirement;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.Map;
+import java.util.TreeMap;
 
 /**
  * @author jdcasey
  */
 public class MarmaladeMojo
-    extends AbstractPlugin
+    extends AbstractMojo
+    implements MapOrientedComponent
 {
 
     private MarmaladeScript script;
 
+    private Map contextMap = new TreeMap();
+
     public MarmaladeMojo( MarmaladeScript script )
     {
         this.script = script;
     }
 
-    public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
-        throws Exception
+    public void execute()
+        throws MojoExecutionException
     {
+        MarmaladeExecutionContext context = new DefaultContext( contextMap );
 
-        MarmaladeExecutionContext context = new DefaultContext( request.getParameters() );
-
-        context.setVariable( MarmaladeMojoExecutionDirectives.REQUEST_INVAR, request );
-        context.setVariable( MarmaladeMojoExecutionDirectives.RESPONSE_INVAR, response );
-        
         StringWriter sOutWriter = new StringWriter();
-        PrintWriter outWriter = new PrintWriter(sOutWriter);
-        
-        context.setOutWriter(outWriter);
-        
+        PrintWriter outWriter = new PrintWriter( sOutWriter );
+
+        context.setOutWriter( outWriter );
+
         StringWriter sErrWriter = new StringWriter();
-        PrintWriter errWriter = new PrintWriter(sErrWriter);
-        
-        context.setErrWriter(errWriter);
-        
+        PrintWriter errWriter = new PrintWriter( sErrWriter );
+
+        context.setErrWriter( errWriter );
+
         try
         {
             script.execute( context );
         }
         catch ( MarmaladeExecutionException e )
         {
-            throw e;
+            throw new MojoExecutionException( "[ERROR] While executing mojo script.\n Error: " + e.getLocalizedMessage(), e );
         }
-        
+
         StringBuffer output = sOutWriter.getBuffer();
-        if(output.length() > 0)
+        if ( output.length() > 0 )
         {
-            getLog().info(output);
+            getLog().info( output );
         }
-        
+
         StringBuffer error = sErrWriter.getBuffer();
-        if(error.length() > 0)
+        if ( error.length() > 0 )
         {
-            getLog().error(error);
+            getLog().error( error );
         }
 
         // TODO: need to be able to pass back results
-//        Map externalizedVars = context.getExternalizedVariables();
-//        for ( Iterator it = externalizedVars.entrySet().iterator(); it.hasNext(); )
-//        {
-//            Map.Entry entry = (Map.Entry) it.next();
-//
-//            request.addContextValue( entry.getKey(), entry.getValue() );
-//        }
+        //        Map externalizedVars = context.getExternalizedVariables();
+        //        for ( Iterator it = externalizedVars.entrySet().iterator(); it.hasNext(); )
+        //        {
+        //            Map.Entry entry = (Map.Entry) it.next();
+        //
+        //            request.addContextValue( entry.getKey(), entry.getValue() );
+        //        }
+    }
+
+    public void addComponentRequirement( ComponentRequirement requirementDescriptor, Object requirementValue )
+    {
+        String key = requirementDescriptor.getFieldName();
+
+        if ( StringUtils.isEmpty( key ) )
+        {
+            key = requirementDescriptor.getRole();
+        }
+
+        contextMap.put( key, requirementValue );
+    }
+
+    public void setComponentConfiguration( Map componentConfiguration )
+    {
+        contextMap.putAll( componentConfiguration );
     }
 
 }

Modified: maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MetadataTag.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MetadataTag.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MetadataTag.java (original)
+++ maven/components/trunk/maven-script/maven-script-marmalade/src/main/java/org/apache/maven/script/marmalade/tags/MetadataTag.java Tue May  3 20:28:41 2005
@@ -73,6 +73,8 @@
         MojoDescriptor descriptor = new MojoDescriptor();
 
         descriptor.setLanguage( "marmalade" );
+        descriptor.setComponentComposer( "map-oriented" );
+        descriptor.setComponentConfigurator( "map-oriented" );
 
         if ( notEmpty( id ) )
         {
@@ -102,8 +104,6 @@
         descriptor.setParameters( parameters );
         descriptor.setRequiresDependencyResolution( requiresDependencyResolution );
         descriptor.setRequiresProject( requiresProject );
-
-        // TODO: component requirements
 
         String basePath = (String) context.getVariable( MarmaladeMojoExecutionDirectives.SCRIPT_BASEPATH_INVAR,
                                                         getExpressionEvaluator() );

Modified: maven/components/trunk/maven-script/maven-script-marmalade/src/test/java/org/apache/maven/script/marmalade/MarmaladeMojoTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-script/maven-script-marmalade/src/test/java/org/apache/maven/script/marmalade/MarmaladeMojoTest.java?rev=168064&r1=168063&r2=168064&view=diff
==============================================================================
--- maven/components/trunk/maven-script/maven-script-marmalade/src/test/java/org/apache/maven/script/marmalade/MarmaladeMojoTest.java (original)
+++ maven/components/trunk/maven-script/maven-script-marmalade/src/test/java/org/apache/maven/script/marmalade/MarmaladeMojoTest.java Tue May  3 20:28:41 2005
@@ -17,8 +17,6 @@
  */
 
 import junit.framework.TestCase;
-import org.apache.maven.plugin.PluginExecutionRequest;
-import org.apache.maven.plugin.PluginExecutionResponse;
 import org.codehaus.marmalade.metamodel.ScriptBuilder;
 import org.codehaus.marmalade.model.MarmaladeScript;
 import org.codehaus.marmalade.parsing.DefaultParsingContext;
@@ -50,12 +48,9 @@
 
         MarmaladeMojo mojo = new MarmaladeMojo( script );
 
-        PluginExecutionRequest request = new PluginExecutionRequest( Collections.EMPTY_MAP );
-        request.setParameters( Collections.singletonMap( "param", "paramValue" ) );
+        mojo.setComponentConfiguration( Collections.singletonMap( "param", "paramValue" ) );
 
-        PluginExecutionResponse response = new PluginExecutionResponse();
-
-        mojo.execute( request, response );
+        mojo.execute();
 
         // TODO: need to be able to pass back results
 //        Object result = request.getContextValue( "testvar" );



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