jvanzyl     2004/03/15 11:30:34

  Modified:    maven-core bootstrap.sh
               maven-core/src/java/org/apache/maven/plugin
                        DefaultPluginManagerManager.java PluginManager.java
               maven-core/src/java/org/apache/maven/plugin/plexus
                        PlexusPluginManager.java PluginConfigurator.java
               maven-core/src/test/org/apache/maven/plugin
                        PluginDescriptorBuilderTest.java
  Added:       maven-core/src/java/org/apache/maven/plugin/descriptor
                        GoalDescriptor.java PluginDescriptor.java
                        PluginDescriptorBuilder.java
               maven-core/src/test/org/apache/maven/plugin
                        PluginConfiguratorTest.java
  Removed:     maven-core/src/java/org/apache/maven/plugin
                        PluginDescriptor.java PluginDescriptorBuilder.java
  Log:
  o we are now using a single plugin.xml descriptor along with a customized
    plexus component discoverer made specifically for finding Maven plugins.
  
  Revision  Changes    Path
  1.6       +2 -1      maven-components/maven-core/bootstrap.sh
  
  Index: bootstrap.sh
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-core/bootstrap.sh,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- bootstrap.sh      11 Mar 2004 20:30:39 -0000      1.5
  +++ bootstrap.sh      15 Mar 2004 19:30:33 -0000      1.6
  @@ -23,7 +23,8 @@
   
   cp src/bin/* ${DIST}/bin
   libs=`cat bootstrap.deps`
  -cp src/xsd/* ${DIST}
  +
  +cp ../maven-model/maven.xsd ${DIST}
   
   for i in $libs
   do
  
  
  
  1.11      +9 -3      
maven-components/maven-core/src/java/org/apache/maven/plugin/DefaultPluginManagerManager.java
  
  Index: DefaultPluginManagerManager.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/java/org/apache/maven/plugin/DefaultPluginManagerManager.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DefaultPluginManagerManager.java  12 Mar 2004 22:40:33 -0000      1.10
  +++ DefaultPluginManagerManager.java  15 Mar 2004 19:30:33 -0000      1.11
  @@ -57,6 +57,9 @@
    */
   
   import org.apache.maven.GoalException;
  +import org.apache.maven.plugin.descriptor.GoalDescriptor;
  +import org.apache.maven.plugin.descriptor.PluginDescriptor;
  +import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
   import org.apache.maven.project.MavenProject;
   import org.apache.maven.project.MavenProjectBuilder;
   import org.apache.maven.verifier.DependencyVerifier;
  @@ -171,9 +174,9 @@
           }
       }
   
  -    private PluginDescriptor.GoalDescriptor getGoalDescriptor( String name )
  +    private GoalDescriptor getGoalDescriptor( String name )
       {
  -        return (PluginDescriptor.GoalDescriptor) goalDescriptorsKeyedByName.get( 
name );
  +        return (GoalDescriptor) goalDescriptorsKeyedByName.get( name );
       }
   
       public void contextualize( Context context )
  @@ -206,7 +209,7 @@
   
               for ( Iterator j = goals.iterator(); j.hasNext(); )
               {
  -                PluginDescriptor.GoalDescriptor goalDescriptor = 
(PluginDescriptor.GoalDescriptor) j.next();
  +                GoalDescriptor goalDescriptor = (GoalDescriptor) j.next();
   
                   if ( goalDescriptor.getPrereqs() != null )
                   {
  @@ -226,6 +229,9 @@
               }
           }
       }
  +
  +    // These will have already been found by plexus, so we just need to grab them
  +    // and process them.
   
       public List findPlugins( ClassLoader classLoader )
       {
  
  
  
  1.6       +3 -2      
maven-components/maven-core/src/java/org/apache/maven/plugin/PluginManager.java
  
  Index: PluginManager.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/java/org/apache/maven/plugin/PluginManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PluginManager.java        15 Feb 2004 21:43:19 -0000      1.5
  +++ PluginManager.java        15 Mar 2004 19:30:33 -0000      1.6
  @@ -1,6 +1,7 @@
   package org.apache.maven.plugin;
   
   import org.apache.maven.GoalException;
  +import org.apache.maven.plugin.descriptor.GoalDescriptor;
   import org.apache.maven.project.MavenProject;
   import org.codehaus.classworlds.ClassRealm;
   
  @@ -17,7 +18,7 @@
   {
       static String ROLE = PluginManager.class.getName();
   
  -    void attainGoal( String pluginId, PluginDescriptor.GoalDescriptor gd, 
MavenProject project )
  +    void attainGoal( String pluginId, GoalDescriptor gd, MavenProject project )
           throws GoalException, Exception;
   
       List getGoals();
  
  
  
  1.1                  
maven-components/maven-core/src/java/org/apache/maven/plugin/descriptor/GoalDescriptor.java
  
  Index: GoalDescriptor.java
  ===================================================================
  package org.apache.maven.plugin.descriptor;
  
  import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
  
  import java.util.List;
  
  /**
   *
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
   *
   * @version $Id: GoalDescriptor.java,v 1.1 2004/03/15 19:30:33 jvanzyl Exp $
   */
  public class GoalDescriptor
  {
      private String name;
  
      private XmlPlexusConfiguration configuration;
  
      private List prereqs;
  
      private String description;
  
      public String getName()
      {
          return name;
      }
  
      public XmlPlexusConfiguration getConfiguration()
      {
          return configuration;
      }
  
      public List getPrereqs()
      {
          return prereqs;
      }
  
      public String getDescription()
      {
          return description;
      }
  }
  
  
  1.1                  
maven-components/maven-core/src/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java
  
  Index: PluginDescriptor.java
  ===================================================================
  package org.apache.maven.plugin.descriptor;
  
  import org.codehaus.plexus.component.repository.ComponentDescriptor;
  
  import java.util.List;
  
  /**
   *
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
   *
   * @version $Id: PluginDescriptor.java,v 1.1 2004/03/15 19:30:33 jvanzyl Exp $
   */
  public class PluginDescriptor
      extends ComponentDescriptor
  {
      private String id;
  
      private List goals;
  
      public String getRole()
      {
          return "org.apache.maven.plugin.Plugin";
      }
  
      public String getId()
      {
          return id;
      }
  
      public String getRoleHint()
      {
          return id;
      }
  
      public List getGoals()
      {
          return goals;
      }
  }
  
  
  
  1.1                  
maven-components/maven-core/src/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
  
  Index: PluginDescriptorBuilder.java
  ===================================================================
  package org.apache.maven.plugin.descriptor;
  
  import org.codehaus.plexus.configuration.PlexusConfiguration;
  import org.codehaus.plexus.configuration.xml.xstream.PlexusXStream;
  import org.apache.maven.plugin.descriptor.GoalDescriptor;
  import org.apache.maven.plugin.descriptor.PluginDescriptor;
  
  import java.io.StringReader;
  
  /**
   *
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
   *
   * @version $Id: PluginDescriptorBuilder.java,v 1.1 2004/03/15 19:30:33 jvanzyl Exp $
   */
  public class PluginDescriptorBuilder
  {
      private PlexusXStream xstream;
  
      public PluginDescriptorBuilder()
      {
          xstream = new PlexusXStream();
  
          xstream.alias( "plugin", PluginDescriptor.class );
  
          xstream.alias( "goal", GoalDescriptor.class );
  
          xstream.alias( "prereq", String.class );
      }
  
      public PluginDescriptor build( PlexusConfiguration configuration )
          throws Exception
      {
          return (PluginDescriptor) xstream.build( configuration );
      }
  
      public PluginDescriptor build( String configuration )
          throws Exception
      {
          return (PluginDescriptor) xstream.build( new StringReader( configuration ), 
PluginDescriptor.class );
      }
  }
  
  
  
  1.13      +23 -4     
maven-components/maven-core/src/java/org/apache/maven/plugin/plexus/PlexusPluginManager.java
  
  Index: PlexusPluginManager.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/java/org/apache/maven/plugin/plexus/PlexusPluginManager.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- PlexusPluginManager.java  12 Mar 2004 19:46:33 -0000      1.12
  +++ PlexusPluginManager.java  15 Mar 2004 19:30:33 -0000      1.13
  @@ -1,9 +1,14 @@
   package org.apache.maven.plugin.plexus;
   
   import org.apache.maven.GoalException;
  -import org.apache.maven.project.MavenProject;
   import org.apache.maven.plugin.AbstractPluginManager;
  -import org.apache.maven.plugin.PluginDescriptor;
  +import org.apache.maven.plugin.descriptor.GoalDescriptor;
  +import org.apache.maven.project.MavenProject;
  +import org.codehaus.plexus.PlexusConstants;
  +import org.codehaus.plexus.PlexusContainer;
  +import org.codehaus.plexus.context.Context;
  +import org.codehaus.plexus.context.ContextException;
  +import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
   
   import java.lang.reflect.Method;
   import java.util.Map;
  @@ -17,9 +22,12 @@
    */
   public class PlexusPluginManager
       extends AbstractPluginManager
  +    implements Contextualizable
   {
       private Map plugins;
   
  +    private PlexusContainer container;
  +
       private PluginConfigurator pluginConfigurator;
   
       public PlexusPluginManager()
  @@ -27,7 +35,7 @@
           pluginConfigurator = new PluginConfigurator();
       }
   
  -    public void attainGoal( String pluginId, PluginDescriptor.GoalDescriptor gd, 
MavenProject project )
  +    public void attainGoal( String pluginId, GoalDescriptor gd, MavenProject 
project )
           throws GoalException, Exception
       {
           Object plugin = plugins.get( pluginId );
  @@ -51,5 +59,16 @@
       public String getId()
       {
           return "plexus";
  +    }
  +
  +    // ----------------------------------------------------------------------
  +    // Lifecylce Management
  +    // ----------------------------------------------------------------------
  +
  +    /** @see Contextualizable#contextualize */
  +    public void contextualize( Context context )
  +        throws ContextException
  +    {
  +        container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
       }
   }
  
  
  
  1.4       +6 -7      
maven-components/maven-core/src/java/org/apache/maven/plugin/plexus/PluginConfigurator.java
  
  Index: PluginConfigurator.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/java/org/apache/maven/plugin/plexus/PluginConfigurator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PluginConfigurator.java   17 Feb 2004 15:21:58 -0000      1.3
  +++ PluginConfigurator.java   15 Mar 2004 19:30:33 -0000      1.4
  @@ -1,14 +1,13 @@
   package org.apache.maven.plugin.plexus;
   
  -import com.thoughtworks.xstream.xml.xpp3.Xpp3Dom;
   import ognl.Ognl;
   import ognl.OgnlException;
   import org.apache.maven.project.MavenProject;
  -import org.apache.maven.plugin.plexus.PluginConfigurationException;
  +import org.codehaus.plexus.configuration.PlexusConfiguration;
   
   import java.lang.reflect.Field;
  -import java.util.Map;
   import java.util.HashMap;
  +import java.util.Map;
   
   /**
    *
  @@ -19,8 +18,8 @@
    */
   public class PluginConfigurator
   {
  -    public Object configure( Object plugin, Xpp3Dom configuration, MavenProject 
project )
  -        throws PluginConfigurationException
  +    public Object configure( Object plugin, PlexusConfiguration configuration, 
MavenProject project )
  +        throws PluginConfigurationException, Exception
       {
           Class pluginClass = plugin.getClass();
   
  @@ -32,7 +31,7 @@
   
           for ( int i = 0; i < size; i++ )
           {
  -            Xpp3Dom c = configuration.getChild( i );
  +            PlexusConfiguration c = configuration.getChild( i );
   
               String fieldName = c.getName();
   
  
  
  
  1.2       +8 -5      
maven-components/maven-core/src/test/org/apache/maven/plugin/PluginDescriptorBuilderTest.java
  
  Index: PluginDescriptorBuilderTest.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/test/org/apache/maven/plugin/PluginDescriptorBuilderTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PluginDescriptorBuilderTest.java  15 Feb 2004 21:43:19 -0000      1.1
  +++ PluginDescriptorBuilderTest.java  15 Mar 2004 19:30:33 -0000      1.2
  @@ -1,11 +1,13 @@
   package org.apache.maven.plugin;
   
   import junit.framework.TestCase;
  +import org.apache.maven.plugin.descriptor.GoalDescriptor;
  +import org.apache.maven.plugin.descriptor.PluginDescriptor;
  +import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
  +import org.codehaus.plexus.configuration.PlexusConfiguration;
   
   import java.util.List;
   
  -import com.thoughtworks.xstream.xml.xpp3.Xpp3Dom;
  -
   /**
    *
    *
  @@ -17,6 +19,7 @@
       extends TestCase
   {
       public void testPluginDescriptorBuilder()
  +        throws Exception
       {
           String xml =
               "<plugin>" +
  @@ -44,11 +47,11 @@
   
           assertEquals( 1, goals.size() );
   
  -        PluginDescriptor.GoalDescriptor goal = (PluginDescriptor.GoalDescriptor) 
goals.get( 0 );
  +        GoalDescriptor goal = (GoalDescriptor) goals.get( 0 );
   
           assertEquals( "compile", goal.getName() );
   
  -        Xpp3Dom configuration = goal.getConfiguration();
  +        PlexusConfiguration configuration = goal.getConfiguration();
   
           assertNotNull( configuration );
   
  
  
  
  1.1                  
maven-components/maven-core/src/test/org/apache/maven/plugin/PluginConfiguratorTest.java
  
  Index: PluginConfiguratorTest.java
  ===================================================================
  package org.apache.maven.plugin;
  
  import junit.framework.TestCase;
  
  import java.util.List;
  import java.util.Properties;
  
  import org.apache.maven.project.MavenProject;
  import org.apache.maven.plugin.plexus.PluginConfigurator;
  import org.apache.maven.plugin.descriptor.PluginDescriptor;
  import org.apache.maven.plugin.descriptor.GoalDescriptor;
  import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
  
  /**
   *
   *
   * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
   *
   * @version $Id: PluginConfiguratorTest.java,v 1.1 2004/03/15 19:30:33 jvanzyl Exp $
   */
  public class PluginConfiguratorTest
      extends TestCase
  {
      public void testPluginDescriptorBuilder()
          throws Exception
      {
          String xml =
              "<plugin>" +
              "  <id>compiler</id>" +
              "  <implementation>implementation</implementation>" +
              "  <goals>" +
              "    <goal>" +
              "      <name>compile</name>" +
              "      <configuration>" +
              "        <sourceDirectory>sourceDirectory</sourceDirectory>" +
              "        <outputDirectory>outputDirectory</outputDirectory>" +
              "        <classpathElements>classpathElements</classpathElements>" +
              "        <compiler>javac</compiler>" +
              "      </configuration>" +
              "    </goal>" +
              "  </goals>" +
              "</plugin>";
  
          PluginDescriptorBuilder pluginDescriptorBuilder = new 
PluginDescriptorBuilder();
  
          PluginDescriptor pd = pluginDescriptorBuilder.build( xml );
  
          PluginConfigurator pc = new PluginConfigurator();
  
          MockPlugin plugin = new MockPlugin();
  
          MavenProject project = new MavenProject();
  
          project.setProperties( new Properties() );
  
          GoalDescriptor gd = (GoalDescriptor) pd.getGoals().get( 0 );
  
          plugin = (MockPlugin) pc.configure( plugin, gd.getConfiguration(), project );
  
  
      }
  
      class MockPlugin
      {
          private String sourceDirectory;
  
          private String outputDirectory;
  
          private String classpathElements;
  
          private String compiler;
  
          public String getSourceDirectory()
          {
              return sourceDirectory;
          }
  
          public String getOutputDirectory()
          {
              return outputDirectory;
          }
  
          public String getClasspathElements()
          {
              return classpathElements;
          }
  
          public String getCompiler()
          {
              return compiler;
          }
      }
  }
  
  
  

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

Reply via email to