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]