javax.enterprise.inject.spi.AfterBeanDiscovery类的使用及代码示例

x33g5p2x  于2022-01-15 转载在 其他  
字(9.9k)|赞(0)|评价(0)|浏览(151)

本文整理了Java中javax.enterprise.inject.spi.AfterBeanDiscovery类的一些代码示例,展示了AfterBeanDiscovery类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AfterBeanDiscovery类的具体详情如下:
包路径:javax.enterprise.inject.spi.AfterBeanDiscovery
类名称:AfterBeanDiscovery

AfterBeanDiscovery介绍

[英]The event type of the second event fired by the container when it has fully completed the bean discovery process, validated that there are no definition errors relating to the discovered beans, and registered javax.enterprise.inject.spi.Beanand javax.enterprise.inject.spi.ObserverMethod objects for the discovered beans, but before detecting deployment problems.

A portable extension may take advantage of this event to register javax.enterprise.inject.spi.Bean, javax.enterprise.inject.spi.Interceptor, javax.decorator.Decorator, javax.enterprise.event.Observes and javax.enterprise.contextobjects with the container.

void afterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager manager) { ... }

If any observer method of the AfterBeanDiscovery event throws an exception, the exception is treated as a definition error by the container.
[中]容器在完全完成bean发现过程、验证没有与发现的bean相关的定义错误并注册javax时触发的第二个事件的事件类型。企业注射spi。Bean和javax。企业注射spi。ObserverMethod对象,但在检测到部署问题之前。
可移植扩展可以利用此事件来注册javax。企业注射spi。Bean,javax。企业注射spi。拦截器,javax。室内装修设计师装饰器,javax。企业事件观察和javax。企业容器中的contextobjects。

void afterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager manager) { ... }

如果AfterBeanDiscovery事件的任何观察者方法引发异常,则容器会将该异常视为定义错误。

代码示例

代码示例来源:origin: javaee-samples/javaee7-samples

/**
 * This method registers the actual dynamic interceptor
 */
public void afterBean(final @Observes AfterBeanDiscovery afterBeanDiscovery) {
  afterBeanDiscovery.addBean(new DynamicHelloInterceptor());
}

代码示例来源:origin: camunda/camunda-bpm-platform

public void afterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager manager) {       
 event.addContext(new BusinessProcessContext(manager));
}

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

public void observeAfterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager beanManager) {
  AnnotatedType<DeltaDecorator> type = beanManager.createAnnotatedType(DeltaDecorator.class);
  deltaDecorator = new DeltaDecoratorBean(type.getFields().iterator().next(), beanManager);
  event.addBean(deltaAlternative);
  event.addBean(deltaInterceptor);
  event.addBean(deltaDecorator);
}

代码示例来源:origin: io.astefanutti.metrics.cdi/metrics-cdi

private void defaultMetricRegistry(@Observes AfterBeanDiscovery abd, BeanManager manager) {
  if (manager.getBeans(MetricRegistry.class).isEmpty())
    abd.addBean(new SyntheticBean<MetricRegistry>(manager, MetricRegistry.class, "metric-registry", "Default Metric Registry Bean"));
}

代码示例来源:origin: org.jboss.seam.solder/seam-solder

void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBean)
{
 for (Bean<?> b : beans)
 {
   afterBean.addBean(b);
 }
 for (Throwable e : problems)
 {
   afterBean.addDefinitionError(e);
 }
}

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

public void registerObservers(@Observes AfterBeanDiscovery event) {
  event.addObserverMethod(anyGiraffeObserver);
  event.addObserverMethod(fiveMeterTallGiraffeObserver);
  event.addObserverMethod(sixMeterTallAngryGiraffeObserver);
  event.addObserverMethod(angryNubianGiraffeObserver);
}

代码示例来源:origin: org.jboss.seam.jms/seam-jms

public void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager bm)
{
 Set<Bean<?>> configuration = bm.getBeans(JmsForwarding.class);
 
 if(configuration == null || configuration.isEmpty())
 {
   log.info("No {} registered.  Event forwarding disabled.", JmsForwarding.class.getSimpleName());
 } else
 {
   for(Bean<?> c : configuration)
   {
    log.info("Creating {} for configuration {}", BridgedObserver.class.getSimpleName(), c);
    CreationalContext<?> context = bm.createCreationalContext(c);
    // TODO Verify configuration for correctness (e.g. getQualifiers() must contain only @Qualifier annotations)
    JmsForwarding config = JmsForwarding.class.cast(bm.getReference(c, JmsForwarding.class, context));
    BridgedObserver b = new BridgedObserver(bm, config);
    abd.addObserverMethod(b);
   }
 }
}

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

public void addABean(@Observes AfterBeanDiscovery event) {
  event.addBean(new CowBean());
  event.addContext(new DummyContext());
  afterBeanDiscoveryObserved = true;
}

代码示例来源:origin: hammock-project/hammock

public void addMetricsBean(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
    if(!foundMetricCollectorBean) {
      try{
        Class.forName("com.codahale.metrics.MetricRegistry");
        final AnnotatedType<StandardMetricsCollector> annotatedType = beanManager.createAnnotatedType(StandardMetricsCollector.class);
        afterBeanDiscovery.addBean(new StandardMetricsCollectorBean(beanManager.createInjectionTarget(annotatedType), beanManager));
      }
      catch (Exception e) {
        final AnnotatedType<NoOpMetricsCollector> annotatedType = beanManager.createAnnotatedType(NoOpMetricsCollector.class);
        afterBeanDiscovery.addBean(new NoOpMetricCollectorBean(beanManager.createInjectionTarget(annotatedType)));
      }
    }
  }
}

代码示例来源:origin: org.jboss.seam.config/seam-config-xml

public void processAfterBeanDeployment(@Observes AfterBeanDiscovery event)
{
 for (Exception t : errors)
 {
   event.addDefinitionError(t);
 }
}

代码示例来源:origin: org.rapidpm.modul/cdi-commons

public void afterBeanDiscovery(@Observes AfterBeanDiscovery event, BeanManager manager) {
  final AnnotatedType annotationType = manager.createAnnotatedType(CDITransactionContext.class);
  final InjectionTarget injectionTarget = manager.createInjectionTarget(annotationType);
  final CreationalContext creationalContext = manager.createCreationalContext(null);
  final CDITransactionContext context = new CDITransactionContext();
  injectionTarget.inject(context, creationalContext);
  injectionTarget.postConstruct(CDITransactionContext.class);
  if (logger.isDebugEnabled()) {
    logger.debug("afterBeanDiscovery -> context " + context);
  }
  context.setBeanManager(manager);
  event.addContext(context);
}

代码示例来源:origin: jersey/jersey

private void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
  final InjectionTarget<ValidationInterceptor> interceptorTarget = beanManager.createInjectionTarget(interceptorType);
  afterBeanDiscovery.addBean(new Bean<ValidationInterceptor>() {

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

public void registerBicycle(@Observes AfterBeanDiscovery event, BeanManager manager) {
  bicycleAttributesBeforeRegistering = manager.createBeanAttributes(manager.createAnnotatedType(Bicycle.class));
  event.addBean(new BicycleBean(bicycleAttributesBeforeRegistering));
}

代码示例来源:origin: com.blazebit/blaze-persistence-integration-core-cdi

void initializeEntityViewSystem(@Observes AfterBeanDiscovery abd, BeanManager bm) {
    bm.fireEvent(configuration);
    CriteriaBuilderFactory criteriaBuilderFactory = configuration.createCriteriaBuilderFactory();
    
    Class<?> beanClass = CriteriaBuilderFactory.class;
    Class<?>[] types = new Class[] { CriteriaBuilderFactory.class, Object.class };
    Annotation[] qualifiers = new Annotation[] { new DefaultLiteral()};
    Class<? extends Annotation> scope = Singleton.class;
    CriteriaBuilderFactory instance = criteriaBuilderFactory;
    Bean<CriteriaBuilderFactory> bean = new CustomBean<CriteriaBuilderFactory>(beanClass, types, qualifiers, scope, instance);

    abd.addBean(bean);
  }
}

代码示例来源:origin: com.tomitribe.tribestream/tribestream-container

void addBeans(@Observes final AfterBeanDiscovery abd) {
  for (final Bean<?> bean : beans) {
    abd.addBean(bean);
  }
  if (mergeContainer(abd)) {
    abd.addObserverMethod(new ChildWebAppBusPropagaterObserverBean(SystemInstance.get().getComponent(Container.class)));
  }
}

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

void observeABD(@Observes AfterBeanDiscovery abd, BeanManager beanManager) {

    abd.addBean()
        .addType(Account.class)
        .addQualifier(Custom.CustomLiteral.INSTANCE)
        .<Account>createWith((cc) -> {
          InterceptionFactory<Account> factory = beanManager.createInterceptionFactory(cc, Account.class);
          factory.configure().add(FeeBinding.FeeLiteral.INSTANCE);
          return factory.createInterceptedInstance(new Account());
        });
  }
}

代码示例来源:origin: jersey/jersey

/**
 * Registers a class supplier and its provided value as {@link JerseyBean}s into {@link BeanManager}.
 *
 * @param binding     object containing {@link javax.enterprise.inject.spi.BeanAttributes} information.
 * @param abd         {@link AfterBeanDiscovery} event.
 * @param resolvers   all registered injection resolvers.
 * @param beanManager currently used bean manager.
 * @param <T>         type of the class which is registered.
 */
@SuppressWarnings("unchecked")
public static <T> void registerSupplier(SupplierClassBinding<T> binding, AfterBeanDiscovery abd,
    Collection<InjectionResolver> resolvers, BeanManager beanManager) {
  Class<Supplier<T>> supplierClass = (Class<Supplier<T>>) binding.getSupplierClass();
  AnnotatedType<Supplier<T>> annotatedType = beanManager.createAnnotatedType(supplierClass);
  InjectionTarget<Supplier<T>> injectionTarget = beanManager.createInjectionTarget(annotatedType);
  SupplierClassBean<T> supplierBean = new SupplierClassBean<>(binding);
  InjectionTarget<Supplier<T>> jit = getJerseyInjectionTarget(supplierClass, injectionTarget, supplierBean, resolvers);
  supplierBean.setInjectionTarget(jit);
  abd.addBean(supplierBean);
  abd.addBean(new SupplierBeanBridge(binding, beanManager));
}

代码示例来源:origin: io.smallrye.reactive/smallrye-reactive-messaging-provider

public static void registerVertxBeanIfNeeded(AfterBeanDiscovery discovery, BeanManager beanManager) {
  Optional<Bean<?>> optional = beanManager.getBeans(Vertx.class).stream().findFirst();
  if (!optional.isPresent()) {
   LOGGER.debug("Declaring a Vert.x bean");
   discovery.addBean()
    .types(Vertx.class)
    .beanClass(Vertx.class)
    .scope(Singleton.class)
    .produceWith(i -> Vertx.vertx())
    .disposeWith((vertx, i) -> vertx.close());
  }
 }
}

代码示例来源:origin: lettuce-io/lettuce-core

private void register(AfterBeanDiscovery afterBeanDiscovery, Set<Annotation> qualifiers, Bean<?> bean) {
    LOGGER.info(String.format("Registering bean '%s' with qualifiers %s.", bean.getBeanClass().getName(), qualifiers));
    afterBeanDiscovery.addBean(bean);
  }
}

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

void execute() {
    event.addContext(beanManager.getContext(SessionScoped.class));
  }
}.run();

相关文章