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]