/** * Adds interceptor bindings and annotated types. * * @param discovery Event information. * @param bm Bean manager instance. */ void registerInterceptorBindings(@Observes BeforeBeanDiscovery discovery, BeanManager bm) { // Check if fault tolerance and its metrics are enabled final Config config = ConfigProvider.getConfig(); isFaultToleranceEnabled = config.getOptionalValue(MP_FT_NON_FALLBACK_ENABLED, Boolean.class) .orElse(true); // default is enabled isFaultToleranceMetricsEnabled = config.getOptionalValue(MP_FT_METRICS_ENABLED, Boolean.class) .orElse(true); // default is enabled discovery.addInterceptorBinding(new InterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Retry.class))); discovery.addInterceptorBinding(new InterceptorBindingAnnotatedType<>(bm.createAnnotatedType(CircuitBreaker.class))); discovery.addInterceptorBinding(new InterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Timeout.class))); discovery.addInterceptorBinding(new InterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Asynchronous.class))); discovery.addInterceptorBinding(new InterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Bulkhead.class))); discovery.addInterceptorBinding(new InterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Fallback.class))); discovery.addAnnotatedType(bm.createAnnotatedType(CommandInterceptor.class), CommandInterceptor.class.getName()); }
void execute() { event.addInterceptorBinding(SimpleAnnotation.class); } }.run();
void execute() { event.addInterceptorBinding(annotation); } }.run();
/** * Service interface implemented by extensions. An extension is a service provider declared in META-INF/services. * * @param beforeBeanDiscoveryEvent the event to register */ void discoverInterceptorBindings(@Observes BeforeBeanDiscovery beforeBeanDiscoveryEvent) { beforeBeanDiscoveryEvent.addInterceptorBinding(CachePut.class); beforeBeanDiscoveryEvent.addInterceptorBinding(CacheResult.class); beforeBeanDiscoveryEvent.addInterceptorBinding(CacheRemove.class); beforeBeanDiscoveryEvent.addInterceptorBinding(CacheRemoveAll.class); }
public void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) { bbd.addScope(TimerScoped.class, true, false); bbd.addInterceptorBinding(TimerScopeEnabled.class); }
public void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) { bbd.addScope(MethodScoped.class, true, false); bbd.addInterceptorBinding(MethodScopeEnabled.class); }
public void addBvalBinding(final @Observes BeforeBeanDiscovery beforeBeanDiscovery, final BeanManager beanManager) { beforeBeanDiscovery.addInterceptorBinding(BValBinding.class); beforeBeanDiscovery.addAnnotatedType(beanManager.createAnnotatedType(BValInterceptor.class)); }
public void addBvalBinding(final @Observes BeforeBeanDiscovery beforeBeanDiscovery, final BeanManager beanManager) { beforeBeanDiscovery.addInterceptorBinding(BValBinding.class); beforeBeanDiscovery.addAnnotatedType(beanManager.createAnnotatedType(BValInterceptor.class)); }
/** * Associate the InterceptorBinding annotation. */ public void processBeforeBeanDiscovery(@Observes BeforeBeanDiscovery event, BeanManager beanManager) { event.addInterceptorBinding(beanManager.createAnnotatedType(AddSwaggerResources.class)); event.addAnnotatedType(beanManager.createAnnotatedType(SwaggerRestApplicationInterceptor.class), SwaggerRestApplicationInterceptor.class.getName()); }
static <T extends Annotation> void declareAsInterceptorBinding(Class<T> annotation, BeanManager manager, BeforeBeanDiscovery bbd) { AnnotatedType<T> annotated = manager.createAnnotatedType(annotation); Set<AnnotatedMethod<? super T>> methods = new HashSet<>(); for (AnnotatedMethod<? super T> method : annotated.getMethods()) methods.add(new AnnotatedMethodDecorator<>(method, NON_BINDING)); bbd.addInterceptorBinding(new AnnotatedTypeDecorator<>(annotated, INTERCEPTOR_BINDING, methods)); }
static <T extends Annotation> void declareAsInterceptorBinding(Class<T> annotation, BeanManager manager, BeforeBeanDiscovery bbd) { AnnotatedType<T> annotated = manager.createAnnotatedType(annotation); Set<AnnotatedMethod<? super T>> methods = new HashSet<>(); for (AnnotatedMethod<? super T> method : annotated.getMethods()) methods.add(new AnnotatedMethodDecorator<>(method, NON_BINDING)); bbd.addInterceptorBinding(new AnnotatedTypeDecorator<>(annotated, INTERCEPTOR_BINDING, methods)); }
protected void discoverInterceptorBindings(final @Observes BeforeBeanDiscovery beforeBeanDiscoveryEvent, final BeanManager bm) { // CDI 1.1 will just pick createAnnotatedType(X) as beans so we'll skip our HelperBean // but CDI 1.0 needs our HelperBean + interceptors in beans.xml like: /* <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> <interceptors> <class>org.apache.commons.jcs.jcache.cdi.CacheResultInterceptor</class> <class>org.apache.commons.jcs.jcache.cdi.CacheRemoveAllInterceptor</class> <class>org.apache.commons.jcs.jcache.cdi.CacheRemoveInterceptor</class> <class>org.apache.commons.jcs.jcache.cdi.CachePutInterceptor</class> </interceptors> </beans> */ bm.createAnnotatedType(CDIJCacheHelper.class); for (final Class<?> interceptor : asList( CachePutInterceptor.class, CacheRemoveInterceptor.class, CacheRemoveAllInterceptor.class, CacheResultInterceptor.class)) { beforeBeanDiscoveryEvent.addAnnotatedType(bm.createAnnotatedType(interceptor)); } for (final Class<? extends Annotation> interceptor : asList( CachePut.class, CacheRemove.class, CacheRemoveAll.class, CacheResult.class)) { beforeBeanDiscoveryEvent.addInterceptorBinding(interceptor); } }
protected void discoverInterceptorBindings(final @Observes BeforeBeanDiscovery beforeBeanDiscoveryEvent, final BeanManager bm) { // CDI 1.1 will just pick createAnnotatedType(X) as beans so we'll skip our HelperBean // but CDI 1.0 needs our HelperBean + interceptors in beans.xml like: /* <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> <interceptors> <class>org.apache.commons.jcs.jcache.cdi.CacheResultInterceptor</class> <class>org.apache.commons.jcs.jcache.cdi.CacheRemoveAllInterceptor</class> <class>org.apache.commons.jcs.jcache.cdi.CacheRemoveInterceptor</class> <class>org.apache.commons.jcs.jcache.cdi.CachePutInterceptor</class> </interceptors> </beans> */ bm.createAnnotatedType(CDIJCacheHelper.class); for (final Class<?> interceptor : asList( CachePutInterceptor.class, CacheRemoveInterceptor.class, CacheRemoveAllInterceptor.class, CacheResultInterceptor.class)) { beforeBeanDiscoveryEvent.addAnnotatedType(bm.createAnnotatedType(interceptor)); } for (final Class<? extends Annotation> interceptor : asList( CachePut.class, CacheRemove.class, CacheRemoveAll.class, CacheResult.class)) { beforeBeanDiscoveryEvent.addInterceptorBinding(interceptor); } }
protected void discoverInterceptorBindings(final @Observes BeforeBeanDiscovery beforeBeanDiscoveryEvent, final BeanManager bm) { if (SKIP) { return; } // CDI 1.1 will just pick createAnnotatedType(X) as beans so we'll skip our HelperBean // but CDI 1.0 needs our HelperBean + interceptors in beans.xml like: /* * <beans xmlns="http://java.sun.com/xml/ns/javaee" * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" * xsi:schemaLocation="http://java.sun.com/xml/ns/javaee * http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> * <interceptors> * <class>org.apache.geronimo.jcache.simple.cdi.CacheResultInterceptor</class> * <class>org.apache.geronimo.jcache.simple.cdi.CacheRemoveAllInterceptor</class> * <class>org.apache.geronimo.jcache.simple.cdi.CacheRemoveInterceptor</class> * <class>org.apache.geronimo.jcache.simple.cdi.CachePutInterceptor</class> * </interceptors> * </beans> */ bm.createAnnotatedType(CDIJCacheHelper.class); for (final Class<?> interceptor : asList(CachePutInterceptor.class, CacheRemoveInterceptor.class, CacheRemoveAllInterceptor.class, CacheResultInterceptor.class)) { beforeBeanDiscoveryEvent.addAnnotatedType(bm.createAnnotatedType(interceptor)); } for (final Class<? extends Annotation> interceptor : asList(CachePut.class, CacheRemove.class, CacheRemoveAll.class, CacheResult.class)) { beforeBeanDiscoveryEvent.addInterceptorBinding(interceptor); } }
void registerInterceptorBindings(@Observes BeforeBeanDiscovery bbd, BeanManager bm) { LOGGER.info("MicroProfile: Fault Tolerance activated"); bbd.addInterceptorBinding(new HystrixInterceptorBindingAnnotatedType<>(bm.createAnnotatedType(CircuitBreaker.class))); bbd.addInterceptorBinding(new HystrixInterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Retry.class))); bbd.addInterceptorBinding(new HystrixInterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Timeout.class))); bbd.addInterceptorBinding(new HystrixInterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Asynchronous.class))); bbd.addInterceptorBinding(new HystrixInterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Fallback.class))); bbd.addInterceptorBinding(new HystrixInterceptorBindingAnnotatedType<>(bm.createAnnotatedType(Bulkhead.class))); // Add AnnotatedType for HystrixCommandInterceptor // It seems that fraction deployment module cannot be picked up as a CDI bean archive - see also SWARM-1725 bbd.addAnnotatedType(bm.createAnnotatedType(HystrixCommandInterceptor.class), HystrixCommandInterceptor.class.getName()); bbd.addAnnotatedType(bm.createAnnotatedType(HystrixInitializer.class), HystrixInitializer.class.getName()); bbd.addAnnotatedType(bm.createAnnotatedType(DefaultHystrixConcurrencyStrategy.class), DefaultHystrixConcurrencyStrategy.class.getName()); bbd.addAnnotatedType(bm.createAnnotatedType(DefaultFaultToleranceOperationProvider.class), DefaultFaultToleranceOperationProvider.class.getName()); bbd.addAnnotatedType(bm.createAnnotatedType(DefaultFallbackHandlerProvider.class), DefaultFallbackHandlerProvider.class.getName()); bbd.addAnnotatedType(bm.createAnnotatedType(DefaultCommandListenersProvider.class), DefaultCommandListenersProvider.class.getName()); bbd.addAnnotatedType(bm.createAnnotatedType(MetricsCollectorFactory.class), MetricsCollectorFactory.class.getName()); }
throws SecurityException, NoSuchMethodException { event.addInterceptorBinding(Incremented.class); event.addInterceptorBinding(FullMarathon.class); event.addInterceptorBinding(new AnnotatedTypeWrapper<Suffixed>(beanManager.createAnnotatedType(Suffixed.class), true) { Set<AnnotatedMethod<? super Suffixed>> methods;