@SuppressWarnings("unchecked") <X> void processBean(@Observes ProcessBean<X> processBean) { Bean<X> bean = processBean.getBean(); for (Type type : bean.getTypes()) { if (type instanceof Class<?> && MongoOperations.class.isAssignableFrom((Class<?>) type)) { if (LOG.isDebugEnabled()) { LOG.debug(String.format("Discovered %s with qualifiers %s.", MongoOperations.class.getName(), bean.getQualifiers())); } // Store the EntityManager bean using its qualifiers. mongoOperations.put(new HashSet<Annotation>(bean.getQualifiers()), (Bean<MongoOperations>) bean); } } }
/** * Add beans to eager startup beans registry. * * @param event event to process */ public <T> void collect(@Observes ProcessBean<T> event) { if (event.getAnnotated().isAnnotationPresent(Eager.class) && event.getAnnotated().isAnnotationPresent(ApplicationScoped.class)) { this.eagerBeansList.add(event.getBean()); } }
void afterProcessBean(@Observes ProcessBean<?> event) { //ProcessInjectionTarget and ProcessProducer take care of all relevant injection points. //TODO verify that :) Class<?> clazz = event.getBean().getBeanClass(); if (clazz.isAnnotationPresent(Publish.class)) { publishableClasses.add(clazz); } }
void captureTypes(@Observes final ProcessBean<?> bean) { for (final InjectionPoint ip : bean.getBean().getInjectionPoints()) { final Component component = ip.getAnnotated().getAnnotation(Component.class); if (component != null) { beans.add(new ComponentBean(component, ip.getType())); } } }
public void validateScopes(@Observes ProcessBean processBean) Bean<?> bean = processBean.getBean(); Set<Annotation> qualifiers = bean.getQualifiers(); !ConversationScoped.class.isAssignableFrom(bean.getScope())) String errorMessage = "Definition error in class: " + bean.getBeanClass().getName() + "\nIt isn't allowed to use @" + ConversationGroup.class.getName() + " in combination with @" + bean.getScope().getName() + ConversationScoped.class.getName() + " or you have to remove the usage of @" + ConversationGroup.class.getName(); processBean.addDefinitionError(new IllegalStateException(errorMessage)); return;
@SuppressWarnings("unchecked") public <T> void collect(@Observes final ProcessBean< T > event) { if (event.getAnnotated().isAnnotationPresent(ApplicationPath.class)) { applicationBeans.add(event.getBean()); } else if (event.getAnnotated().isAnnotationPresent(Path.class)) { serviceBeans.add(event.getBean()); } else if (event.getAnnotated().isAnnotationPresent(Provider.class)) { providerBeans.add(event.getBean()); } else if (event.getBean().getTypes().contains(javax.ws.rs.core.Feature.class)) { providerBeans.add(event.getBean()); } else if (event.getBean().getTypes().contains(Feature.class)) { featureBeans.add((Bean< ? extends Feature >)event.getBean()); } else if (CdiBusBean.CXF.equals(event.getBean().getName()) && Bus.class.isAssignableFrom(event.getBean().getBeanClass())) { hasBus = true; } else if (event.getBean().getQualifiers().contains(DEFAULT)) { event.getBean().getTypes().stream() .filter(e -> Object.class != e && InjectionUtils.STANDARD_CONTEXT_CLASSES.contains(e.getTypeName())) .findFirst() .ifPresent(type -> existingStandardClasses.add(type.getTypeName())); } }
/** * Processing bean. * * @param event the event. */ public void processBean(@Observes ProcessBean<?> event) { ViewScoped viewScoped = event.getAnnotated().getAnnotation(ViewScoped.class); if (viewScoped != null && LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("Processing occurrence of @ViewScoped"); } }
@Observes ProcessBean<X> process, BeanManager manager) { if (process.getBean() instanceof Interceptor || process.getBean() instanceof Decorator || !(process.getAnnotated() instanceof AnnotatedType)) { return; .getAnnotated(); if (annotatedType.getAnnotation(CXFEndpoint.class) == null) { return; interfaces.addAll(ClassUtils.getAllSuperclasses(annotatedType.getJavaClass())); if (interfaces.isEmpty()) { process.addDefinitionError(new IllegalArgumentException( String.format( "JaxRS service %s must implement at least an interface/class", process.addDefinitionError(new IllegalArgumentException( String.format( "JaxRS service %s must implement at least an interface that's has REST annotations",
private void storeBeanValidationInfo(@Observes ProcessBean processBean) { beanInfoSet.add( new BeanInfo(processBean.getBean(), processBean.getAnnotated())); }
public <X> void processBean(@Observes ProcessBean<X> event) { if (event.getAnnotated().isAnnotationPresent(TideComponent.class) || event.getAnnotated().isAnnotationPresent(TideBean.class)) { instrumentedBeans.put(event.getAnnotated().getBaseType(), event.getBean()); log.info("Instrumented Tide component %s", event.getBean().toString()); } Bean<?> bean = event.getBean(); if (event instanceof ProcessProducerMethod<?, ?>) { Type type = ((ProcessProducerMethod<?, ?>)event).getAnnotatedProducerMethod().getDeclaringType().getBaseType(); producedBeans.put(((ProcessProducerMethod<?, ?>)event).getAnnotatedProducerMethod().getBaseType(), type); if (bean.getName() != null) producedBeans.put(bean.getName(), type); } else if (event instanceof ProcessProducerField<?, ?>) { Type type = ((ProcessProducerField<?, ?>)event).getAnnotatedProducerField().getDeclaringType().getBaseType(); producedBeans.put(((ProcessProducerField<?, ?>)event).getAnnotatedProducerField().getBaseType(), type); if (bean.getName() != null) producedBeans.put(bean.getName(), type); } if (event.getBean().getBeanClass().equals(TideInstrumentedBeans.class)) tideInstrumentedBeans = event.getBean(); }
public void locatePersistenceUnits(@Observes ProcessBean<PersistenceUnitInfo> processBean) { persistenceUnitInfoBeans.add(processBean.getBean()); addDatabase(processBean.getAnnotated(), processBean.getBean().getQualifiers()); } public void locatePUProducers(@Observes ProcessProducer<?, PersistenceUnitInfo> processProducer) {
public void failIfJsfManagedBeanAnnotationPresent(@Observes final ProcessBean<?> bean) { if (bean.getAnnotated().isAnnotationPresent(javax.faces.bean.ManagedBean.class)) { bean.addDefinitionError(new RuntimeException( "Use of @javax.faces.bean.ManagedBean is forbidden. Please use @javax.inject.Named instead.")); } }
private void beans(@Observes ProcessBean<?> pb, BeanManager manager) { cdiBeans.add(pb.getBean()); // Lookup for CDI event endpoint injection points pb.getBean().getInjectionPoints().stream() .filter(ip -> CdiEventEndpoint.class.equals(getRawType(ip.getType()))) .forEach(ip -> { Type type = ip.getType() instanceof ParameterizedType ? ((ParameterizedType) ip.getType()).getActualTypeArguments()[0] : Object.class; String uri = eventEndpointUri(type, ip.getQualifiers()); cdiEventEndpoints.put(uri, new CdiEventEndpoint<>(uri, type, ip.getQualifiers(), manager)); }); }
public void observe(@Observes ProcessBean<Sheep> event) { event.addDefinitionError(new RuntimeException()); } }
public void observeEmbeddedCacheManagerBean(ProcessBean<?> processBean) { if (processBean.getBean().getTypes().contains(EmbeddedCacheManager.class) && !processBean.getAnnotated().isAnnotationPresent(DefaultBean.class)) { // Install any non-default EmbeddedCacheManager producers. We handle default ones separately, to ensure we only pick them up if installed installedEmbeddedCacheManagers.add(processBean.getBean().getQualifiers()); } }
private void CommonsProcessOAuthTier(ProcessBean<? extends ProviderConfigOauth> pb) { Annotated annotated = pb.getAnnotated(); Set<Annotation> qualifiers = getAnnotationsWithMeta(annotated, ProviderRelated.class); if (qualifiers.size() != 1) throw new AgoravaException("A RemoteService bean should have one and only one service related Qualifier : " + pb .getAnnotated().toString()); Class<? extends ProviderConfigOauth> clazz = (Class<? extends ProviderConfigOauth>) pb.getBean().getBeanClass(); try { providerQualifiers2Version.put(getSingleProviderRelatedQualifier(qualifiers, true), clazz.newInstance().getOAuthVersion()); } catch (Exception e) { throw new AgoravaException("Error while retrieving version of OAuth in tier config", e); } }
public <T> Bean<T> processBean(Bean<T> bean, ProcessBean<T> processBean) { InjectManager cdi = _cdiManager; BaseType baseType = cdi.createTargetBaseType(processBean.getClass()); baseType = baseType.fill(cdi.createTargetBaseType(bean.getBeanClass())); _pendingEventList.add(new PendingEvent(processBean, baseType)); return processBean.getBean(); }