Example usage for org.apache.maven.cli.internal BootstrapCoreExtensionManager loadCoreExtensions

List of usage examples for org.apache.maven.cli.internal BootstrapCoreExtensionManager loadCoreExtensions

Introduction

In this page you can find the example usage for org.apache.maven.cli.internal BootstrapCoreExtensionManager loadCoreExtensions.

Prototype

public List<CoreExtensionEntry> loadCoreExtensions(MavenExecutionRequest request, Set<String> providedArtifacts,
            List<CoreExtension> extensions) throws Exception 

Source Link

Usage

From source file:org.kie.workbench.common.services.backend.compiler.external339.AFMavenCli.java

License:Apache License

protected List<CoreExtensionEntry> loadCoreExtensions(AFCliRequest cliRequest, ClassRealm containerRealm,
        Set<String> providedArtifacts) {
    if (cliRequest.getMultiModuleProjectDirectory() == null) {
        return Collections.emptyList();
    }//w  w w . jav a 2s  .c om

    Path extensionsFile = Paths.get(cliRequest.getMultiModuleProjectDirectory().toString(),
            EXTENSIONS_FILENAME);
    if (!java.nio.file.Files.isRegularFile(extensionsFile)) {
        return Collections.emptyList();
    }

    try {
        List<CoreExtension> extensions = readCoreExtensionsDescriptor(extensionsFile);
        if (extensions.isEmpty()) {
            return Collections.emptyList();
        }

        ContainerConfiguration cc = new DefaultContainerConfiguration() //
                .setClassWorld(cliRequest.getClassWorld()) //
                .setRealm(containerRealm) //
                .setClassPathScanning(PlexusConstants.SCANNING_INDEX) //
                .setAutoWiring(true) //
                .setName("maven");

        DefaultPlexusContainer container = new DefaultPlexusContainer(cc, new AbstractModule() {
            @Override
            protected void configure() {
                bind(ILoggerFactory.class).toInstance(slf4jLoggerFactory);
            }
        });

        try {
            container.setLookupRealm(null);

            container.setLoggerManager(plexusLoggerManager);

            container.getLoggerManager().setThresholds(cliRequest.getRequest().getLoggingLevel());

            Thread.currentThread().setContextClassLoader(container.getContainerRealm());

            executionRequestPopulator = container.lookup(MavenExecutionRequestPopulator.class);

            configurationProcessors = container.lookupMap(AFConfigurationProcessor.class);

            configure(cliRequest);

            MavenExecutionRequest request = DefaultMavenExecutionRequest.copy(cliRequest.getRequest());

            request = populateRequest(cliRequest, request);

            request = executionRequestPopulator.populateDefaults(request);

            BootstrapCoreExtensionManager resolver = container.lookup(BootstrapCoreExtensionManager.class);

            return resolver.loadCoreExtensions(request, providedArtifacts, extensions);
        } finally {
            executionRequestPopulator = null;
            container.dispose();
        }
    } catch (RuntimeException e) {
        // runtime exceptions are most likely bugs in maven, let them bubble up to the user
        throw e;
    } catch (Exception e) {
        slf4jLogger.warn("Failed to read extensions descriptor " + extensionsFile + ": " + e.getMessage());
    }
    return Collections.emptyList();
}

From source file:org.kie.workbench.common.services.backend.compiler.impl.external339.ReusableAFMavenCli.java

License:Apache License

protected List<CoreExtensionEntry> loadCoreExtensions(AFCliRequest cliRequest, ClassRealm containerRealm,
        Set<String> providedArtifacts) {
    if (cliRequest.getMultiModuleProjectDirectory() == null) {
        return Collections.emptyList();
    }/*from w w  w  .j a  va2s .c o m*/

    Path extensionsFile = Paths.get(cliRequest.getMultiModuleProjectDirectory().toString(),
            EXTENSIONS_FILENAME);
    if (!java.nio.file.Files.isRegularFile(extensionsFile)) {
        return Collections.emptyList();
    }

    try {
        List<CoreExtension> extensions = readCoreExtensionsDescriptor(extensionsFile);
        if (extensions.isEmpty()) {
            return Collections.emptyList();
        }

        ContainerConfiguration cc = new DefaultContainerConfiguration() //
                .setClassWorld(cliRequest.getClassWorld()) //
                .setRealm(containerRealm) //
                .setClassPathScanning(PlexusConstants.SCANNING_INDEX) //
                .setAutoWiring(true) //
                .setName("maven");
        if (reusableContainerCoreExtensions == null) {
            reusableContainerCoreExtensions = new DefaultPlexusContainer(cc, new AbstractModule() {
                @Override
                protected void configure() {
                    bind(ILoggerFactory.class).toInstance(slf4jLoggerFactory);
                }
            });
        }

        try {
            reusableContainerCoreExtensions.setLookupRealm(null);

            ((DefaultPlexusContainer) reusableContainerCoreExtensions).setLoggerManager(plexusLoggerManager);

            ((DefaultPlexusContainer) reusableContainerCoreExtensions).getLoggerManager()
                    .setThresholds(cliRequest.getRequest().getLoggingLevel());

            Thread.currentThread().setContextClassLoader(reusableContainerCoreExtensions.getContainerRealm());

            reusableExecutionRequestPopulator = reusableContainerCoreExtensions
                    .lookup(MavenExecutionRequestPopulator.class);

            reusableConfigurationProcessors = reusableContainerCoreExtensions
                    .lookupMap(AFConfigurationProcessor.class);

            configure(cliRequest);

            MavenExecutionRequest request = DefaultMavenExecutionRequest.copy(cliRequest.getRequest());

            request = populateRequest(cliRequest, request);

            request = reusableExecutionRequestPopulator.populateDefaults(request);

            BootstrapCoreExtensionManager resolver = reusableContainerCoreExtensions
                    .lookup(BootstrapCoreExtensionManager.class);

            reusableExtensions = resolver.loadCoreExtensions(request, providedArtifacts, extensions);

            return reusableExtensions;
        } finally {
            reusableExecutionRequestPopulator = null;
        }
    } catch (RuntimeException e) {
        // runtime exceptions are most likely bugs in maven, let them bubble up to the user
        throw e;
    } catch (Exception e) {
        reusableSlf4jLogger
                .warn("Failed to read extensions descriptor " + extensionsFile + ": " + e.getMessage());
    }
    return Collections.emptyList();
}