protected T lookupConfiguredMojo()

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;
    }