Search in sources :

Example 71 with ConfigurationFactory

use of org.apache.openejb.config.ConfigurationFactory in project tomee by apache.

the class StatefulConstructorInjectionTest method setUp.

protected void setUp() throws Exception {
    super.setUp();
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
    final ConfigurationFactory config = new ConfigurationFactory();
    final Assembler assembler = new Assembler();
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
    // Setup the descriptor information
    final EjbJar ejbJar = new EjbJar();
    ejbJar.addEnterpriseBean(new StatelessBean(FooBean.class));
    final StatefulBean bean = ejbJar.addEnterpriseBean(new StatefulBean(WidgetBean.class));
    bean.getEnvEntry().add(new EnvEntry("count", Integer.class.getName(), "10"));
    final EjbModule module = new EjbModule(ejbJar);
    module.setBeans(new Beans());
    assembler.createApplication(config.configureApplication(module));
}
Also used : StatefulBean(org.apache.openejb.jee.StatefulBean) EjbModule(org.apache.openejb.config.EjbModule) LocalInitialContextFactory(org.apache.openejb.core.LocalInitialContextFactory) Beans(org.apache.openejb.jee.Beans) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) StatelessBean(org.apache.openejb.jee.StatelessBean) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) Assembler(org.apache.openejb.assembler.classic.Assembler) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJar(org.apache.openejb.jee.EjbJar) EnvEntry(org.apache.openejb.jee.EnvEntry)

Example 72 with ConfigurationFactory

use of org.apache.openejb.config.ConfigurationFactory in project tomee by apache.

the class StatefulInterceptorTest method test.

public void test() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
    final ConfigurationFactory config = new ConfigurationFactory();
    final Assembler assembler = new Assembler();
    assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
    // containers
    assembler.createContainer(config.configureService(StatefulSessionContainerInfo.class));
    final EjbJarInfo ejbJar = config.configureApplication(buildTestApp());
    assertNotNull(ejbJar);
    assertEquals(1, ejbJar.enterpriseBeans.size());
    assertEquals(1, ejbJar.enterpriseBeans.get(0).aroundInvoke.size());
    assertEquals(1, ejbJar.enterpriseBeans.get(0).postConstruct.size());
    assertEquals(3, ejbJar.interceptors.size());
    assertEquals(1, ejbJar.interceptors.get(0).aroundInvoke.size());
    assertEquals(1, ejbJar.interceptors.get(0).postConstruct.size());
    assertEquals(3, ejbJar.interceptorBindings.size());
    assembler.createApplication(ejbJar);
    final InitialContext ctx = new InitialContext();
    final Target target = (Target) ctx.lookup("TargetBeanLocal");
    target.echo(new ArrayList());
    assertCalls(Call.values());
    calls.clear();
    final int i = target.echo(123);
    assertEquals(123, i);
    try {
        target.throwAppException();
        fail("Should have thrown app exception");
    } catch (final AppException e) {
    // pass
    }
    try {
        target.throwSysException();
        fail("Should have thrown a sys exception");
    } catch (final EJBException e) {
        // so far so good
        final Throwable cause = e.getCause();
        if (!(cause instanceof SysException)) {
            fail("Inner Exception should be a SysException");
        }
    }
}
Also used : StatefulSessionContainerInfo(org.apache.openejb.assembler.classic.StatefulSessionContainerInfo) ArrayList(java.util.ArrayList) LocalInitialContextFactory(org.apache.openejb.core.LocalInitialContextFactory) InitialContext(javax.naming.InitialContext) ProxyFactoryInfo(org.apache.openejb.assembler.classic.ProxyFactoryInfo) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) Assembler(org.apache.openejb.assembler.classic.Assembler) EJBException(javax.ejb.EJBException) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJarInfo(org.apache.openejb.assembler.classic.EjbJarInfo)

Example 73 with ConfigurationFactory

use of org.apache.openejb.config.ConfigurationFactory in project tomee by apache.

the class StatefulSecurityPermissionsTest method test.

public void test() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
    final Assembler assembler = new Assembler();
    final ConfigurationFactory config = new ConfigurationFactory();
    assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    final SecurityServiceInfo securityServiceInfo = config.configureService(SecurityServiceInfo.class);
    securityServiceInfo.className = TestSecurityService.class.getName();
    assembler.createSecurityService(securityServiceInfo);
    final TestSecurityService securityService = (TestSecurityService) SystemInstance.get().getComponent(SecurityService.class);
    securityService.login("foo", "Jazz", "Rock", "Reggae", "HipHop");
    final EjbJar ejbJar = new EjbJar();
    ejbJar.addEnterpriseBean(new StatefulBean(Color.class));
    final List<MethodPermission> permissions = ejbJar.getAssemblyDescriptor().getMethodPermission();
    permissions.add(new MethodPermission("*", "Color", "*", "Foo"));
    permissions.add(new MethodPermission("*", "Color", "create").setUnchecked());
    permissions.add(new MethodPermission("*", "Color", "ejbCreate").setUnchecked());
    final EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
    assembler.createApplication(ejbJarInfo);
    final InitialContext context = new InitialContext();
    {
        final ColorLocal color = (ColorLocal) context.lookup("ColorLocal");
        assertEquals("Jazz", color.color());
        try {
            color.color((Object) null);
        } catch (final EJBAccessException e) {
            assertEquals("Excluded", actual.get());
        }
        assertEquals("Rock", color.color((String) null));
        assertEquals("Unchecked", color.color((Boolean) null));
        assertEquals("Reggae", color.color((Integer) null));
    }
}
Also used : StatefulBean(org.apache.openejb.jee.StatefulBean) InitContextFactory(org.apache.openejb.core.ivm.naming.InitContextFactory) MethodPermission(org.apache.openejb.jee.MethodPermission) InitialContext(javax.naming.InitialContext) EJBAccessException(javax.ejb.EJBAccessException) ProxyFactoryInfo(org.apache.openejb.assembler.classic.ProxyFactoryInfo) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) SecurityService(org.apache.openejb.spi.SecurityService) AbstractSecurityService(org.apache.openejb.core.security.AbstractSecurityService) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) EJBObject(javax.ejb.EJBObject) EJBLocalObject(javax.ejb.EJBLocalObject) Assembler(org.apache.openejb.assembler.classic.Assembler) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJarInfo(org.apache.openejb.assembler.classic.EjbJarInfo) EjbJar(org.apache.openejb.jee.EjbJar)

Example 74 with ConfigurationFactory

use of org.apache.openejb.config.ConfigurationFactory in project tomee by apache.

the class StatefulSessionBeanTest method test.

public void test() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
    final ConfigurationFactory config = new ConfigurationFactory();
    final Assembler assembler = new Assembler();
    assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
    // containers
    final StatefulSessionContainerInfo statefulContainerInfo = config.configureService(StatefulSessionContainerInfo.class);
    statefulContainerInfo.properties.setProperty("PoolSize", "0");
    statefulContainerInfo.properties.setProperty("BulkPassivate", "1");
    statefulContainerInfo.properties.setProperty("Frequency", "0");
    assembler.createContainer(statefulContainerInfo);
    assembler.createApplication(config.configureApplication(buildTestApp()));
    StatefulSessionBeanTest.calls.clear();
    final InitialContext ctx = new InitialContext();
    final TargetHome home = (TargetHome) ctx.lookup("TargetBeanRemoteHome");
    assertNotNull(home);
    final Target target = home.create("Fuzz");
    assertNotNull(target);
    final String name = target.getName();
    assertEquals("Fuzz", name);
    target.remove();
    assertCalls(Call.values());
}
Also used : StatefulSessionContainerInfo(org.apache.openejb.assembler.classic.StatefulSessionContainerInfo) ProxyFactoryInfo(org.apache.openejb.assembler.classic.ProxyFactoryInfo) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) Assembler(org.apache.openejb.assembler.classic.Assembler) LocalInitialContextFactory(org.apache.openejb.core.LocalInitialContextFactory) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) InitialContext(javax.naming.InitialContext)

Example 75 with ConfigurationFactory

use of org.apache.openejb.config.ConfigurationFactory in project tomee by apache.

the class StatefulSessionSynchronizationTest method test.

public void test() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
    final Assembler assembler = new Assembler();
    final ConfigurationFactory config = new ConfigurationFactory();
    assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
    final EjbJar ejbJar = new EjbJar();
    final AssemblyDescriptor assemblyDescriptor = ejbJar.getAssemblyDescriptor();
    final Interceptor interceptor = new Interceptor(SimpleInterceptor.class);
    ejbJar.addInterceptor(interceptor);
    // Test SessionSynchronization interface
    final StatefulBean subBeanA = new StatefulBean(SubBeanA.class);
    ejbJar.addEnterpriseBean(subBeanA);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanA, interceptor));
    // Test configure session synchronization callback methods in deployment plan
    final StatefulBean subBeanB = new StatefulBean(SubBeanB.class);
    subBeanB.setAfterBeginMethod(new NamedMethod(SubBeanB.class.getDeclaredMethod("afterBegin")));
    subBeanB.setBeforeCompletionMethod(new NamedMethod(SubBeanB.class.getDeclaredMethod("beforeCompletion")));
    subBeanB.setAfterCompletionMethod(new NamedMethod(SubBeanB.class.getDeclaredMethod("afterCompletion", boolean.class)));
    ejbJar.addEnterpriseBean(subBeanB);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanB, interceptor));
    // Test session synchronization methods via annotations
    final StatefulBean subBeanC = new StatefulBean(SubBeanC.class);
    ejbJar.addEnterpriseBean(subBeanC);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanC, interceptor));
    // Test override the annotations by deployment plan
    final StatefulBean subBeanD = new StatefulBean(SubBeanD.class);
    subBeanD.setAfterBeginMethod(new NamedMethod(SubBeanD.class.getDeclaredMethod("afterBeginNew")));
    subBeanD.setBeforeCompletionMethod(new NamedMethod(SubBeanD.class.getDeclaredMethod("beforeCompletionNew")));
    subBeanD.setAfterCompletionMethod(new NamedMethod(SubBeanD.class.getDeclaredMethod("afterCompletionNew", boolean.class)));
    ejbJar.addEnterpriseBean(subBeanD);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanD, interceptor));
    // Test only one session synchronization method @AfterBegin
    final StatefulBean subBeanE = new StatefulBean(SubBeanE.class);
    ejbJar.addEnterpriseBean(subBeanE);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanE, interceptor));
    // Test only one session synchronization method @AfterCompletion
    final StatefulBean subBeanF = new StatefulBean(SubBeanF.class);
    ejbJar.addEnterpriseBean(subBeanF);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanF, interceptor));
    // Test only one session synchronization method @BeforeCompletion
    final StatefulBean subBeanG = new StatefulBean(SubBeanG.class);
    ejbJar.addEnterpriseBean(subBeanG);
    assemblyDescriptor.addInterceptorBinding(new InterceptorBinding(subBeanG, interceptor));
    // Test SessionSynchronization interface but methods are in the parent class
    // Interceptor is declared on the bean method
    final StatefulBean subBeanH = new StatefulBean(SubBeanH.class);
    ejbJar.addEnterpriseBean(subBeanH);
    // Test SessionSynchronization interface but methods are in the parent class
    // using @LocalBean
    final StatefulBean subBeanI = new StatefulBean(SubBeanI.class);
    ejbJar.addEnterpriseBean(subBeanI);
    final EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
    assembler.createApplication(ejbJarInfo);
    final InitialContext context = new InitialContext();
    final List<Call> expectedResult = Arrays.asList(Call.INTERCEPTOR_AFTER_BEGIN, Call.BEAN_AFTER_BEGIN, Call.INTERCEPTOR_AROUND_INVOKE_BEGIN, Call.BEAN_AROUND_INVOKE_BEGIN, Call.BEAN_METHOD, Call.BEAN_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_BEFORE_COMPLETION, Call.BEAN_BEFORE_COMPLETION, Call.INTERCEPTOR_AFTER_COMPLETION, Call.BEAN_AFTER_COMPLETION);
    {
        final BeanInterface beanA = (BeanInterface) context.lookup("SubBeanALocal");
        beanA.simpleMethod();
        assertEquals(expectedResult, result);
        result.clear();
    }
    {
        final BeanInterface beanB = (BeanInterface) context.lookup("SubBeanBLocal");
        beanB.simpleMethod();
        assertEquals(expectedResult, result);
        result.clear();
    }
    {
        final BeanInterface beanC = (BeanInterface) context.lookup("SubBeanCLocal");
        beanC.simpleMethod();
        assertEquals(expectedResult, result);
        result.clear();
    }
    {
        final BeanInterface beanD = (BeanInterface) context.lookup("SubBeanDLocal");
        beanD.simpleMethod();
        assertEquals(expectedResult, result);
        result.clear();
    }
    {
        final BeanInterface beanE = (BeanInterface) context.lookup("SubBeanELocal");
        beanE.simpleMethod();
        assertEquals(Arrays.asList(Call.INTERCEPTOR_AFTER_BEGIN, Call.BEAN_AFTER_BEGIN, Call.INTERCEPTOR_AROUND_INVOKE_BEGIN, Call.BEAN_AROUND_INVOKE_BEGIN, Call.BEAN_METHOD, Call.BEAN_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_BEFORE_COMPLETION, Call.INTERCEPTOR_AFTER_COMPLETION), result);
        result.clear();
    }
    {
        final BeanInterface beanF = (BeanInterface) context.lookup("SubBeanFLocal");
        beanF.simpleMethod();
        assertEquals(Arrays.asList(Call.INTERCEPTOR_AFTER_BEGIN, Call.INTERCEPTOR_AROUND_INVOKE_BEGIN, Call.BEAN_AROUND_INVOKE_BEGIN, Call.BEAN_METHOD, Call.BEAN_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_BEFORE_COMPLETION, Call.INTERCEPTOR_AFTER_COMPLETION, Call.BEAN_AFTER_COMPLETION), result);
        result.clear();
    }
    {
        final BeanInterface beanG = (BeanInterface) context.lookup("SubBeanGLocal");
        beanG.simpleMethod();
        assertEquals(Arrays.asList(Call.INTERCEPTOR_AFTER_BEGIN, Call.INTERCEPTOR_AROUND_INVOKE_BEGIN, Call.BEAN_AROUND_INVOKE_BEGIN, Call.BEAN_METHOD, Call.BEAN_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_BEFORE_COMPLETION, Call.BEAN_BEFORE_COMPLETION, Call.INTERCEPTOR_AFTER_COMPLETION), result);
        result.clear();
    }
    final List<Call> synchAndArroundInvokeResult = Arrays.asList(Call.BEAN_AFTER_BEGIN, Call.INTERCEPTOR_AROUND_INVOKE_BEGIN, Call.BEAN_AROUND_INVOKE_BEGIN, Call.BEAN_METHOD, Call.BEAN_AROUND_INVOKE_AFTER, Call.INTERCEPTOR_AROUND_INVOKE_AFTER, Call.BEAN_BEFORE_COMPLETION, Call.BEAN_AFTER_COMPLETION);
    {
        final BeanInterface beanH = (BeanInterface) context.lookup("SubBeanHLocal");
        beanH.simpleMethod();
        assertEquals(synchAndArroundInvokeResult, result);
        result.clear();
    }
    {
        final BeanInterface beanI = (BeanInterface) context.lookup("SubBeanILocalBean");
        beanI.simpleMethod();
        assertEquals(synchAndArroundInvokeResult, result);
        result.clear();
    }
}
Also used : StatefulBean(org.apache.openejb.jee.StatefulBean) LocalInitialContextFactory(org.apache.openejb.core.LocalInitialContextFactory) NamedMethod(org.apache.openejb.jee.NamedMethod) InitialContext(javax.naming.InitialContext) ProxyFactoryInfo(org.apache.openejb.assembler.classic.ProxyFactoryInfo) InterceptorBinding(org.apache.openejb.jee.InterceptorBinding) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) Assembler(org.apache.openejb.assembler.classic.Assembler) AssemblyDescriptor(org.apache.openejb.jee.AssemblyDescriptor) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) Interceptor(org.apache.openejb.jee.Interceptor) EjbJarInfo(org.apache.openejb.assembler.classic.EjbJarInfo) EjbJar(org.apache.openejb.jee.EjbJar)

Aggregations

ConfigurationFactory (org.apache.openejb.config.ConfigurationFactory)100 Assembler (org.apache.openejb.assembler.classic.Assembler)84 EjbJar (org.apache.openejb.jee.EjbJar)76 SecurityServiceInfo (org.apache.openejb.assembler.classic.SecurityServiceInfo)57 TransactionServiceInfo (org.apache.openejb.assembler.classic.TransactionServiceInfo)57 StatelessBean (org.apache.openejb.jee.StatelessBean)44 InitialContext (javax.naming.InitialContext)41 Properties (java.util.Properties)37 EjbModule (org.apache.openejb.config.EjbModule)30 ProxyFactoryInfo (org.apache.openejb.assembler.classic.ProxyFactoryInfo)29 LocalInitialContextFactory (org.apache.openejb.core.LocalInitialContextFactory)29 InitContextFactory (org.apache.openejb.core.ivm.naming.InitContextFactory)21 StatelessSessionContainerInfo (org.apache.openejb.assembler.classic.StatelessSessionContainerInfo)18 SingletonBean (org.apache.openejb.jee.SingletonBean)18 Context (javax.naming.Context)17 StatefulBean (org.apache.openejb.jee.StatefulBean)16 AppModule (org.apache.openejb.config.AppModule)15 ServerFederation (org.apache.openejb.core.ServerFederation)15 EjbJarInfo (org.apache.openejb.assembler.classic.EjbJarInfo)14 ContainerSystem (org.apache.openejb.spi.ContainerSystem)13