Search in sources :

Example 1 with Beans

use of org.apache.openejb.jee.Beans in project tomee by apache.

the class OpenEJBArchiveProcessor method addTestClassAsManagedBean.

private static EjbModule addTestClassAsManagedBean(Class<?> javaClass, URLClassLoader tempClassLoader, AppModule appModule) {
    final EjbJar ejbJar = new EjbJar();
    final OpenejbJar openejbJar = new OpenejbJar();
    final String ejbName = appModule.getModuleId() + "_" + javaClass.getName();
    final ManagedBean bean = ejbJar.addEnterpriseBean(new ManagedBean(ejbName, javaClass.getName(), true));
    bean.localBean();
    bean.setTransactionType(TransactionType.BEAN);
    final EjbDeployment ejbDeployment = openejbJar.addEjbDeployment(bean);
    ejbDeployment.setDeploymentId(ejbName);
    final EjbModule e = new EjbModule(ejbJar, openejbJar);
    e.getProperties().setProperty("openejb.cdi.activated", "false");
    e.getProperties().setProperty("openejb.test.module", "true");
    e.setBeans(new Beans());
    e.setClassLoader(tempClassLoader);
    appModule.getEjbModules().add(e);
    return e;
}
Also used : CompositeBeans(org.apache.openejb.cdi.CompositeBeans) Beans(org.apache.openejb.jee.Beans) OpenejbJar(org.apache.openejb.jee.oejb3.OpenejbJar) EjbModule(org.apache.openejb.config.EjbModule) EjbDeployment(org.apache.openejb.jee.oejb3.EjbDeployment) ManagedBean(org.apache.openejb.jee.ManagedBean) EjbJar(org.apache.openejb.jee.EjbJar)

Example 2 with Beans

use of org.apache.openejb.jee.Beans in project tomee by apache.

the class ApplicationComposerDeployer method configureClasses.

private void configureClasses(final WebModule web, final EjbModule ejbModule, final ApplicationComposer applicationComposer, final Classes classes) {
    ejbModule.getEjbJar().setMetadataComplete(applicationComposer.metadataComplete());
    final Collection<Archive> archives = new LinkedList<>();
    if (classes.value().length > 0) {
        archives.add(new ClassesArchive(classes.value()));
    }
    if (classes.cdi()) {
        final Beans beans = new Beans();
        for (final Class<?> c : classes.cdiAlternatives()) {
            beans.addAlternativeClass(c);
        }
        for (final Class<?> c : classes.cdiDecorators()) {
            beans.addDecorator(c);
        }
        for (final Class<?> c : classes.cdiInterceptors()) {
            beans.addInterceptor(c);
        }
        ejbModule.setBeans(beans);
        if (applicationComposer.metadataComplete()) {
            for (final Class<?> c : classes.value()) {
                beans.addManagedClass(null, c.getName());
            }
            final String name = BeanContext.Comp.openejbCompName(web.getModuleId());
            final org.apache.openejb.jee.ManagedBean managedBean = new CompManagedBean(name, BeanContext.Comp.class);
            managedBean.setTransactionType(TransactionType.BEAN);
            ejbModule.getEjbJar().addEnterpriseBean(managedBean);
        }
    }
    final CompositeArchive archive = new CompositeArchive(archives);
    final Archive finalArchive = classes.excludes().length > 0 ? new FilteredArchive(archive, Filters.invert(Filters.prefixes(classes.excludes()))) : archive;
    ejbModule.setFinder(new FinderFactory.OpenEJBAnnotationFinder(finalArchive).link());
    web.setFinder(ejbModule.getFinder());
    web.getWebApp().setMetadataComplete(ejbModule.getEjbJar().isMetadataComplete());
}
Also used : FilteredArchive(org.apache.xbean.finder.archive.FilteredArchive) ClassesArchive(org.apache.xbean.finder.archive.ClassesArchive) CompositeArchive(org.apache.xbean.finder.archive.CompositeArchive) Archive(org.apache.xbean.finder.archive.Archive) FilteredArchive(org.apache.xbean.finder.archive.FilteredArchive) LinkedList(java.util.LinkedList) BeanContext(org.apache.openejb.BeanContext) Beans(org.apache.openejb.jee.Beans) CompositeArchive(org.apache.xbean.finder.archive.CompositeArchive) ClassesArchive(org.apache.xbean.finder.archive.ClassesArchive)

Example 3 with Beans

use of org.apache.openejb.jee.Beans in project tomee by apache.

the class ApplicationComposerDeployer method configureModule.

private Object configureModule(final AppModule appModule, final EjbModule ejbModule, final Class<?> clazz, Object instance, final Method m) {
    final int modifiers = m.getModifiers();
    if (!Modifier.isPublic(modifiers)) {
        throw new IllegalArgumentException("@Module should be public");
    }
    final boolean isStatic = Modifier.isStatic(modifiers);
    if (!isStatic) {
        try {
            instance = clazz.newInstance();
        } catch (final Exception e) {
        // no-op
        }
    }
    try {
        final Object result = m.invoke(isStatic ? null : instance);
        if (EjbJar.class.isInstance(result)) {
            ejbModule.setEjbJar(EjbJar.class.cast(result));
        } else if (Persistence.class.isInstance(result)) {
            final Persistence persistence = Persistence.class.cast(result);
            if (!persistence.getPersistenceUnit().isEmpty()) {
                appModule.getPersistenceModules().add(new PersistenceModule(appModule, rootUrl(ejbModule), persistence));
            }
        } else if (PersistenceUnit.class.isInstance(result)) {
            final PersistenceUnit unit = PersistenceUnit.class.cast(result);
            appModule.addPersistenceModule(new PersistenceModule(appModule, rootUrl(ejbModule), new Persistence(unit)));
        } else if (Beans.class.isInstance(result)) {
            final Beans beans = Beans.class.cast(result);
            ejbModule.setBeans(beans);
        } else {
            throw new IllegalArgumentException(result + " not yet supported (" + m + ")");
        }
    } catch (final IllegalAccessException | InvocationTargetException e) {
        throw new IllegalStateException(e);
    }
    return instance;
}
Also used : MalformedURLException(java.net.MalformedURLException) OpenEJBException(org.apache.openejb.OpenEJBException) InvocationTargetException(java.lang.reflect.InvocationTargetException) InvocationTargetException(java.lang.reflect.InvocationTargetException) Persistence(org.apache.openejb.jee.jpa.unit.Persistence) Beans(org.apache.openejb.jee.Beans) PersistenceUnit(org.apache.openejb.jee.jpa.unit.PersistenceUnit) EjbJar(org.apache.openejb.jee.EjbJar)

Example 4 with Beans

use of org.apache.openejb.jee.Beans in project tomee by apache.

the class StatefulDecoratorInjectionTest method getBeans.

@Module
public Beans getBeans() {
    final Beans beans = new Beans();
    beans.addDecorator(OrangeSecurity.class);
    return beans;
}
Also used : Beans(org.apache.openejb.jee.Beans) Module(org.apache.openejb.testing.Module)

Example 5 with Beans

use of org.apache.openejb.jee.Beans in project tomee by apache.

the class BasicObserverTest method getBeans.

@Module
public Beans getBeans() {
    final Beans beans = new Beans();
    beans.addManagedClass(SuperHero.class);
    return beans;
}
Also used : Beans(org.apache.openejb.jee.Beans) Module(org.apache.openejb.testing.Module)

Aggregations

Beans (org.apache.openejb.jee.Beans)36 Module (org.apache.openejb.testing.Module)14 EjbModule (org.apache.openejb.config.EjbModule)12 EjbJar (org.apache.openejb.jee.EjbJar)12 CompositeBeans (org.apache.openejb.cdi.CompositeBeans)8 StatelessBean (org.apache.openejb.jee.StatelessBean)6 IOException (java.io.IOException)4 URL (java.net.URL)4 OpenEJBException (org.apache.openejb.OpenEJBException)4 EjbDeployment (org.apache.openejb.jee.oejb3.EjbDeployment)4 File (java.io.File)3 ArrayList (java.util.ArrayList)3 LinkedList (java.util.LinkedList)3 List (java.util.List)3 Properties (java.util.Properties)3 InitialContext (javax.naming.InitialContext)3 Assembler (org.apache.openejb.assembler.classic.Assembler)3 SecurityServiceInfo (org.apache.openejb.assembler.classic.SecurityServiceInfo)3 TransactionServiceInfo (org.apache.openejb.assembler.classic.TransactionServiceInfo)3 WebModule (org.apache.openejb.config.WebModule)3