in maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/AbstractMojoTestCase.java [396:426]
protected <T extends Mojo> T lookupConfiguredMojo(MavenSession session, MojoExecution execution)
throws Exception, ComponentConfigurationException {
MavenProject project = session.getCurrentProject();
MojoDescriptor mojoDescriptor = execution.getMojoDescriptor();
T mojo = (T) lookup(mojoDescriptor.getRole(), mojoDescriptor.getRoleHint());
ExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator(session, execution);
Xpp3Dom configuration = null;
Plugin plugin = project.getPlugin(mojoDescriptor.getPluginDescriptor().getPluginLookupKey());
if (plugin != null) {
configuration = (Xpp3Dom) plugin.getConfiguration();
}
if (configuration == null) {
configuration = new Xpp3Dom("configuration");
}
configuration = Xpp3Dom.mergeXpp3Dom(configuration, execution.getConfiguration());
PlexusConfiguration pluginConfiguration = new XmlPlexusConfiguration(configuration);
if (mojoDescriptor.getComponentConfigurator() != null) {
configurator =
getContainer().lookup(ComponentConfigurator.class, mojoDescriptor.getComponentConfigurator());
}
configurator.configureComponent(
mojo, pluginConfiguration, evaluator, getContainer().getContainerRealm());
return mojo;
}