use of javax.enterprise.inject.spi.Bean in project deltaspike by apache.
the class PartialBeanBindingExtension method createBeans.
public <X> void createBeans(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
if (!this.isActivated) {
return;
}
if (this.definitionError != null) {
afterBeanDiscovery.addDefinitionError(this.definitionError);
return;
}
for (Map.Entry<Class<? extends Annotation>, PartialBeanDescriptor> entry : this.descriptors.entrySet()) {
PartialBeanDescriptor descriptor = entry.getValue();
if (descriptor.getClasses() != null) {
for (Class partialBeanClass : descriptor.getClasses()) {
Bean partialBean = createPartialBean(partialBeanClass, descriptor, afterBeanDiscovery, beanManager);
if (partialBean != null) {
afterBeanDiscovery.addBean(partialBean);
List<Bean> partialProducerBeans = createPartialProducersDefinedIn(partialBean, afterBeanDiscovery, beanManager);
for (Bean partialProducerBean : partialProducerBeans) {
afterBeanDiscovery.addBean(partialProducerBean);
}
}
}
}
}
this.descriptors.clear();
}
use of javax.enterprise.inject.spi.Bean in project deltaspike by apache.
the class DeltaSpikeProxyContextualLifecycle method instantiateDelegateInvocationHandler.
protected H instantiateDelegateInvocationHandler() {
Set<Bean<H>> handlerBeans = BeanProvider.getBeanDefinitions(this.delegateInvocationHandlerClass, false, true);
if (handlerBeans.size() != 1) {
StringBuilder beanInfo = new StringBuilder();
for (Bean<H> bean : handlerBeans) {
if (beanInfo.length() != 0) {
beanInfo.append(", ");
}
beanInfo.append(bean);
if (bean instanceof PassivationCapable) {
beanInfo.append(" bean-id: ").append(((PassivationCapable) bean).getId());
}
}
throw new IllegalStateException(handlerBeans.size() + " beans found for " + this.delegateInvocationHandlerClass + " found beans: " + beanInfo.toString());
}
Bean<H> handlerBean = handlerBeans.iterator().next();
BeanManager beanManager = BeanManagerProvider.getInstance().getBeanManager();
CreationalContext<?> creationalContext = beanManager.createCreationalContext(handlerBean);
H handlerInstance = (H) beanManager.getReference(handlerBean, this.delegateInvocationHandlerClass, creationalContext);
if (handlerBean.getScope().equals(Dependent.class)) {
this.creationalContextOfDependentHandler = creationalContext;
}
return handlerInstance;
}
use of javax.enterprise.inject.spi.Bean in project aries by apache.
the class AbstractTestCase method assertPojoExists.
void assertPojoExists(BeanManager beanManager) {
Set<Bean<?>> beans = beanManager.getBeans(Pojo.class, any);
assertFalse(beans.isEmpty());
Iterator<Bean<?>> iterator = beans.iterator();
Bean<?> bean = iterator.next();
assertTrue(Pojo.class.isAssignableFrom(bean.getBeanClass()));
assertFalse(iterator.hasNext());
bean = beanManager.resolve(beans);
CreationalContext<?> ctx = beanManager.createCreationalContext(bean);
Pojo pojo = (Pojo) beanManager.getReference(bean, Pojo.class, ctx);
assertNotNull(pojo);
}
use of javax.enterprise.inject.spi.Bean in project aries by apache.
the class CdiBeanTests method testBundleContextInjection.
public void testBundleContextInjection() throws Exception {
BeanManager beanManager = cdiContainer.getBeanManager();
assertNotNull(beanManager);
@SuppressWarnings("serial") Set<Bean<?>> beans = beanManager.getBeans(Object.class, new AnnotationLiteral<BundleContextBeanQualifier>() {
});
Bean<?> bean = beanManager.resolve(beans);
CreationalContext<?> ctx = beanManager.createCreationalContext(bean);
Object bcb = beanManager.getReference(bean, Object.class, ctx);
assertNotNull(bcb);
@SuppressWarnings("unchecked") BeanService<BundleContext> bti = (BeanService<BundleContext>) bcb;
assertNotNull(bti.get());
assertTrue(bti.get() instanceof BundleContext);
}
use of javax.enterprise.inject.spi.Bean in project tomee by apache.
the class LazyRealm method instance.
private Realm instance() {
if (delegate == null) {
synchronized (this) {
if (delegate == null) {
final Object instance;
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (container != null && container.getLoader() != null && container.getLoader().getClassLoader() != null) {
cl = container.getLoader().getClassLoader();
}
final Class<?> clazz;
try {
clazz = cl.loadClass(realmClass);
} catch (final ClassNotFoundException e) {
throw new TomEERuntimeException(e);
}
if (!cdi) {
try {
final ObjectRecipe recipe = new ObjectRecipe(clazz);
recipe.allow(Option.CASE_INSENSITIVE_PROPERTIES);
recipe.allow(Option.IGNORE_MISSING_PROPERTIES);
recipe.allow(Option.FIELD_INJECTION);
recipe.allow(Option.PRIVATE_PROPERTIES);
if (properties != null) {
final Properties props = new PropertiesAdapter().unmarshal(properties.trim().replaceAll("\\p{Space}*(\\p{Alnum}*)=", "\n$1="));
recipe.setAllProperties(props);
}
instance = recipe.create();
} catch (final Exception e) {
throw new TomEERuntimeException(e);
}
} else {
final WebBeansContext webBeansContext;
try {
webBeansContext = WebBeansContext.currentInstance();
if (webBeansContext == null) {
return null;
}
} catch (final IllegalStateException ise) {
// too early to have a cdi bean, skip these methods - mainly init() but @PostConstruct works then
return null;
}
final BeanManager bm = webBeansContext.getBeanManagerImpl();
final Set<Bean<?>> beans = bm.getBeans(clazz);
final Bean<?> bean = bm.resolve(beans);
if (bean == null) {
return null;
}
creationalContext = bm.createCreationalContext(null);
instance = bm.getReference(bean, clazz, creationalContext);
}
if (instance == null) {
throw new TomEERuntimeException("realm can't be retrieved from cdi");
}
if (instance instanceof Realm) {
delegate = (Realm) instance;
delegate.setContainer(container);
delegate.setCredentialHandler(credentialHandler);
if (Lifecycle.class.isInstance(delegate)) {
if (init) {
try {
final Lifecycle lifecycle = Lifecycle.class.cast(delegate);
lifecycle.init();
if (start) {
lifecycle.start();
}
} catch (final LifecycleException e) {
// no-op
}
}
}
} else {
delegate = new LowTypedRealm(instance);
delegate.setContainer(container);
delegate.setCredentialHandler(credentialHandler);
}
for (final PropertyChangeListener listener : support.getPropertyChangeListeners()) {
delegate.addPropertyChangeListener(listener);
}
}
}
}
return delegate;
}
Aggregations