@Produces @RequestScoped public Product createInterceptedProduct(InterceptionFactory<Product> interceptionFactory) { interceptionFactory.configure().add(ProductInterceptorBinding3.BindingLiteral.INSTANCE).filterMethods(m -> m.getJavaMember().getName().equals("ping")) .findFirst().get() .add(ProductInterceptorBinding1.BindingLiteral.INSTANCE) .add(ProductInterceptorBinding2.BindingLiteral.INSTANCE); return interceptionFactory.createInterceptedInstance(new Product()); }
void addTimedInterceptorBinding(@Observes BeforeBeanDiscovery bbd) { bbd.configureInterceptorBinding(Timed.class).methods().forEach(method -> method.add(Nonbinding.Literal.INSTANCE)); }
@Produces @Custom public FinalProduct createInterceptedFinalProduct(InterceptionFactory<FinalProduct> interceptionFactory) { interceptionFactory.ignoreFinalMethods().configure().filterMethods(m -> m.getJavaMember().getName().equals("ping")) .findFirst().get() .add(ProductInterceptorBinding1.BindingLiteral.INSTANCE) .add(ProductInterceptorBinding2.BindingLiteral.INSTANCE); return interceptionFactory.createInterceptedInstance(new FinalProduct()); }
@Inject public IoCForFramework(BeanManager bm) { nocc = bm.createCreationalContext(null); InjectionTargetFactory<NotOurClass> itf = bm.getInjectionTargetFactory(bm.createAnnotatedType(NotOurClass.class)); itf.configure().filterMethods(m -> m.getJavaMember().getName().equals("setService")).findFirst().get().add(InjectLiteral.INSTANCE); it = itf.createInjectionTarget(null); // invoking configure() after create method should throw exception try { itf.configure().filterMethods(m -> m.getJavaMember().getName().equals("setService")).findFirst().get().add(InjectLiteral.INSTANCE); } catch (IllegalStateException e) { //expected behaviour exceptionThrown = true; } }
@Produces public Bar createBar(InterceptionFactory<Bar> interceptionFactory) { interceptionFactory.configure().filterMethods(m -> m.getJavaMember().getName().equals("ping")).findFirst().get() .add(BarInterceptorBinding.BarInterceptorBindingLiteral.INSTANCE); return interceptionFactory.createInterceptedInstance(new Bar()); }
void registerLoggedIn(@Observes @WithAnnotations(LoggedIn.class) ProcessAnnotatedType<?> pat) { if (pat.getAnnotatedType().isAnnotationPresent(LoggedIn.class)) { pat.configureAnnotatedType().methods().forEach(amc -> { amc.add(LoggedIn.INSTANCE); amc.add(Secured.INSTANCE); }); } else { pat.configureAnnotatedType() .filterMethods(m -> m.isAnnotationPresent(LoggedIn.class)) .forEach(amc -> { amc.add(Secured.INSTANCE); }); } }
@Produces public EmployeeService produce(InterceptionFactory<EmployeeService> interceptionFactory, BeanManager beanManager) { logger.info("Producing EmployeeService"); EmployeeService employeeBean = createRef( beanManager.resolve( beanManager.getBeans(EmployeeService.class) .stream() .filter(e -> !e.getBeanClass().equals(ApplicationInit.class)) .collect(toSet())), beanManager); interceptionFactory .configure() .filterMethods(am -> am.getJavaMember().getName().equals("persist")) .forEach( amc -> amc.add(new TransactionLiteral())); return interceptionFactory.createInterceptedInstance( new EmployeeBeanWrapper(employeeBean)); }
void observesDogDependenciesProducerPAT(@Observes ProcessAnnotatedType<DogDependenciesProducer> event) { AnnotatedTypeConfigurator<DogDependenciesProducer> annotatedTypeConfigurator = event.configureAnnotatedType(); // add @Produces and @Created to DogDependenciesProducer.produceFeed getAMConfiguratorByName(annotatedTypeConfigurator, "produceFeed").add(ProducesLiteral.INSTANCE) .add(Dogs.DogsLiteral.INSTANCE); // add @Produces and @Created to DogDependenciesProducer.dogName annotatedTypeConfigurator.filterFields(af -> af.getJavaMember().getName().equals("dogName")).findFirst().get().add(ProducesLiteral.INSTANCE) .add(Dogs.DogsLiteral.INSTANCE); // add @Disposes to DogDependenciesProducer.disposeFeed getAMConfiguratorByName(annotatedTypeConfigurator, "disposeFeed") .filterParams(ap -> ap.getPosition() == 0).findFirst().get().add(DisposesLiteral.INSTANCE).add(Dogs.DogsLiteral.INSTANCE); }
void registerHasAllRoles(@Observes @WithAnnotations(HasAllRoles.class) ProcessAnnotatedType<?> pat) { if (pat.getAnnotatedType().isAnnotationPresent(HasAllRoles.class)) { HasAllRoles hasAllRoles = pat.getAnnotatedType().getAnnotation(HasAllRoles.class); pat.configureAnnotatedType().methods().forEach(amc -> { amc.add(hasAllRoles); amc.add(Secured.INSTANCE); }); } else { pat.configureAnnotatedType() .filterMethods(m -> m.isAnnotationPresent(HasAllRoles.class)) .forEach(amc -> { amc.add(Secured.INSTANCE); }); } }
void registerRolesAllowed(@Observes @WithAnnotations(RolesAllowed.class) ProcessAnnotatedType<?> pat) { if (pat.getAnnotatedType().isAnnotationPresent(RolesAllowed.class)) { RolesAllowed roles = pat.getAnnotatedType().getAnnotation(RolesAllowed.class); pat.configureAnnotatedType().methods().forEach(amc -> { amc.add(roles); amc.add(Secured.INSTANCE); }); } else { pat.configureAnnotatedType() .filterMethods(m -> m.isAnnotationPresent(RolesAllowed.class)) .forEach(amc -> { amc.add(Secured.INSTANCE); }); } } }
}) .findFirst() .ifPresent(m -> m.add(InjectLiteral.INSTANCE));
result.add(annotation); });
result.add(annotation); });
result.add(annotation); });