My BeanManager wrapper code
@Singleton
@Startup
public class MDIObjectFactory {
private static BeanManager beanManager;
private static BeanManager getBeanManager() {
if (beanManager == null) {
try {
InitialContext ic = new InitialContext();
beanManager = (BeanManager)
ic.lookup("java:comp/BeanManager");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return beanManager;
}
...
public <T> T buildBean(Class<T> beanClass) {
Named named = beanClass.getAnnotation(Named.class);
if (named != null) {
Bean<T> bean = (Bean<T>)
beanManager.resolve(beanManager.getBeans(named.value()));
CreationalContext<T> env =
beanManager.createCreationalContext(bean);
return (T) beanManager.getReference(bean,
bean.getBeanClass(), env);
}
Bean<T> bean = (Bean<T>)
beanManager.resolve(beanManager.getBeans(beanClass));
CreationalContext<T> env =
beanManager.createCreationalContext(bean);
return (T) beanManager.getReference(bean, beanClass, env);
}
public Object buildBean(String beanName) {
Bean bean = beanManager.resolve(beanManager.getBeans(beanName));
CreationalContext env =
beanManager.createCreationalContext(bean);
return beanManager.getReference(bean, bean.getBeanClass(), env);
}
...
}
-Wesley
_______________________________________________
resin-interest mailing list
[email protected]
http://maillist.caucho.com/mailman/listinfo/resin-interest