List of usage examples for org.apache.maven.cli.internal BootstrapCoreExtensionManager loadCoreExtensions
public List<CoreExtensionEntry> loadCoreExtensions(MavenExecutionRequest request, Set<String> providedArtifacts, List<CoreExtension> extensions) throws Exception
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(); }