jvanzyl     2004/04/07 10:37:39

  Modified:    maven-plugins/maven-xdoc-plugin project.xml
               maven-plugins/maven-xdoc-plugin/src/main/java/org/apache/maven/xdoc
                        XdocPlugin.java
               maven-plugins/maven-xdoc-plugin/src/main/resources/META-INF/maven
                        plugin.xml
               
maven-plugins/maven-xdoc-plugin/src/test/java/org/apache/maven/xdoc/render
                        XdocPluginTest.java
  Removed:     maven-plugins/maven-xdoc-plugin/src/main/java/org/apache/maven/xdoc
                        Xdoc.java
  Log:
  o making the xdoc plugin and integrated plugin and starting to build a
    plugin test harness that can be used by any integrated plugin. I will
    push the test case back into the maven-core once I'm finished.
  
  Revision  Changes    Path
  1.2       +6 -0      maven-components/maven-plugins/maven-xdoc-plugin/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-plugins/maven-xdoc-plugin/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml       7 Apr 2004 01:36:01 -0000       1.1
  +++ project.xml       7 Apr 2004 17:37:39 -0000       1.2
  @@ -95,6 +95,12 @@
         <version>1.1-SNAPSHOT</version>
       </dependency>
   
  +    <dependency>
  +      <groupId>ognl</groupId>
  +      <artifactId>ognl</artifactId>
  +      <version>2.5.1</version>
  +    </dependency>
  +
     </dependencies>
     
     <reports>
  
  
  
  1.4       +3 -1      
maven-components/maven-plugins/maven-xdoc-plugin/src/main/java/org/apache/maven/xdoc/XdocPlugin.java
  
  Index: XdocPlugin.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-plugins/maven-xdoc-plugin/src/main/java/org/apache/maven/xdoc/XdocPlugin.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XdocPlugin.java   7 Apr 2004 15:09:32 -0000       1.3
  +++ XdocPlugin.java   7 Apr 2004 17:37:39 -0000       1.4
  @@ -4,6 +4,7 @@
   import org.apache.maven.xdoc.render.DefaultXdocRenderer;
   import org.apache.maven.plugin.PluginExecutionResponse;
   import org.apache.maven.plugin.PluginExecutionRequest;
  +import org.apache.maven.plugin.Plugin;
   import org.codehaus.plexus.util.FileUtils;
   import org.codehaus.plexus.util.IOUtil;
   
  @@ -21,6 +22,7 @@
    * @version $Id$
    */
   public class XdocPlugin
  +    implements Plugin
   {
       private DefaultXdocRenderer renderer;
   
  
  
  
  1.2       +1 -1      
maven-components/maven-plugins/maven-xdoc-plugin/src/main/resources/META-INF/maven/plugin.xml
  
  Index: plugin.xml
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-plugins/maven-xdoc-plugin/src/main/resources/META-INF/maven/plugin.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- plugin.xml        7 Apr 2004 15:14:15 -0000       1.1
  +++ plugin.xml        7 Apr 2004 17:37:39 -0000       1.2
  @@ -13,7 +13,7 @@
           </parameter>
           <parameter>
             <name>outputDirectory</name>
  -          <expression>#maven.build.dest</expression>
  +          <expression>target/docs</expression>
           </parameter>
           <parameter>
             <name>project</name>
  
  
  
  1.2       +76 -9     
maven-components/maven-plugins/maven-xdoc-plugin/src/test/java/org/apache/maven/xdoc/render/XdocPluginTest.java
  
  Index: XdocPluginTest.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-plugins/maven-xdoc-plugin/src/test/java/org/apache/maven/xdoc/render/XdocPluginTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XdocPluginTest.java       7 Apr 2004 01:36:04 -0000       1.1
  +++ XdocPluginTest.java       7 Apr 2004 17:37:39 -0000       1.2
  @@ -3,20 +3,28 @@
   import org.apache.maven.project.MavenProject;
   import org.apache.maven.project.MavenProjectBuilder;
   import org.apache.maven.xdoc.XdocPlugin;
  +import org.apache.maven.plugin.PluginExecutionRequest;
  +import org.apache.maven.plugin.PluginExecutionResponse;
  +import org.apache.maven.plugin.Plugin;
  +import org.apache.maven.plugin.plexus.executor.IntegratedPluginExecutor;
  +import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
  +import org.apache.maven.plugin.descriptor.PluginDescriptor;
  +import org.apache.maven.plugin.descriptor.GoalDescriptor;
   import org.codehaus.plexus.PlexusTestCase;
   
   import java.io.File;
  +import java.io.InputStreamReader;
  +import java.util.Iterator;
   
   /**
  - *
  - *
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
  - *
    * @version $Id$
    */
   public class XdocPluginTest
       extends PlexusTestCase
   {
  +    protected static String PLUGIN_DESCRIPTOR = "META-INF/maven/plugin.xml";
  +
       public XdocPluginTest( String s )
       {
           super( s );
  @@ -29,16 +37,75 @@
   
           MavenProjectBuilder builder = (MavenProjectBuilder) lookup( 
MavenProjectBuilder.ROLE );
   
  -        MavenProject project = builder.build( new File( System.getProperty( 
"basedir"), "project.xml" ) );
  +        MavenProject project = builder.build( new File( System.getProperty( 
"basedir" ), "project.xml" ) );
   
           XdocPlugin plugin = new XdocPlugin();
   
  -        plugin.setXdocDirectory( new File( basedir, "xdocs" ).getPath() );
  +        PluginExecutionResponse response = executePlugin( plugin, project );
  +
  +        if ( response.exceptionOccurred() )
  +        {
  +            throw new Exception( response.getException() );
  +        }
  +    }
  +
  +    protected PluginExecutionResponse executePlugin( Plugin plugin, MavenProject 
project )
  +        throws Exception
  +    {
  +        IntegratedPluginExecutor executor = new IntegratedPluginExecutor();
  +
  +        PluginExecutionRequest request = createPluginExecutionRequest( "xdoc", 
project );
  +
  +        request.setPlugin( plugin );
  +
  +        PluginExecutionResponse response = new PluginExecutionResponse();
  +
  +        executor.execute( request, response );
  +
  +        return response;
  +    }
  +
  +    protected PluginExecutionRequest createPluginExecutionRequest( String goal, 
MavenProject project )
  +        throws Exception
  +    {
  +        PluginDescriptor pluginDescriptor = findPluginDescriptor();
  +
  +        GoalDescriptor goalDescriptor = findGoalDescriptor( pluginDescriptor, 
"xdoc" );
  +
  +        PluginExecutionRequest request = new PluginExecutionRequest( 
pluginDescriptor, goalDescriptor, project );
  +
  +        return request;
  +    }
  +
  +    protected GoalDescriptor findGoalDescriptor( PluginDescriptor pluginDescriptor, 
String goal )
  +    {
  +        GoalDescriptor goalDescriptor = null;
  +
  +        for ( Iterator iterator = pluginDescriptor.getGoals().iterator(); 
iterator.hasNext(); )
  +        {
  +            GoalDescriptor gd = (GoalDescriptor) iterator.next();
  +
  +            if ( gd.getName().equals( goal ) )
  +            {
  +                goalDescriptor = gd;
  +
  +                break;
  +            }
  +        }
  +
  +        return goalDescriptor;
  +    }
  +
  +    protected PluginDescriptor findPluginDescriptor()
  +        throws Exception
  +    {
  +        PluginDescriptorBuilder builder = new PluginDescriptorBuilder();
   
  -        plugin.setProject( project );
  +        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
   
  -        plugin.setOutputDirectory( new File( basedir, "target/docs" ).getPath() );
  +        PluginDescriptor pluginDescriptor =
  +            builder.build( new InputStreamReader( classLoader.getResourceAsStream( 
PLUGIN_DESCRIPTOR ) ) );
   
  -        plugin.execute();
  +        return pluginDescriptor;
       }
   }
  
  
  

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

Reply via email to