diff --git a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/WeldEEMockContainer.java b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/WeldEEMockContainer.java index 01f0f5618d5..034d82e00b1 100644 --- a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/WeldEEMockContainer.java +++ b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/WeldEEMockContainer.java @@ -71,6 +71,7 @@ public ContainerMethodExecutor deploy(Context context, Archive archive) throw ShrinkwrapBeanDeploymentArchive beanArchive = archive.as(ShrinkwrapBeanDeploymentArchive.class); MockEELifecycle lifecycle = new MockEELifecycle(beanArchive); + beanArchive.setBootstrap(lifecycle.getBootstrap()); ContextClassLoaderManager classLoaderManager = new ContextClassLoaderManager(beanArchive.getClassLoader()); classLoaderManager.enable(); diff --git a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/mock/MockBeanDeploymentArchive.java b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/mock/MockBeanDeploymentArchive.java index 475e889cc5a..c6839efd7e4 100644 --- a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/mock/MockBeanDeploymentArchive.java +++ b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/mock/MockBeanDeploymentArchive.java @@ -16,7 +16,6 @@ */ package org.jboss.arquillian.container.weld.ee.embedded_1_1.mock; -import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -33,6 +32,7 @@ import org.jboss.weld.bootstrap.api.ServiceRegistry; import org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry; import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive; +import org.jboss.weld.bootstrap.spi.BeansXml; import org.jboss.weld.ejb.spi.EjbDescriptor; /** @@ -44,7 +44,7 @@ public class MockBeanDeploymentArchive implements BeanDeploymentArchive private Collection> beanClasses; - private Collection beansXmlFiles; + private BeansXml beansXml; private List> ejbs; private final ServiceRegistry services; private final Collection bdas; @@ -59,7 +59,6 @@ public MockBeanDeploymentArchive(String id, Class ... classes) { this.services = new SimpleServiceRegistry(); this.beanClasses = Arrays.asList(classes); - this.beansXmlFiles = new HashSet(); this.bdas = new HashSet(); this.id = id; } @@ -79,16 +78,16 @@ public void setBeanClasses(Collection> beanClasses) } } - public Collection getBeansXml() + public BeansXml getBeansXml() { - return beansXmlFiles; + return beansXml; } - public void setBeansXmlFiles(Collection beansXmlFiles) + public void setBeansXml(BeansXml beansXml) { - this.beansXmlFiles = beansXmlFiles; + this.beansXml = beansXml; } - + public Collection getBeanDeploymentArchives() { return bdas; diff --git a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchive.java b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchive.java index bd19494bc42..694cb7f39ba 100644 --- a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchive.java +++ b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchive.java @@ -18,6 +18,7 @@ import org.jboss.shrinkwrap.api.Assignable; import org.jboss.shrinkwrap.classloader.ShrinkWrapClassLoader; +import org.jboss.weld.bootstrap.api.Bootstrap; import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive; /** @@ -29,4 +30,7 @@ public interface ShrinkwrapBeanDeploymentArchive extends BeanDeploymentArchive, Assignable { ShrinkWrapClassLoader getClassLoader(); + + void setBootstrap(Bootstrap bootstrap); + } diff --git a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchiveImpl.java b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchiveImpl.java index 0421b3fea27..3d7d55b696c 100644 --- a/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchiveImpl.java +++ b/arquillian/weld-ee-container/src/main/java/org/jboss/arquillian/container/weld/ee/embedded_1_1/shrinkwrap/ShrinkwrapBeanDeploymentArchiveImpl.java @@ -44,9 +44,11 @@ import org.jboss.shrinkwrap.impl.base.AssignableBase; import org.jboss.shrinkwrap.impl.base.Validate; import org.jboss.shrinkwrap.impl.base.asset.ArchiveAsset; +import org.jboss.weld.bootstrap.api.Bootstrap; import org.jboss.weld.bootstrap.api.ServiceRegistry; import org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry; import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive; +import org.jboss.weld.bootstrap.spi.BeansXml; import org.jboss.weld.ejb.spi.EjbDescriptor; /** @@ -62,12 +64,12 @@ public class ShrinkwrapBeanDeploymentArchiveImpl extends AssignableBase implemen private ServiceRegistry serviceRegistry = new SimpleServiceRegistry(); private ShrinkWrapClassLoader classLoader; + private Bootstrap bootstrap; public ShrinkwrapBeanDeploymentArchiveImpl(Archive archive) { Validate.notNull(archive, "Archive must be specified"); this.archive = archive; - this.classLoader = new ShrinkWrapClassLoader(archive.getClass().getClassLoader(), archive); } @@ -81,6 +83,11 @@ public ShrinkWrapClassLoader getClassLoader() { return classLoader; } + + public void setBootstrap(Bootstrap bootstrap) + { + this.bootstrap = bootstrap; + } public String getId() { @@ -92,8 +99,12 @@ public ServiceRegistry getServices() return serviceRegistry; } - public Collection getBeansXml() + public BeansXml getBeansXml() { + if (bootstrap == null) + { + throw new IllegalStateException("must call setBootstrap() before calling getBeansXml()"); + } List beanClasses = new ArrayList(); Map nestedArchives = archive.getContent(Filters.include(".*\\.jar|.*\\.war")); for(final Map.Entry nestedArchiveEntry : nestedArchives.entrySet()) @@ -164,7 +175,7 @@ public InputStream getInputStream() e.printStackTrace(); } } - return beanClasses; + return bootstrap.parse(beanClasses); } public Collection> getBeanClasses()