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;
}
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());
}
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;
}
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;
}
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;
}
Aggregations