private void debugMojoExecution( MojoExecution mojoExecution ) { String mojoExecId = mojoExecution.getGroupId() + ':' + mojoExecution.getArtifactId() + ':' + mojoExecution.getVersion() + ':' + mojoExecution.getGoal() + " (" + mojoExecution.getExecutionId() + ')'; Map<String, List<MojoExecution>> forkedExecutions = mojoExecution.getForkedExecutions(); if ( !forkedExecutions.isEmpty() ) { for ( Map.Entry<String, List<MojoExecution>> fork : forkedExecutions.entrySet() ) { logger.debug( "--- init fork of " + fork.getKey() + " for " + mojoExecId + " ---" ); debugDependencyRequirements( fork.getValue() ); for ( MojoExecution forkedExecution : fork.getValue() ) { debugMojoExecution( forkedExecution ); } logger.debug( "--- exit fork of " + fork.getKey() + " for " + mojoExecId + " ---" ); } } logger.debug( "-----------------------------------------------------------------------" ); logger.debug( "Goal: " + mojoExecId ); logger.debug( "Style: " + ( mojoExecution.getMojoDescriptor().isAggregator() ? "Aggregating" : "Regular" ) ); logger.debug( "Configuration: " + mojoExecution.getConfiguration() ); }
Xpp3Dom dom = mojoExecution.getConfiguration();
Xpp3Dom forkedConfiguration = forkedExecution.getConfiguration();
Xpp3Dom executionConfiguration = mojoExecution.getConfiguration(); if ( executionConfiguration == null )
@Override public void configure( MavenProject project, MojoExecution mojoExecution, boolean allowPluginLevelConfig ) { String g = mojoExecution.getGroupId(); String a = mojoExecution.getArtifactId(); Plugin plugin = findPlugin( g, a, project.getBuildPlugins() ); if ( plugin == null && project.getPluginManagement() != null ) { plugin = findPlugin( g, a, project.getPluginManagement().getPlugins() ); } if ( plugin != null ) { PluginExecution pluginExecution = findPluginExecution( mojoExecution.getExecutionId(), plugin.getExecutions() ); Xpp3Dom pomConfiguration = null; if ( pluginExecution != null ) { pomConfiguration = (Xpp3Dom) pluginExecution.getConfiguration(); } else if ( allowPluginLevelConfig ) { pomConfiguration = (Xpp3Dom) plugin.getConfiguration(); } Xpp3Dom mojoConfiguration = ( pomConfiguration != null ) ? new Xpp3Dom( pomConfiguration ) : null; mojoConfiguration = Xpp3Dom.mergeXpp3Dom( mojoExecution.getConfiguration(), mojoConfiguration ); mojoExecution.setConfiguration( mojoConfiguration ); } }
/** * @since 3.2.0 */ public void executeMojo( MavenSession session, MavenProject project, String goal, Xpp3Dom... parameters ) throws Exception { MojoExecution execution = newMojoExecution( goal ); if ( parameters != null ) { Xpp3Dom configuration = execution.getConfiguration(); for ( Xpp3Dom parameter : parameters ) { configuration.addChild( parameter ); } } executeMojo( session, project, execution ); }
Xpp3Dom executionConfiguration = mojoExecution.getConfiguration(); if ( executionConfiguration == null )
configuration = Xpp3Dom.mergeXpp3Dom( configuration, execution.getConfiguration() );
private void verifyReplacedParameter( String oldParamName, String newParamNew ) { Object pluginConfiguration = mojo.getConfiguration(); if ( pluginConfiguration instanceof Xpp3Dom ) { Xpp3Dom configDom = (Xpp3Dom) pluginConfiguration; if ( configDom.getChild( oldParamName ) != null ) { throw new IllegalArgumentException( "parameter '" + oldParamName + "' has been replaced with " + newParamNew + ", please verify documentation." ); } } }
protected final void verifyRemovedParameter( String paramName ) { Object pluginConfiguration = mojo.getConfiguration(); if ( pluginConfiguration instanceof Xpp3Dom ) { Xpp3Dom configDom = (Xpp3Dom) pluginConfiguration; if ( configDom.getChild( paramName ) != null ) { throw new IllegalArgumentException( "parameter '" + paramName + "' has been removed from the plugin, please verify documentation." ); } } }
public MojoExecutor(MojoExecution execution, MavenProject project, MavenSession session, BuildPluginManager buildPluginManager) { this.build = buildPluginManager; this.project = project; this.session = session; this.plugin = execution.getPlugin(); configuration = execution.getConfiguration(); goal = execution.getGoal(); }
@Nonnull @Override protected List<String> getConfigurationParametersToReport(ExecutionEvent executionEvent) { MojoExecution mojoExecution = executionEvent.getMojoExecution(); if (mojoExecution == null) { return Collections.emptyList(); } Xpp3Dom configuration = mojoExecution.getConfiguration(); List<String> parameters = new ArrayList<String>(); for (Xpp3Dom configurationParameter : configuration.getChildren()) { parameters.add(configurationParameter.getName()); } return parameters; }
/** @since 2.9 */ public MojoExecution newMojoExecution(String goal, Xpp3Dom... parameters) { MojoExecution execution = runtime.newMojoExecution(goal); if (parameters != null) { // TODO decide if this should go to runtime.newMojoExecution Xpp3Dom configuration = execution.getConfiguration(); for (Xpp3Dom parameter : parameters) { configuration.addChild(parameter); } } return execution; }
@Nullable protected String getMojoConfigurationValue(@Nonnull MojoExecution execution, @Nonnull String elementName) { Xpp3Dom element = execution.getConfiguration().getChild(elementName); return element == null ? null : element.getValue() == null ? element.getAttribute("default-value") : element.getValue(); }
@Override public void mojoStarted(final ExecutionEvent event) { interpolator.interpolateDOM( event.getMojoExecution().getConfiguration()); super.mojoStarted(event); }
public AbstractMavenPluginConfigurationTranslator(final IMaven maven, final MavenSession session, final MavenProject mavenProject, final MojoExecution mojoExecution, final IProject project, final IProgressMonitor monitor) throws CoreException { this.maven = maven; this.mavenProject = mavenProject; this.project = project; this.mojoExecution = mojoExecution; this.monitor = monitor; this.resourceResolver = AbstractMavenPluginProjectConfigurator .getResourceResolver(mojoExecution, session, project.getLocation()); execution = new PluginExecution(); execution.setConfiguration(mojoExecution.getConfiguration()); }
protected <T> T getParameterValue(String parameter, Class<T> asType, MavenSession session, MojoExecution mojoExecution) throws CoreException { PluginExecution execution = new PluginExecution(); execution.setConfiguration(mojoExecution.getConfiguration()); return maven.getMojoParameterValue(parameter, asType, session, mojoExecution.getPlugin(), execution, mojoExecution.getGoal()); }
public MojoInfo(ExecutionEvent event, long startTime) { this(event.getMojoExecution(), null, new XmlPlexusConfiguration( event.getMojoExecution().getConfiguration() ), new PluginParameterExpressionEvaluator( event.getSession(), event.getMojoExecution() ), startTime); }
/** * Returns a mojo configured with the mojo's default configuration. */ // workaround for MPLUGINTESTING-46 - see http://jira.codehaus.org/browse/MPLUGINTESTING-46 protected Mojo lookupMojoWithDefaultConfiguration(MavenProject project, MavenSession session, String goal) throws Exception { MojoExecution mojoExecution = newMojoExecution(goal); Xpp3Dom defaultConfiguration = mojoExecution.getConfiguration(); // the ResolverExpressionEvaluatorStub of lookupMojo is not sufficient to evaluate the variables in the default configuration ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator(session, mojoExecution); ComponentConfigurator configurator = getContainer().lookup(ComponentConfigurator.class, "basic"); Mojo mojo = lookupEmptyMojo(goal, project.getFile()); configurator.configureComponent(mojo, new XmlPlexusConfiguration(defaultConfiguration), expressionEvaluator, getContainer().getContainerRealm(), null); return mojo; }
@Override public Mojo lookupConfiguredMojo(MavenSession session, MojoExecution execution) throws Exception { MavenProject project = session.getCurrentProject(); MojoDescriptor mojoDescriptor = execution.getMojoDescriptor(); Mojo mojo = container.lookup(Mojo.class, mojoDescriptor.getRoleHint()); ExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator(session, execution); mojoExecutionConfigurator(execution).configure(project, execution, true); finalizeMojoConfiguration(execution); PlexusConfiguration mojoConfiguration = new XmlPlexusConfiguration(execution.getConfiguration()); String configuratorHint = "basic"; if (mojoDescriptor.getComponentConfigurator() != null) { configuratorHint = mojoDescriptor.getComponentConfigurator(); } ComponentConfigurator configurator = container.lookup(ComponentConfigurator.class, configuratorHint); configurator.configureComponent(mojo, mojoConfiguration, evaluator, container.getContainerRealm()); return mojo; }