private void cleanupBeansAfterBoot(Iterable<Bean<?>> beans) { for (Bean<?> bean : beans) { if (bean instanceof RIBean<?>) { RIBean<?> riBean = (RIBean<?>) bean; riBean.cleanupAfterBoot(); } } }
public boolean isNormalScoped() { return getBeanManager().isNormalScope(getScope()); }
private static <T> ContextualInstanceStrategy<T> getStrategy(Bean<T> bean) { if (bean instanceof RIBean<?>) { return ((RIBean<T>) bean).getContextualInstanceStrategy(); } return ContextualInstanceStrategy.defaultStrategy(); } }
for (Type type : input.bean.getTypes()) { if (Reflections.getRawType(type).isInterface()) { types.add(type); if (input.bean instanceof RIBean) { RIBean<?> riBean = (RIBean<?>) input.bean; beanType = riBean.getType(); } else { beanType = input.bean.getBeanClass(); if (Proxies.isTypeProxyable(beanType, services())) { return createClientProxy(input.bean, types.add(beanType).build()); if (Proxies.isTypeProxyable(input.requestedType, services())) { return createClientProxy(input.bean, types.add(input.requestedType).build()); for (Type type : input.bean.getTypes()) { if (requestedRawType.isAssignableFrom(Reflections.getRawType(type)) && Proxies.isTypeProxyable(type, services())) { return createClientProxy(input.bean, types.add(type).build());
/** * * @param bean * @return the set of qualifier instances for the given bean, uses caches if possible */ public Set<QualifierInstance> getQualifierInstances(final Bean<?> bean) { if (bean instanceof RIBean) { return ((RIBean<?>) bean).getQualifierInstances(); } return getQualifierInstances(bean.getQualifiers()); }
public void endInitialization() { tracker.start(Tracker.OP_END_INIT); final BeanIdentifierIndex index = deploymentManager.getServices().get(BeanIdentifierIndex.class); if (index != null) { deploymentManager.getServices().cleanupAfterBoot(); deploymentManager.cleanupAfterBoot(); for (BeanDeployment beanDeployment : getBeanDeployments()) { BeanManagerImpl beanManager = beanDeployment.getBeanManager(); beanManager.getInterceptorMetadataReader().cleanAfterBoot(); beanManager.getServices().cleanupAfterBoot(); beanManager.cleanupAfterBoot(); if (bean instanceof RIBean<?>) { RIBean<?> riBean = (RIBean<?>) bean; riBean.cleanupAfterBoot();
public Set<QualifierInstance> getQualifierInstances() { if (qualifiers == null) { qualifiers = beanManager.getServices().get(MetaAnnotationStore.class).getQualifierInstances(getQualifiers()); } return qualifiers; }
this.observerMethod = initMethodInjectionPoint(observer, declaringBean, manager); EnhancedAnnotatedParameter<?, ? super X> eventParameter = observer.getEnhancedParameters(Observes.class).get(0); this.eventType = new HierarchyDiscovery(declaringBean.getBeanClass()).resolveType(eventParameter.getBaseType()); this.id = createId(observer, declaringBean); this.bindings = manager.getServices().get(SharedObjectCache.class) .getSharedSet(observer.getEnhancedParameters(Observes.class).get(0).getMetaAnnotations(Qualifier.class)); Observes observesAnnotation = observer.getEnhancedParameters(Observes.class).get(0).getAnnotation(Observes.class);
/** * A slightly optimized way to get the bean identifier - there is not need to call ContextualStore.putIfAbsent() for passivation capable beans because it's * already called during bootstrap. See also {@link BeanManagerImpl#addBean(Bean)}. * * @param contextual * @param contextualStore * @param serviceRegistry * @return the identifier for the given contextual */ private static BeanIdentifier getIdentifier(Contextual<?> contextual, ContextualStore contextualStore, ServiceRegistry serviceRegistry) { if (contextual instanceof RIBean<?>) { return ((RIBean<?>) contextual).getIdentifier(); } if (contextualStore == null) { contextualStore = serviceRegistry.get(ContextualStore.class); } return contextualStore.putIfAbsent(contextual); }
public static <T> T getIfExists(RIBean<T> bean, BeanManagerImpl manager) { return bean.getContextualInstanceStrategy().getIfExists(bean, manager); }
@Override protected MethodInjectionPoint<T, ? super X> initMethodInjectionPoint(EnhancedAnnotatedMethod<T, ? super X> observer, RIBean<X> declaringBean, BeanManagerImpl manager) { // use silent creation of injection points for ProcessInjectionPoint events not to be fired for extension observer methods return InjectionPointFactory.silentInstance().createMethodInjectionPoint(MethodInjectionPointType.OBSERVER, observer, declaringBean, declaringBean.getBeanClass(), SPECIAL_PARAM_MARKERS, manager); }
@Override public Class<X> getBeanClass() { return declaringBean.getType(); }
public static <T> T get(RIBean<T> bean, BeanManagerImpl manager, CreationalContext<?> ctx) { return bean.getContextualInstanceStrategy().get(bean, manager, ctx); }
private SpecializedBeanResolver getSpecializedBeanResolver(RIBean<?> bean) { return specializedBeanResolvers.getValue(bean.getBeanManager()); } }
@Override protected Object getReceiver(CreationalContext<X> ctx) { return getDeclaringBean().create(null); }
public void removeAll(Iterable<Bean<?>> removable) { for (Bean<?> bean : removable) { BeanIdentifier beanIdentifier = contextuals.remove(bean); if (beanIdentifier == null && bean instanceof RIBean) { beanIdentifier = ((RIBean<?>) bean).getIdentifier(); } if (beanIdentifier != null) { contextualsInverse.remove(beanIdentifier); passivationCapableContextuals.remove(beanIdentifier); } } } }
public boolean isDependent() { return getScope().equals(Dependent.class); }
for (Type type : input.bean.getTypes()) { if (Reflections.getRawType(type).isInterface()) { types.add(type); if (input.bean instanceof RIBean) { RIBean<?> riBean = (RIBean<?>) input.bean; beanType = riBean.getType(); } else { beanType = input.bean.getBeanClass(); if (Proxies.isTypeProxyable(beanType, services())) { return createClientProxy(input.bean, types.add(beanType).build()); if (Proxies.isTypeProxyable(input.requestedType, services())) { return createClientProxy(input.bean, types.add(input.requestedType).build()); for (Type type : input.bean.getTypes()) { if (requestedRawType.isAssignableFrom(Reflections.getRawType(type)) && Proxies.isTypeProxyable(type, services())) { return createClientProxy(input.bean, types.add(type).build());
public static Set<QualifierInstance> of(Bean<?> bean, MetaAnnotationStore store) { if (bean instanceof RIBean<?>) { return ((RIBean<?>) bean).getQualifierInstances(); } return of(bean.getQualifiers(), store); }
public void endInitialization() { tracker.start(Tracker.OP_END_INIT); final BeanIdentifierIndex index = deploymentManager.getServices().get(BeanIdentifierIndex.class); if (index != null) { deploymentManager.getServices().cleanupAfterBoot(); deploymentManager.cleanupAfterBoot(); for (BeanDeployment beanDeployment : getBeanDeployments()) { BeanManagerImpl beanManager = beanDeployment.getBeanManager(); beanManager.getInterceptorMetadataReader().cleanAfterBoot(); beanManager.getServices().cleanupAfterBoot(); beanManager.cleanupAfterBoot(); if (bean instanceof RIBean<?>) { RIBean<?> riBean = (RIBean<?>) bean; riBean.cleanupAfterBoot();