private void buildCommonClassLoaderEnvironment(PhysicalClassLoaderDefinition definition) { URI uri = definition.getUri(); // Create an alias to the host classloader which contains all contribution artifacts in a non-isolated environment. // This simulates multiple classloaders ClassLoader hostClassLoader = classLoaderRegistry.getClassLoader(HOST_CONTRIBUTION); classLoaderRegistry.register(uri, hostClassLoader); }
classLoaderRegistry.register(contributionUri, loader); return contribution;
classLoaderRegistry.register(contributionUri, loader); return contribution;
classLoaderRegistry.register(contributionUri, loader); return contribution;
private void buildIsolatedClassLoaderEnvironment(PhysicalClassLoaderDefinition definition) throws ClassLoaderBuilderException { URI uri = definition.getUri(); // build the classloader using the locally cached resources ClassLoader hostClassLoader = classLoaderRegistry.getClassLoader(HOST_CONTRIBUTION); MultiParentClassLoader loader; if (definition.isProvisionArtifact()) { URL[] classpath = resolveClasspath(definition); loader = new MultiParentClassLoader(uri, classpath, hostClassLoader); setSysPathsField(loader); } else { loader = new MultiParentClassLoader(uri, hostClassLoader); } for (PhysicalClassLoaderWireDefinition wireDefinition : definition.getWireDefinitions()) { wireBuilder.build(loader, wireDefinition); URI target = wireDefinition.getTargetClassLoader(); ClassLoader classLoader = classLoaderRegistry.getClassLoader(target); tracker.incrementImported(classLoader); } classLoaderRegistry.register(uri, loader); }