Search in sources :

Example 11 with Deployment

use of org.jboss.weld.bootstrap.spi.Deployment in project core by weld.

the class InjectionTargetCreationTest method test.

@Test
public void test() {
    // Create the BDA in which we will deploy FooExtension. This BDA does not have access to bda2
    final BeanDeploymentArchive bda1 = new BeanDeploymentArchiveImpl("1", FooExtension.class);
    // Create the BDA in which we will deploy FooTarget and SimpleBean. This BDA does not have access to bda1
    final BeanDeploymentArchive bda2 = new BeanDeploymentArchiveImpl("2", SimpleBean.class, FooTarget.class);
    final FooExtension extension = new FooExtension();
    // Create a deployment, that we can use to mirror the structure of one Extension inside a BDA, and one outside
    Deployment deployment = new FlatDeployment(new BeanDeploymentArchive[] { bda1, bda2 }, extension) {

        public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass) {
            // Return bda2 if it is Observer2. Stick anything else which this test isn't about in bda1
            if (beanClass.equals(FooExtension.class)) {
                return bda1;
            } else {
                return bda2;
            }
        }

        public BeanDeploymentArchive getBeanDeploymentArchive(Class<?> beanClass) {
            return loadBeanDeploymentArchive(beanClass);
        }
    };
    TestContainer container = new TestContainer(deployment);
    // Cause the container to deploy the beans etc.
    container.startContainer();
    InjectionTarget<FooTarget> target = extension.getTarget();
    CreationalContext<FooTarget> ctx = container.getBeanManager(bda2).createCreationalContext(null);
    FooTarget instance = target.produce(ctx);
    target.postConstruct(instance);
    target.inject(instance, ctx);
    /*
         * Verify that the BeanManager for BDA2 (which can see SimpleBean) is used to inject FooTarget
         */
    assertNotNull(instance.getBean());
    container.stopContainer();
}
Also used : TestContainer(org.jboss.arquillian.container.weld.embedded.mock.TestContainer) BeanDeploymentArchiveImpl(org.jboss.arquillian.container.weld.embedded.mock.BeanDeploymentArchiveImpl) FlatDeployment(org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment) BeanDeploymentArchive(org.jboss.weld.bootstrap.spi.BeanDeploymentArchive) FlatDeployment(org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment) Deployment(org.jboss.weld.bootstrap.spi.Deployment) Test(org.testng.annotations.Test)

Example 12 with Deployment

use of org.jboss.weld.bootstrap.spi.Deployment in project core by weld.

the class TransitiveResolutionTest method testTypicalEarStructure.

/*
    * description = "WELD-236"
    */
@Test
public void testTypicalEarStructure() {
    // Create the BDA in which we will deploy Foo. This is equivalent to a ejb
    // jar
    final BeanDeploymentArchiveImpl ejbJar = new BeanDeploymentArchiveImpl("ejb-jar", Foo.class);
    // Create the BDA in which we will deploy Bar. This is equivalent to a war
    final BeanDeploymentArchiveImpl war = new BeanDeploymentArchiveImpl("war", Bar.class);
    // The war can access the ejb jar
    war.getBeanDeploymentArchives().add(ejbJar);
    // Create a deployment, any other classes are put into the ejb-jar (not
    // relevant to test)
    Deployment deployment = new FlatDeployment(new BeanDeploymentArchive[] { war, ejbJar }) {

        public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass) {
            return ejbJar;
        }
    };
    TestContainer container = new TestContainer(deployment);
    container.startContainer();
    container.ensureRequestActive();
    // Get the bean manager for war and ejb jar
    BeanManager warBeanManager = container.getBeanManager(war);
    BeanManager ejbJarBeanManager = container.getBeanManager(ejbJar);
    Assert.assertEquals(1, warBeanManager.getBeans(Bar.class).size());
    Assert.assertEquals(1, warBeanManager.getBeans(Foo.class).size());
    Assert.assertEquals(1, ejbJarBeanManager.getBeans(Foo.class).size());
    Assert.assertEquals(0, ejbJarBeanManager.getBeans(Bar.class).size());
    Bar bar = Utils.getReference(warBeanManager, Bar.class);
    Assert.assertNotNull(bar.getFoo());
    Assert.assertNotNull(bar.getBeanManager());
    Assert.assertEquals(warBeanManager, bar.getBeanManager());
    Assert.assertEquals(ejbJarBeanManager, bar.getFoo().getBeanManager());
    container.stopContainer();
}
Also used : TestContainer(org.jboss.arquillian.container.weld.embedded.mock.TestContainer) BeanDeploymentArchiveImpl(org.jboss.arquillian.container.weld.embedded.mock.BeanDeploymentArchiveImpl) FlatDeployment(org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment) Deployment(org.jboss.weld.bootstrap.spi.Deployment) FlatDeployment(org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment) BeanManager(javax.enterprise.inject.spi.BeanManager) Test(org.testng.annotations.Test)

Example 13 with Deployment

use of org.jboss.weld.bootstrap.spi.Deployment in project core by weld.

the class TransitiveResolutionTest method testInterceptorEnabledInWarButPackagedInEjbJar.

/*
    * WELD-507
    */
@Test
public void testInterceptorEnabledInWarButPackagedInEjbJar() {
    // Create the BDA in which we will deploy Foo. This is equivalent to a ejb
    // jar
    final BeanDeploymentArchiveImpl ejbJar = new BeanDeploymentArchiveImpl("ejb-jar", Basic.class, BasicInterceptor.class, Simple.class);
    // Create the BDA in which we will deploy Bar. This is equivalent to a war
    BeansXml beansXml = new BeansXmlImpl(null, null, null, Collections.singletonList(BasicInterceptor.class.getName()));
    final BeanDeploymentArchiveImpl war = new BeanDeploymentArchiveImpl("war", beansXml, Complex.class);
    // The war can access the ejb jar
    war.getBeanDeploymentArchives().add(ejbJar);
    // Create a deployment, any other classes are put into the ejb-jar (not
    // relevant to test)
    Deployment deployment = new FlatDeployment(new BeanDeploymentArchive[] { ejbJar, war }) {

        public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass) {
            return ejbJar;
        }
    };
    TestContainer container = new TestContainer(deployment);
    container.startContainer();
    container.ensureRequestActive();
    // Get the bean manager for war and ejb jar
    BeanManager warBeanManager = container.getBeanManager(war);
    BeanManager ejbJarBeanManager = container.getBeanManager(ejbJar);
    BasicInterceptor.reset();
    Simple simple = getReference(ejbJarBeanManager, Simple.class);
    simple.ping("14");
    Assert.assertNull(BasicInterceptor.getTarget());
    BasicInterceptor.reset();
    Complex complex = getReference(warBeanManager, Complex.class);
    complex.ping("14");
    Assert.assertNotNull(BasicInterceptor.getTarget());
    Assert.assertTrue(BasicInterceptor.getTarget() instanceof Complex);
    assertEquals("14", ((Complex) BasicInterceptor.getTarget()).getId());
    container.stopContainer();
}
Also used : TestContainer(org.jboss.arquillian.container.weld.embedded.mock.TestContainer) BeanDeploymentArchiveImpl(org.jboss.arquillian.container.weld.embedded.mock.BeanDeploymentArchiveImpl) FlatDeployment(org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment) BeansXml(org.jboss.weld.bootstrap.spi.BeansXml) Deployment(org.jboss.weld.bootstrap.spi.Deployment) FlatDeployment(org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment) BeanManager(javax.enterprise.inject.spi.BeanManager) Test(org.testng.annotations.Test)

Aggregations

Deployment (org.jboss.weld.bootstrap.spi.Deployment)13 BeanDeploymentArchiveImpl (org.jboss.arquillian.container.weld.embedded.mock.BeanDeploymentArchiveImpl)11 FlatDeployment (org.jboss.arquillian.container.weld.embedded.mock.FlatDeployment)11 TestContainer (org.jboss.arquillian.container.weld.embedded.mock.TestContainer)10 Test (org.testng.annotations.Test)10 BeanDeploymentArchive (org.jboss.weld.bootstrap.spi.BeanDeploymentArchive)7 BeanManager (javax.enterprise.inject.spi.BeanManager)5 BeanManagerImpl (org.jboss.weld.manager.BeanManagerImpl)3 WeldBootstrap (org.jboss.weld.bootstrap.WeldBootstrap)2 Environment (org.jboss.weld.bootstrap.api.Environment)2 BeansXml (org.jboss.weld.bootstrap.spi.BeansXml)2 WeldDeployment (org.jboss.weld.environment.deployment.WeldDeployment)2 Annotation (java.lang.annotation.Annotation)1 Collection (java.util.Collection)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 AnnotationLiteral (javax.enterprise.util.AnnotationLiteral)1 Service (org.jboss.weld.bootstrap.api.Service)1 TypeDiscoveryConfiguration (org.jboss.weld.bootstrap.api.TypeDiscoveryConfiguration)1 Metadata (org.jboss.weld.bootstrap.spi.Metadata)1