org.codehaus.plexus.classworlds.ClassWorld Java Examples
The following examples show how to use
org.codehaus.plexus.classworlds.ClassWorld.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: EmbedderFactory.java From netbeans with Apache License 2.0 | 6 votes |
public static @NonNull MavenEmbedder createProjectLikeEmbedder() throws PlexusContainerException { final String mavenCoreRealmId = "plexus.core"; ContainerConfiguration dpcreq = new DefaultContainerConfiguration() .setClassWorld( new ClassWorld(mavenCoreRealmId, EmbedderFactory.class.getClassLoader()) ) .setClassPathScanning( PlexusConstants.SCANNING_INDEX ) .setName("maven"); DefaultPlexusContainer pc = new DefaultPlexusContainer(dpcreq, new ExtensionModule()); pc.setLoggerManager(new NbLoggerManager()); Properties userprops = new Properties(); userprops.putAll(getCustomGlobalUserProperties()); EmbedderConfiguration configuration = new EmbedderConfiguration(pc, cloneStaticProps(), userprops, true, getSettingsXml()); try { return new MavenEmbedder(configuration); //MEVENIDE-634 make all instances non-interactive // WagonManager wagonManager = (WagonManager) embedder.getPlexusContainer().lookup(WagonManager.ROLE); // wagonManager.setInteractive(false); } catch (ComponentLookupException ex) { throw new PlexusContainerException(ex.toString(), ex); } }
Example #2
Source File: RepositoryUtility.java From cloud-opensource-java with Apache License 2.0 | 5 votes |
static MavenProject createMavenProject(Path pomFile, RepositorySystemSession session) throws MavenRepositoryException { // MavenCli's way to instantiate PlexusContainer ClassWorld classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader()); ContainerConfiguration containerConfiguration = new DefaultContainerConfiguration() .setClassWorld(classWorld) .setRealm(classWorld.getClassRealm("plexus.core")) .setClassPathScanning(PlexusConstants.SCANNING_INDEX) .setAutoWiring(true) .setJSR250Lifecycle(true) .setName("linkage-checker"); try { PlexusContainer container = new DefaultPlexusContainer(containerConfiguration); MavenExecutionRequest mavenExecutionRequest = new DefaultMavenExecutionRequest(); ProjectBuildingRequest projectBuildingRequest = mavenExecutionRequest.getProjectBuildingRequest(); projectBuildingRequest.setRepositorySession(session); // Profile activation needs properties such as JDK version Properties properties = new Properties(); // allowing duplicate entries properties.putAll(projectBuildingRequest.getSystemProperties()); properties.putAll(OsProperties.detectOsProperties()); properties.putAll(System.getProperties()); projectBuildingRequest.setSystemProperties(properties); ProjectBuilder projectBuilder = container.lookup(ProjectBuilder.class); ProjectBuildingResult projectBuildingResult = projectBuilder.build(pomFile.toFile(), projectBuildingRequest); return projectBuildingResult.getProject(); } catch (PlexusContainerException | ComponentLookupException | ProjectBuildingException ex) { throw new MavenRepositoryException(ex); } }
Example #3
Source File: NexusRepositoryIndexerImpl.java From netbeans with Apache License 2.0 | 5 votes |
private void initIndexer () { if (!inited) { try { ContainerConfiguration config = new DefaultContainerConfiguration(); //#154755 - start ClassLoader indexerLoader = NexusRepositoryIndexerImpl.class.getClassLoader(); ClassWorld classWorld = new ClassWorld(); ClassRealm plexusRealm = classWorld.newRealm("plexus.core", EmbedderFactory.class.getClassLoader()); //NOI18N plexusRealm.importFrom(indexerLoader, "META-INF/sisu"); //NOI18N plexusRealm.importFrom(indexerLoader, "org.apache.maven.index"); //NOI18N plexusRealm.importFrom(indexerLoader, "org.netbeans.modules.maven.indexer"); //NOI18N config.setClassWorld(classWorld); config.setClassPathScanning( PlexusConstants.SCANNING_INDEX ); //#154755 - end embedder = new DefaultPlexusContainer(config); ComponentDescriptor<ArtifactContextProducer> desc = new ComponentDescriptor<ArtifactContextProducer>(); desc.setRoleClass(ArtifactContextProducer.class); desc.setImplementationClass(CustomArtifactContextProducer.class); ComponentRequirement req = new ComponentRequirement(); // XXX why is this not automatic? req.setFieldName("mapper"); req.setRole(ArtifactPackagingMapper.class.getName()); desc.addRequirement(req); embedder.addComponentDescriptor(desc); indexer = embedder.lookup(Indexer.class); searcher = embedder.lookup(SearchEngine.class); remoteIndexUpdater = embedder.lookup(IndexUpdater.class); contextProducer = embedder.lookup(ArtifactContextProducer.class); scanner = new FastScanner(contextProducer); inited = true; } catch (Exception x) { Exceptions.printStackTrace(x); } } }
Example #4
Source File: PojoGenerationConfigTest.java From springmvc-raml-plugin with Apache License 2.0 | 5 votes |
private MavenProject getMavenProject(final String pomDir) throws Exception { final File pom = getPomDir(pomDir); final MavenProject mavenProject = mojoRule.readMavenProject(pom); final ClassWorld classWorld = new ClassWorld(); final ClassRealm realm = classWorld.newRealm("test", getClass().getClassLoader()); mavenProject.setClassRealm(realm); return mavenProject; }
Example #5
Source File: EmbedderFactory.java From netbeans with Apache License 2.0 | 4 votes |
@NonNull static MavenEmbedder createOnlineEmbedder() throws PlexusContainerException { final String mavenCoreRealmId = "plexus.core"; ContainerConfiguration dpcreq = new DefaultContainerConfiguration() .setClassWorld( new ClassWorld(mavenCoreRealmId, EmbedderFactory.class.getClassLoader()) ) .setClassPathScanning( PlexusConstants.SCANNING_INDEX ) .setName("maven"); DefaultPlexusContainer pc = new DefaultPlexusContainer(dpcreq); pc.setLoggerManager(new NbLoggerManager()); Properties userprops = new Properties(); userprops.putAll(getCustomGlobalUserProperties()); EmbedderConfiguration req = new EmbedderConfiguration(pc, cloneStaticProps(), userprops, false, getSettingsXml()); // //TODO remove explicit activation // req.addActiveProfile("netbeans-public").addActiveProfile("netbeans-private"); //NOI18N // req.setConfigurationCustomizer(new ContainerCustomizer() { // // public void customize(PlexusContainer plexusContainer) { // //MEVENIDE-634 // ComponentDescriptor desc = plexusContainer.getComponentDescriptor(KnownHostsProvider.ROLE, "file"); //NOI18N // desc.getConfiguration().getChild("hostKeyChecking").setValue("no"); //NOI18N // // //MEVENIDE-634 // desc = plexusContainer.getComponentDescriptor(KnownHostsProvider.ROLE, "null"); //NOI18N // desc.getConfiguration().getChild("hostKeyChecking").setValue("no"); //NOI18N // } // }); try { return new MavenEmbedder(req); //MEVENIDE-634 make all instances non-interactive // WagonManager wagonManager = (WagonManager) embedder.getPlexusContainer().lookup(WagonManager.ROLE); // wagonManager.setInteractive(false); } catch (ComponentLookupException ex) { throw new PlexusContainerException(ex.toString(), ex); } // try { // //MEVENIDE-634 make all instances non-interactive // WagonManager wagonManager = (WagonManager) embedder.getPlexusContainer().lookup(WagonManager.ROLE); // wagonManager.setInteractive( false ); // wagonManager.setDownloadMonitor(new ProgressTransferListener()); // } catch (ComponentLookupException ex) { // ErrorManager.getDefault().notify(ex); // } }
Example #6
Source File: PlexusSisuBridge.java From archiva with Apache License 2.0 | 4 votes |
@PostConstruct public void initialize() throws PlexusSisuBridgeException { DefaultContainerConfiguration conf = new DefaultContainerConfiguration(); conf.setAutoWiring( containerAutoWiring ); conf.setClassPathScanning( containerClassPathScanning ); conf.setComponentVisibility( containerComponentVisibility ); conf.setContainerConfigurationURL( overridingComponentsXml ); ClassWorld classWorld = new ClassWorld(); ClassLoader tccl = Thread.currentThread().getContextClassLoader(); containerRealm = new ClassRealm( classWorld, "maven", tccl ); // olamy hackhish but plexus-sisu need a URLClassLoader with URL filled if ( tccl instanceof URLClassLoader ) { URL[] urls = ( (URLClassLoader) tccl ).getURLs(); for ( URL url : urls ) { containerRealm.addURL( url ); log.debug("Added url {}", url); } } conf.setRealm( containerRealm ); //conf.setClassWorld( classWorld ); ClassLoader ori = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader( containerRealm ); InternalBinder binder = new InternalBinder( ); plexusContainer = new DefaultPlexusContainer( conf, binder ); } catch ( PlexusContainerException e ) { throw new PlexusSisuBridgeException( e.getMessage(), e ); } catch (Throwable ex) { log.error("PlexusSisuBridge initialization failed {}", ex.getMessage(), ex); throw new PlexusSisuBridgeException( ex.getMessage(), ex ); } finally { Thread.currentThread().setContextClassLoader( ori ); } }