mirror of https://github.com/apache/maven.git
convert #component expressions to <requirements/>
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163942 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f0e391dba7
commit
378cc229a3
|
@ -392,14 +392,18 @@ public class DefaultPluginManager
|
|||
configuration = new XmlPlexusConfiguration( dom );
|
||||
}
|
||||
|
||||
Map map = getPluginConfigurationFromExpressions( mojoDescriptor, configuration, session );
|
||||
|
||||
if ( newMojoTechnique )
|
||||
{
|
||||
Map map = getPluginConfigurationFromExpressions( mojoDescriptor, configuration, session );
|
||||
|
||||
populatePluginFields( plugin, configuration, map );
|
||||
}
|
||||
else
|
||||
{
|
||||
getLogger().warn( "WARNING: The mojo " + mojoDescriptor.getId() + " is using the OLD API" );
|
||||
|
||||
Map map = getPluginConfigurationFromExpressions( mojoDescriptor, configuration, session );
|
||||
|
||||
request = createPluginRequest( configuration, map );
|
||||
}
|
||||
|
||||
|
@ -684,12 +688,11 @@ public class DefaultPluginManager
|
|||
public void initialize()
|
||||
{
|
||||
// TODO: configure this from bootstrap or scan lib
|
||||
artifactFilter = new ExclusionSetFilter( new String[]{"maven-core", "maven-artifact", "maven-model",
|
||||
"maven-settings", "maven-monitor", "maven-plugin-api",
|
||||
"maven-plugin-descriptor", "plexus-container-default",
|
||||
"plexus-artifact-container", "wagon-provider-api",
|
||||
"classworlds",
|
||||
"maven-plugin" /* Just re-added until all plugins are switched over...*/} );
|
||||
artifactFilter =
|
||||
new ExclusionSetFilter(
|
||||
new String[]{"maven-core", "maven-artifact", "maven-model", "maven-settings", "maven-monitor",
|
||||
"maven-plugin-api", "maven-plugin-descriptor", "plexus-container-default",
|
||||
"plexus-artifact-container", "wagon-provider-api", "classworlds", "maven-plugin" /* Just re-added until all plugins are switched over...*/} );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
|
|
@ -51,11 +51,6 @@ public class MavenMojoDescriptor
|
|||
return mojoDescriptor.getImplementation();
|
||||
}
|
||||
|
||||
public List getPrereqs()
|
||||
{
|
||||
return mojoDescriptor.getPrereqs();
|
||||
}
|
||||
|
||||
public String getComponentFactory()
|
||||
{
|
||||
return mojoDescriptor.getLanguage();
|
||||
|
@ -75,4 +70,9 @@ public class MavenMojoDescriptor
|
|||
{
|
||||
return DefaultPluginManager.MAVEN_PLUGIN;
|
||||
}
|
||||
|
||||
public List getRequirements()
|
||||
{
|
||||
return mojoDescriptor.getRequirements();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,9 @@ public class PluginParameterExpressionEvaluator
|
|||
}
|
||||
if ( expression.startsWith( "#component" ) )
|
||||
{
|
||||
context.getLog().warn( "WARNING: plugin is using deprecated expression " + expression );
|
||||
|
||||
// TODO: deprecated... and can remove the lookup method in context afterwards
|
||||
String role = expression.substring( 11 );
|
||||
|
||||
try
|
||||
|
|
|
@ -16,11 +16,19 @@ package org.apache.maven.plugin.descriptor;
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import org.codehaus.plexus.component.repository.ComponentRequirement;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The bean containing the mojo descriptor.
|
||||
*
|
||||
* @todo is there a need for the delegation of MavenMojoDescriptor to this? Why not just extend ComponentDescriptor here?
|
||||
*/
|
||||
public class MojoDescriptor
|
||||
implements Cloneable
|
||||
{
|
||||
|
@ -48,12 +56,12 @@ public class MojoDescriptor
|
|||
|
||||
private String phase;
|
||||
|
||||
private List requirements;
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
private List prereqs;
|
||||
|
||||
private String requiresDependencyResolution = null;
|
||||
|
||||
private boolean requiresProject = true;
|
||||
|
@ -64,11 +72,6 @@ public class MojoDescriptor
|
|||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
public String getRole()
|
||||
{
|
||||
return "org.apache.maven.plugin.Plugin";
|
||||
}
|
||||
|
||||
public String getImplementation()
|
||||
{
|
||||
return implementation;
|
||||
|
@ -169,29 +172,25 @@ public class MojoDescriptor
|
|||
this.requiresProject = requiresProject;
|
||||
}
|
||||
|
||||
public boolean requiresProject()
|
||||
public boolean isRequiresProject()
|
||||
{
|
||||
return requiresProject;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Prereqs
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
public List getPrereqs()
|
||||
public void setRequirements( List requirements )
|
||||
{
|
||||
return prereqs;
|
||||
this.requirements = requirements;
|
||||
}
|
||||
|
||||
public void setPrereqs( List prereqs )
|
||||
public List getRequirements()
|
||||
{
|
||||
this.prereqs = prereqs;
|
||||
if ( requirements == null )
|
||||
{
|
||||
requirements = new ArrayList();
|
||||
}
|
||||
return requirements;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
public String getPhase()
|
||||
{
|
||||
return phase;
|
||||
|
@ -226,4 +225,9 @@ public class MojoDescriptor
|
|||
{
|
||||
this.executionStrategy = executionStrategy;
|
||||
}
|
||||
|
||||
public void addRequirement( ComponentRequirement cr )
|
||||
{
|
||||
getRequirements().add( cr );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.apache.maven.plugin.descriptor;
|
||||
|
||||
import org.codehaus.plexus.component.repository.ComponentRequirement;
|
||||
import org.codehaus.plexus.configuration.PlexusConfiguration;
|
||||
import org.codehaus.plexus.configuration.PlexusConfigurationException;
|
||||
import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
|
||||
|
@ -155,23 +156,29 @@ public class PluginDescriptorBuilder
|
|||
|
||||
mojo.setParameters( parameters );
|
||||
|
||||
// TODO: this should not need to be handed off...
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Prereqs
|
||||
// Requirements
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
PlexusConfiguration[] prereqConfigurations = c.getChild( "prereqs" ).getChildren( "prereq" );
|
||||
PlexusConfiguration[] requirements = c.getChild( "requirements" ).getChildren( "requirement" );
|
||||
|
||||
List prereqs = new ArrayList();
|
||||
|
||||
for ( int i = 0; i < prereqConfigurations.length; i++ )
|
||||
for ( int i = 0; i < requirements.length; i++ )
|
||||
{
|
||||
PlexusConfiguration d = prereqConfigurations[i];
|
||||
PlexusConfiguration requirement = requirements[i];
|
||||
|
||||
prereqs.add( d.getValue() );
|
||||
ComponentRequirement cr = new ComponentRequirement();
|
||||
|
||||
cr.setRole( requirement.getChild( "role" ).getValue() );
|
||||
|
||||
cr.setRoleHint( requirement.getChild( "role-hint" ).getValue() );
|
||||
|
||||
cr.setFieldName( requirement.getChild( "field-name" ).getValue() );
|
||||
|
||||
mojo.addRequirement( cr );
|
||||
}
|
||||
|
||||
mojo.setPrereqs( prereqs );
|
||||
|
||||
return mojo;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@ import org.codehaus.plexus.util.xml.XMLWriter;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
@ -159,6 +161,7 @@ public class PluginDescriptorGenerator
|
|||
|
||||
w.startElement( "parameters" );
|
||||
|
||||
Collection requirements = new ArrayList();
|
||||
for ( int j = 0; j < parameters.size(); j++ )
|
||||
{
|
||||
Parameter parameter = (Parameter) parameters.get( j );
|
||||
|
@ -169,11 +172,18 @@ public class PluginDescriptorGenerator
|
|||
|
||||
element( w, "type", parameter.getType() );
|
||||
|
||||
element( w, "required", Boolean.toString( parameter.isRequired() ) );
|
||||
|
||||
element( w, "validator", parameter.getValidator() );
|
||||
|
||||
element( w, "expression", parameter.getExpression() );
|
||||
if ( parameter.getExpression().startsWith( "#component" ) )
|
||||
{
|
||||
requirements.add( parameter );
|
||||
}
|
||||
else
|
||||
{
|
||||
element( w, "required", Boolean.toString( parameter.isRequired() ) );
|
||||
|
||||
element( w, "expression", parameter.getExpression() );
|
||||
}
|
||||
|
||||
element( w, "description", parameter.getDescription() );
|
||||
|
||||
|
@ -185,20 +195,24 @@ public class PluginDescriptorGenerator
|
|||
w.endElement();
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Prereqs
|
||||
// Requirements
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
// TODO: remove
|
||||
|
||||
List prereqs = mojoDescriptor.getPrereqs();
|
||||
|
||||
if ( prereqs != null && prereqs.size() > 0 )
|
||||
if ( !requirements.isEmpty() )
|
||||
{
|
||||
w.startElement( "prereqs" );
|
||||
w.startElement( "requirements" );
|
||||
|
||||
for ( int j = 0; j < prereqs.size(); j++ )
|
||||
for ( Iterator i = requirements.iterator(); i.hasNext(); )
|
||||
{
|
||||
element( w, "prereq", (String) prereqs.get( j ) );
|
||||
Parameter requirement = (Parameter) i.next();
|
||||
|
||||
w.startElement( "requirement" );
|
||||
|
||||
element( w, "role", requirement.getExpression().substring( 11 ) );
|
||||
|
||||
element( w, "field-name", requirement.getName() );
|
||||
|
||||
w.endElement();
|
||||
}
|
||||
|
||||
w.endElement();
|
||||
|
|
|
@ -214,27 +214,6 @@ public class JellyHarnessGenerator
|
|||
|
||||
w.addAttribute( "name", id + ":" + mojoDescriptor.getGoal() );
|
||||
|
||||
List goalPrereqs = mojoDescriptor.getPrereqs();
|
||||
|
||||
if ( goalPrereqs.size() > 0 )
|
||||
{
|
||||
StringBuffer prereqs = new StringBuffer();
|
||||
|
||||
for ( int j = 0; j < goalPrereqs.size(); j++ )
|
||||
{
|
||||
String prereq = (String) goalPrereqs.get( j );
|
||||
|
||||
prereqs.append( prereq );
|
||||
|
||||
if ( j < goalPrereqs.size() - 1 )
|
||||
{
|
||||
prereqs.append( "," );
|
||||
}
|
||||
}
|
||||
|
||||
w.addAttribute( "prereqs", prereqs.toString() );
|
||||
}
|
||||
|
||||
if ( mojoDescriptor.getDescription() != null )
|
||||
{
|
||||
w.addAttribute( "description", mojoDescriptor.getDescription() );
|
||||
|
|
|
@ -103,6 +103,8 @@ public class MetadataTag
|
|||
descriptor.setRequiresDependencyResolution( requiresDependencyResolution );
|
||||
descriptor.setRequiresProject( requiresProject );
|
||||
|
||||
// TODO: component requirements
|
||||
|
||||
String basePath = (String) context.getVariable( MarmaladeMojoExecutionDirectives.SCRIPT_BASEPATH_INVAR,
|
||||
getExpressionEvaluator() );
|
||||
|
||||
|
|
Loading…
Reference in New Issue