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

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

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

AnnotatedType介绍

[英]Defines alternative meta data for bean class.
[中]定义bean类的可选元数据。

代码示例

代码示例来源:origin: oracle/helidon

private void recordAnnotatedGaugeSite(@Observes @WithAnnotations(Gauge.class) ProcessAnnotatedType<?> pat) {
  LOGGER.log(Level.FINE, () -> "### recordAnnoatedGaugeSite for class " + pat.getAnnotatedType().getJavaClass());
  AnnotatedType<?> type = pat.getAnnotatedType();
  LOGGER.log(Level.FINE, () -> "### Processing annotations for " + type.getJavaClass().getName());
  // Register metrics based on annotations
  AnnotatedTypeConfigurator<?> configurator = pat.configureAnnotatedType();
  Class<?> clazz = configurator.getAnnotated().getJavaClass();
  // If abstract class, then handled by concrete subclasses
  if (Modifier.isAbstract(clazz.getModifiers())) {
    return;
  }
  // Process @Gauge methods keeping non-private declared on this class
  configurator.filterMethods(method -> method.getJavaMember().getDeclaringClass().equals(clazz)
      && !Modifier.isPrivate(method.getJavaMember().getModifiers())
      && method.isAnnotationPresent(Gauge.class))
      .forEach(method -> {
        Method javaMethod = method.getAnnotated().getJavaMember();
        String explicitGaugeName = method.getAnnotated().getAnnotation(Gauge.class).name();
        String gaugeName = String.format("%s.%s", clazz.getName(),
                         explicitGaugeName != null && explicitGaugeName.length() > 0
                             ? explicitGaugeName : javaMethod.getName());
        annotatedGaugeSites.put(gaugeName, method);
        LOGGER.log(Level.FINE, () -> String.format("### Recorded annotated gauge with name %s", gaugeName));
      });
}

代码示例来源:origin: oracle/helidon

/**
 * Collects all FT methods in a set for later processing.
 *
 * @param event Event information.
 */
void registerFaultToleranceMethods(@Observes ProcessManagedBean<?> event) {
  AnnotatedType<?> type = event.getAnnotatedBeanClass();
  for (AnnotatedMethod<?> method : type.getMethods()) {
    if (isFaultToleranceMethod(type.getJavaClass(), method.getJavaMember())) {
      getRegisteredMethods().add(new BeanMethod(type.getJavaClass(), method.getJavaMember()));
    }
  }
}

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

@Override
public Set getFields() {
  return annotatedType.getFields();
}

代码示例来源:origin: oracle/helidon

/**
 * Gather Application or resource classes to start.
 *
 * @param pit injection target
 * @param <T> any type
 */
@SuppressWarnings("unchecked")
public <T> void gatherApplications(@Observes ProcessInjectionTarget<T> pit) {
  AnnotatedType<T> at = pit.getAnnotatedType();
  if (!at.isAnnotationPresent(ApplicationScoped.class)) {
    return;
  }
  // class is annotated, let's make sure it is an application
  Class<?> theClass = at.getJavaClass();
  if (Application.class.isAssignableFrom(theClass)) {
    this.applications.add((Class<? extends Application>) theClass);
  } else {
    // still may be a jax-rs resource (with no application attached)
    if (at.isAnnotationPresent(Path.class)) {
      this.resourceClasses.add(theClass);
    }
  }
}

代码示例来源:origin: oracle/helidon

private void registerMetrics(@Observes @WithAnnotations({Counted.class, Metered.class, Timed.class})
                   ProcessAnnotatedType<?> pat) {
  AnnotatedType<?> type = pat.getAnnotatedType();
  Interceptor annot = type.getAnnotation(Interceptor.class);
  if (annot != null) {
    return;
  LOGGER.log(Level.FINE, () -> "### Processing annotations for " + pat.getAnnotatedType().getJavaClass().getName());
  AnnotatedTypeConfigurator<?> configurator = pat.configureAnnotatedType();
  Class<?> clazz = configurator.getAnnotated().getJavaClass();
  configurator.filterMethods(method -> !Modifier.isPrivate(method.getJavaMember().getModifiers()))
      .forEach(method -> {
        METRIC_ANNOTATIONS.forEach(annotation -> {
          LookupResult<? extends Annotation> lookupResult
              = lookupAnnotation(method.getAnnotated().getJavaMember(), annotation, clazz);
          if (lookupResult != null) {
            registerMetric(method.getAnnotated().getJavaMember(), clazz, lookupResult);

代码示例来源:origin: resteasy/Resteasy

/**
* Set a default scope for each CDI bean which is a JAX-RS Provider.
*
* @param <T> type
* @param event event
* @param beanManager bean manager
*/
public <T> void observeProviders(@WithAnnotations({Provider.class}) @Observes ProcessAnnotatedType<T> event, BeanManager beanManager)
{
 setBeanManager(beanManager);
 AnnotatedType<T> annotatedType = event.getAnnotatedType();
 if(!annotatedType.getJavaClass().isInterface()
      && !isSessionBean(annotatedType)
      // This check is redundant for CDI 1.1 containers but required for CDI 1.0
      && annotatedType.isAnnotationPresent(Provider.class))
 {
   LogMessages.LOGGER.debug(Messages.MESSAGES.discoveredCDIBeanJaxRsProvider(annotatedType.getJavaClass().getCanonicalName()));
   event.setAnnotatedType(wrapAnnotatedType(annotatedType, applicationScopedLiteral));
   this.providers.add(annotatedType.getJavaClass());
 }
}

代码示例来源:origin: org.demoiselle.jee/demoiselle-core

protected void startup(@Observes ProcessAnnotatedType<?> event) {
  final AnnotatedType<?> annotatedType = event.getAnnotatedType();
  for (AnnotatedMethod<?> am : annotatedType.getMethods()) {
    if (am.isAnnotationPresent(Startup.class)) {
      methodsWithStartup.add(new AnnotatedMethodProcessor(am));
    }
    if (am.isAnnotationPresent(Shutdown.class)) {
      methodsWithShutdown.add(new AnnotatedMethodProcessor(am));
    }
  }
}

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

/**
 * Ignores the classes which are manually added using bindings (through {@link Application} class) and scanned by CDI.
 * The manual adding is privileged and the beans scanned using CDI are ignored.
 * <p>
 * TODO: The method counts with the condition that the all bindings are known before the CDI scanning has been started,
 * can be changed during the migration from CDI SE to JAVA EE environment.
 *
 * @param pat processed type.
 * @param <T> type of the scanned bean.
 */
public <T> void ignoreManuallyRegisteredComponents(
    @Observes @WithAnnotations({ Path.class, Provider.class }) ProcessAnnotatedType<T> pat) {
  for (Binding binding : bindings.getBindings()) {
    if (ClassBinding.class.isAssignableFrom(binding.getClass())) {
      ClassBinding<?> classBinding = (ClassBinding<?>) binding;
      if (pat.getAnnotatedType().getJavaClass() == classBinding.getService()) {
        pat.veto();
        return;
      }
    } else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) {
      InstanceBinding<?> instanceBinding = (InstanceBinding<?>) binding;
      if (pat.getAnnotatedType().getJavaClass() == instanceBinding.getService().getClass()) {
        pat.veto();
        return;
      }
    }
  }
}

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

void observesAnimalShelterPAT(@Observes ProcessAnnotatedType<AnimalShelter> event) {
  AnnotatedTypeConfigurator<AnimalShelter> annotatedTypeConfigurator = event.configureAnnotatedType();
  AnnotatedMethod<? super AnimalShelter> annotatedMethod = methodConfigurator.getAnnotated();
  annotatedMethodEqual.set(AnnotatedTypes.compareAnnotatedCallable(
      event.getAnnotatedType().getMethods().stream().filter(m -> m.getJavaMember().getName().equals("observesRoomInShelter")).findAny().get(),
      annotatedMethod));
      .filterConstructors(ac -> ac.isAnnotationPresent(Inject.class))
      .findFirst().get();
  AnnotatedConstructor<AnimalShelter> originalAnnotatedConstructor = event.getAnnotatedType().getConstructors().stream()
      .filter(m -> m.isAnnotationPresent(Inject.class)).findAny().get();
      .set(AnnotatedTypes.compareAnnotatedParameters(originalAnnotatedConstructor.getParameters(), configuratorAnnotatedConstructor.getParameters()));
    return annotatedField.getJavaMember().getName().equals("cat");
  }).findFirst().get();
      .compareAnnotatedField(event.getAnnotatedType().getFields().stream().filter(af -> af.getJavaMember().getName().equals("cat")).findAny().get(),
          annotatedField));

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

/**
 * Wraps all JAR-RS components by Jersey-specific injection target.
 *
 * @param pit process injection target.
 * @param <T> type of the processed injection target.
 */
public <T> void observeInjectionTarget(@Observes ProcessInjectionTarget<T> pit) {
  BasicInjectionTarget<T> it = (BasicInjectionTarget<T>) pit.getInjectionTarget();
  JerseyInjectionTarget<T> jerseyInjectionTarget =
      new JerseyInjectionTarget<>(it, pit.getAnnotatedType().getJavaClass());
  jerseyInjectionTargets.add(jerseyInjectionTarget);
  pit.setInjectionTarget(jerseyInjectionTarget);
}

代码示例来源:origin: org.jboss.weld.se/weld-se

public static String formatAnnotatedMethod(AnnotatedMethod<?> method) {
  return Formats.formatSimpleClassName(method) + " " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(method.getAnnotations()))
      + Formats.addSpaceIfNeeded(Formats.formatModifiers(method.getJavaMember().getModifiers())) + method.getDeclaringType().getJavaClass().getName() + "."
      + method.getJavaMember().getName() + Formats.formatAsFormalParameterList(method.getParameters());
}

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

@SuppressWarnings("unused")
private void processInjectionTarget(@Observes final ProcessInjectionTarget event) {
  final InjectionTarget it = event.getInjectionTarget();
  final Class<?> componentClass = event.getAnnotatedType().getJavaClass();
      || jaxrsInjectableTypes.contains(event.getAnnotatedType().getBaseType())) {
    target = new InjectionManagerInjectedCdiTarget(it) {

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

void processAnnotatedType(@Observes ProcessAnnotatedType<FruitObserver> pat) {
  peachObserver = pat.getAnnotatedType().getMethods().stream()
      .filter(annotatedMethod -> annotatedMethod.getJavaMember().getName().equals("observesPeach")).findAny().get();
}

代码示例来源:origin: org.agorava/solder-generics-impl

<X> void registerGenericBean(@Observes ProcessManagedBean<X> event) {
  AnnotatedType<X> type = event.getAnnotatedBeanClass();
  if (type.isAnnotationPresent(GenericConfiguration.class)) {
    Class<? extends Annotation> genericType = type.getAnnotation(GenericConfiguration.class).value();
    genericBeans.put(genericType, new BeanHolder<X>(event.getAnnotatedBeanClass(), event.getBean()));
    for (AnnotatedMethod<? super X> m : event.getAnnotatedBeanClass().getMethods()) {
      if (m.isAnnotationPresent(Unwraps.class)) {
        unwrapsMethods.put(genericType, m);
      }
    }
  }
}

代码示例来源:origin: org.apache.myfaces.core/myfaces-impl

<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event, BeanManager beanManager)
{
  FacesConfig facesConfig = event.getAnnotatedType().getAnnotation(FacesConfig.class);
  if (facesConfig != null && facesConfig.version() == FacesConfig.Version.JSF_2_3)
  {
    registerCdiProducers = true;
  }
}

代码示例来源:origin: org.jboss.weld.se/weld-se

if (!t1.getJavaClass().equals(t2.getJavaClass())) {
  return false;
if (t1.getFields().size() != t2.getFields().size()) {
  return false;
for (AnnotatedField<?> f : t2.getFields()) {
  fields.put(f.getJavaMember(), f);
for (AnnotatedField<?> f : t1.getFields()) {
  if (fields.containsKey(f.getJavaMember())) {
    if (!compareAnnotatedField(f, fields.get(f.getJavaMember()))) {
      return false;
if (t1.getMethods().size() != t2.getMethods().size()) {
  return false;
for (AnnotatedMethod<?> f : t2.getMethods()) {
  methods.put(f.getJavaMember(), f);
for (AnnotatedMethod<?> f : t1.getMethods()) {
  if (methods.containsKey(f.getJavaMember())) {
    if (!compareAnnotatedCallable(f, methods.get(f.getJavaMember()))) {
      return false;
if (t1.getConstructors().size() != t2.getConstructors().size()) {
  return false;
for (AnnotatedConstructor<?> f : t2.getConstructors()) {

代码示例来源:origin: weld/core

public static String formatAnnotatedField(AnnotatedField<?> field) {
  return Formats.formatSimpleClassName(field) + " " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(field.getAnnotations()))
      + Formats.addSpaceIfNeeded(Formats.formatModifiers(field.getJavaMember().getModifiers())) + field.getDeclaringType().getJavaClass().getName() + "."
      + field.getJavaMember().getName();
}

代码示例来源:origin: weld/core

protected static void validateParameterCount(AnnotatedCallable<?> callable) {
    if (callable instanceof BackedAnnotatedMember) {
      return; // do not validate backed implementation
    }
    Class<?>[] parameterTypes = null;
    if (callable instanceof AnnotatedConstructor<?>) {
      parameterTypes = AnnotatedConstructor.class.cast(callable).getJavaMember().getParameterTypes();
    } else {
      parameterTypes = AnnotatedMethod.class.cast(callable).getJavaMember().getParameterTypes();
    }
    if (callable.getParameters().size() != parameterTypes.length) {
      // For enums, BackedAnnotatedConstructor sets parameters to an empty list, so we shouldn't throw the DefinitionException
      Class<?> declaringClass = callable.getDeclaringType().getJavaClass();
      if (!declaringClass.isEnum() && !declaringClass.isMemberClass()) {
        throw ReflectionLogger.LOG.incorrectNumberOfAnnotatedParametersMethod(callable.getParameters().size(), callable, callable.getParameters(), Arrays.asList(parameterTypes));
      }
    }
  }
}

代码示例来源:origin: weld/core

static String annotatedMethodToString(AnnotatedMethod<?> method, Class<?> beanClass) {
  StringBuilder builder = new StringBuilder();
  builder.append(Formats.addSpaceIfNeeded(Formats.formatAnnotations(method.getAnnotations())));
  builder.append(Formats.formatModifiers(method.getJavaMember().getModifiers()));
  TypeVariable<Method>[] typeParams = method.getJavaMember().getTypeParameters();
  builder.append(' ');
  if (typeParams.length > 0) {
    builder.append(Formats.formatTypeParameters(typeParams));
    builder.append(' ');
  }
  builder.append(Formats.formatType(method.getJavaMember().getGenericReturnType()));
  builder.append(' ');
  if (!beanClass.getName().equals(method.getDeclaringType().getJavaClass().getName())) {
    builder.append(Formats.formatType(method.getDeclaringType().getJavaClass()));
    builder.append('.');
  }
  builder.append(method.getJavaMember().getName());
  builder.append(Formats.formatAsFormalParameterList(method.getParameters()));
  return builder.toString();
}

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

private void validateManagedBean(AnnotatedType<Farm> type)
{
 assert type.getBaseType().equals(Farm.class);
 assert rawTypeSetMatches(type.getTypeClosure(), Farm.class, Object.class);
 assert type.getFields().size() == 1;
 assert type.getFields().iterator().next().isAnnotationPresent(Produces.class);
 assert type.getMethods().size() == 1;
 assert type.getMethods().iterator().next().isAnnotationPresent(Produces.class);
}

相关文章