in cdi-weld/src/main/java/org/apache/aries/cdi/weld/WeldCDIContainerInitializer.java [86:130]
public AutoCloseable initialize() {
Thread currentThread = Thread.currentThread();
ClassLoader current = currentThread.getContextClassLoader();
BundleResourcesLoader resourceLoader = new BundleResourcesLoader(requireNonNull(spiLoader), weldBundleContext.getBundle());
try {
currentThread.setContextClassLoader(spiLoader);
// Add external extensions
List<Metadata<Extension>> metaExtensions = extensions.entrySet().stream().map(
e -> new ExtensionMetadata(e.getKey(), location(e.getValue()))
).collect(Collectors.toList());
BeansXml beansXml = BeansXml.EMPTY_BEANS_XML;
if (!beanDescriptorURLs.isEmpty()) {
BeansXmlParser beansXmlParser = new BeansXmlParser();
beansXml = beansXmlParser.parse(beanDescriptorURLs);
}
String id = clientBundleContext.getBundle().toString();
bootstrap = new WeldBootstrap();
beanDeploymentArchive = new ContainerDeploymentArchive(
resourceLoader,
id,
beanClasses.stream().map(Class::getName).collect(Collectors.toList()),
beansXml);
Deployment deployment = new ContainerDeployment(metaExtensions, beanDeploymentArchive);
bootstrap.startExtensions(metaExtensions);
bootstrap.startContainer(id, new ContainerEnvironment(), deployment);
bootstrap.startInitialization();
bootstrap.deployBeans();
bootstrap.validateBeans();
bootstrap.endInitialization();
return new WeldSeContainer();
}
finally {
currentThread.setContextClassLoader(current);
}
}