mojo.setGoal( c.getChild( "goal" ).getValue() );
mojo.setImplementation( c.getChild( "implementation" ).getValue() );
PlexusConfiguration langConfig = c.getChild( "language" );
if ( langConfig != null )
{
mojo.setLanguage( langConfig.getValue() );
}
PlexusConfiguration configuratorConfig = c.getChild( "configurator" );
if ( configuratorConfig != null )
{
mojo.setComponentConfigurator( configuratorConfig.getValue() );
}
PlexusConfiguration composerConfig = c.getChild( "composer" );
if ( composerConfig != null )
{
mojo.setComponentComposer( composerConfig.getValue() );
}
String since = c.getChild( "since" ).getValue();
if ( since != null )
{
mojo.setSince( since );
}
String phase = c.getChild( "phase" ).getValue();
if ( phase != null )
{
mojo.setPhase( phase );
}
String executePhase = c.getChild( "executePhase" ).getValue();
if ( executePhase != null )
{
mojo.setExecutePhase( executePhase );
}
String executeMojo = c.getChild( "executeGoal" ).getValue();
if ( executeMojo != null )
{
mojo.setExecuteGoal( executeMojo );
}
String executeLifecycle = c.getChild( "executeLifecycle" ).getValue();
if ( executeLifecycle != null )
{
mojo.setExecuteLifecycle( executeLifecycle );
}
mojo.setInstantiationStrategy( c.getChild( "instantiationStrategy" ).getValue() );
mojo.setDescription( c.getChild( "description" ).getValue() );
String dependencyResolution = c.getChild( "requiresDependencyResolution" ).getValue();
if ( dependencyResolution != null )
{
mojo.setDependencyResolutionRequired( dependencyResolution );
}
String directInvocationOnly = c.getChild( "requiresDirectInvocation" ).getValue();
if ( directInvocationOnly != null )
{
mojo.setDirectInvocationOnly( Boolean.valueOf( directInvocationOnly ).booleanValue() );
}
String requiresProject = c.getChild( "requiresProject" ).getValue();
if ( requiresProject != null )
{
mojo.setProjectRequired( Boolean.valueOf( requiresProject ).booleanValue() );
}
String requiresReports = c.getChild( "requiresReports" ).getValue();
if ( requiresReports != null )
{
mojo.setRequiresReports( Boolean.valueOf( requiresReports ).booleanValue() );
}
String aggregator = c.getChild( "aggregator" ).getValue();
if ( aggregator != null )
{
mojo.setAggregator( Boolean.valueOf( aggregator ).booleanValue() );
}
String requiresOnline = c.getChild( "requiresOnline" ).getValue();
if ( requiresOnline != null )
{
mojo.setOnlineRequired( Boolean.valueOf( requiresOnline ).booleanValue() );
}
String inheritedByDefault = c.getChild( "inheritedByDefault" ).getValue();
if ( inheritedByDefault != null )
{
mojo.setInheritedByDefault( Boolean.valueOf( inheritedByDefault ).booleanValue() );
}
// ----------------------------------------------------------------------
// Parameters
// ----------------------------------------------------------------------
PlexusConfiguration[] parameterConfigurations = c.getChild( "parameters" ).getChildren( "parameter" );
List parameters = new ArrayList();
for ( int i = 0; i < parameterConfigurations.length; i++ )
{
PlexusConfiguration d = parameterConfigurations[i];
Parameter parameter = new Parameter();
parameter.setName( d.getChild( "name" ).getValue() );
parameter.setAlias( d.getChild( "alias" ).getValue() );
parameter.setType( d.getChild( "type" ).getValue() );
String required = d.getChild( "required" ).getValue();
parameter.setRequired( Boolean.valueOf( required ).booleanValue() );
PlexusConfiguration editableConfig = d.getChild( "editable" );
// we need the null check for pre-build legacy plugins...
if ( editableConfig != null )
{
String editable = d.getChild( "editable" ).getValue();
parameter.setEditable( editable == null || Boolean.valueOf( editable ).booleanValue() );
}
parameter.setDescription( d.getChild( "description" ).getValue() );
parameter.setDeprecated( d.getChild( "deprecated" ).getValue() );
parameter.setImplementation( d.getChild( "implementation" ).getValue() );
parameters.add( parameter );
}
mojo.setParameters( parameters );
// TODO: this should not need to be handed off...
// ----------------------------------------------------------------------
// Configuration
// ----------------------------------------------------------------------
mojo.setMojoConfiguration( c.getChild( "configuration" ) );
// TODO: Go back to this when we get the container ready to configure mojos...
// mojo.setConfiguration( c.getChild( "configuration" ) );
// ----------------------------------------------------------------------
// Requirements
// ----------------------------------------------------------------------
PlexusConfiguration[] requirements = c.getChild( "requirements" ).getChildren( "requirement" );
for ( int i = 0; i < requirements.length; i++ )
{
PlexusConfiguration requirement = requirements[i];
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 );
}
return mojo;