mirror of https://github.com/apache/maven.git
o debugging configuration merging
git-svn-id: https://svn.apache.org/repos/asf/maven/components/branches/MNG-2766@771096 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3fad6dd633
commit
d0778cc82d
|
@ -15,6 +15,7 @@ package org.apache.maven.lifecycle;
|
||||||
* the License.
|
* the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -38,11 +39,14 @@ import org.apache.maven.plugin.PluginConfigurationException;
|
||||||
import org.apache.maven.plugin.PluginExecutionException;
|
import org.apache.maven.plugin.PluginExecutionException;
|
||||||
import org.apache.maven.plugin.PluginLoaderException;
|
import org.apache.maven.plugin.PluginLoaderException;
|
||||||
import org.apache.maven.plugin.PluginManager;
|
import org.apache.maven.plugin.PluginManager;
|
||||||
|
import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
|
||||||
import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
||||||
import org.apache.maven.plugin.descriptor.Parameter;
|
import org.apache.maven.plugin.descriptor.Parameter;
|
||||||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||||
import org.apache.maven.project.MavenProject;
|
import org.apache.maven.project.MavenProject;
|
||||||
import org.codehaus.plexus.component.annotations.Requirement;
|
import org.codehaus.plexus.component.annotations.Requirement;
|
||||||
|
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
|
||||||
|
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
|
||||||
import org.codehaus.plexus.configuration.PlexusConfiguration;
|
import org.codehaus.plexus.configuration.PlexusConfiguration;
|
||||||
import org.codehaus.plexus.logging.Logger;
|
import org.codehaus.plexus.logging.Logger;
|
||||||
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
|
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
|
||||||
|
@ -179,6 +183,7 @@ public class DefaultLifecycleExecutor
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
logger.info( executionDescription( mojoExecution ) );
|
logger.info( executionDescription( mojoExecution ) );
|
||||||
|
System.out.println( "!!!");
|
||||||
System.out.println( mojoExecution.getConfiguration() );
|
System.out.println( mojoExecution.getConfiguration() );
|
||||||
pluginManager.executeMojo( session, mojoExecution );
|
pluginManager.executeMojo( session, mojoExecution );
|
||||||
}
|
}
|
||||||
|
@ -569,6 +574,7 @@ public class DefaultLifecycleExecutor
|
||||||
public Xpp3Dom getDefaultPluginConfiguration( String groupId, String artifactId, String version, String goal, MavenProject project, ArtifactRepository localRepository )
|
public Xpp3Dom getDefaultPluginConfiguration( String groupId, String artifactId, String version, String goal, MavenProject project, ArtifactRepository localRepository )
|
||||||
throws LifecycleExecutionException
|
throws LifecycleExecutionException
|
||||||
{
|
{
|
||||||
|
//return new Xpp3Dom( "configuration" );
|
||||||
return convert( getMojoDescriptor( groupId+":"+artifactId+":"+version+":"+goal, project, localRepository ) );
|
return convert( getMojoDescriptor( groupId+":"+artifactId+":"+version+":"+goal, project, localRepository ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -577,10 +583,9 @@ public class DefaultLifecycleExecutor
|
||||||
return convert( mojoDescriptor );
|
return convert( mojoDescriptor );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Xpp3Dom convert( MojoDescriptor mojoDescriptor )
|
public Xpp3Dom convert( MojoDescriptor mojoDescriptor )
|
||||||
{
|
{
|
||||||
Map<String,Parameter> parameters = mojoDescriptor.getParameterMap();
|
|
||||||
|
|
||||||
Xpp3Dom dom = new Xpp3Dom( "configuration" );
|
Xpp3Dom dom = new Xpp3Dom( "configuration" );
|
||||||
|
|
||||||
PlexusConfiguration c = mojoDescriptor.getMojoConfiguration();
|
PlexusConfiguration c = mojoDescriptor.getMojoConfiguration();
|
||||||
|
@ -588,15 +593,71 @@ public class DefaultLifecycleExecutor
|
||||||
PlexusConfiguration[] ces = c.getChildren();
|
PlexusConfiguration[] ces = c.getChildren();
|
||||||
|
|
||||||
for( PlexusConfiguration ce : ces )
|
for( PlexusConfiguration ce : ces )
|
||||||
|
{
|
||||||
|
if ( ce.getValue( null ) != null )
|
||||||
{
|
{
|
||||||
Xpp3Dom e = new Xpp3Dom( ce.getName() );
|
Xpp3Dom e = new Xpp3Dom( ce.getName() );
|
||||||
e.setValue( ce.getValue( ce.getAttribute( "default-value", null ) ) );
|
e.setValue( ce.getValue( null ) );
|
||||||
dom.addChild( e );
|
dom.addChild( e );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return dom;
|
return dom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// assign all values
|
||||||
|
// validate everything is fine
|
||||||
|
private Xpp3Dom processConfiguration( MavenSession session, MojoExecution mojoExecution )
|
||||||
|
{
|
||||||
|
ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session, mojoExecution );
|
||||||
|
|
||||||
|
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
|
||||||
|
|
||||||
|
Map<String,Parameter> parameters = mojoDescriptor.getParameterMap();
|
||||||
|
|
||||||
|
Xpp3Dom configuration = mojoExecution.getConfiguration();
|
||||||
|
|
||||||
|
for( Xpp3Dom c : configuration.getChildren() )
|
||||||
|
{
|
||||||
|
String configurationName = c.getName();
|
||||||
|
|
||||||
|
Parameter parameter = parameters.get( configurationName );
|
||||||
|
|
||||||
|
// Read-only
|
||||||
|
|
||||||
|
if ( !parameter.isEditable() )
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Object value = expressionEvaluator.evaluate( c.getValue() );
|
||||||
|
if ( value == null )
|
||||||
|
{
|
||||||
|
String e = c.getAttribute( "default-value" );
|
||||||
|
if ( e != null )
|
||||||
|
{
|
||||||
|
System.out.println( ">> " + e );
|
||||||
|
value = expressionEvaluator.evaluate( e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( value instanceof String || value instanceof File )
|
||||||
|
c.setValue( value.toString() );
|
||||||
|
}
|
||||||
|
catch ( ExpressionEvaluationException e )
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return mojoExecution.getConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// These are checks that should be available in real time to IDEs
|
// These are checks that should be available in real time to IDEs
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -193,9 +193,6 @@ public class DefaultMavenProjectBuilder
|
||||||
|
|
||||||
Set<Plugin> pl = lifecycle.populateDefaultConfigurationForPlugins(new HashSet<Plugin>(pln),
|
Set<Plugin> pl = lifecycle.populateDefaultConfigurationForPlugins(new HashSet<Plugin>(pln),
|
||||||
project, configuration.getLocalRepository());
|
project, configuration.getLocalRepository());
|
||||||
/*
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
for (Plugin buildPlugin : pl) {
|
for (Plugin buildPlugin : pl) {
|
||||||
Xpp3Dom dom = (Xpp3Dom) buildPlugin.getConfiguration();
|
Xpp3Dom dom = (Xpp3Dom) buildPlugin.getConfiguration();
|
||||||
|
@ -220,14 +217,8 @@ public class DefaultMavenProjectBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
project.getModel().getBuild().setPlugins(new ArrayList<Plugin>(pl));
|
project.getModel().getBuild().setPlugins(new ArrayList<Plugin>(pl));
|
||||||
/*
|
|
||||||
if(model.getArtifactId() != null &&
|
|
||||||
model.getArtifactId().equals("maven-model"))
|
|
||||||
{
|
|
||||||
System.out.println(new DomainModel(project.getModel()).asString());
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue