javax.inject.Qualifier#javax.enterprise.inject.Default源码实例Demo

下面列出了javax.inject.Qualifier#javax.enterprise.inject.Default 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: quarkus   文件: BeanArchives.java
private static IndexView buildAdditionalIndex() {
    Indexer indexer = new Indexer();
    // CDI API
    index(indexer, ActivateRequestContext.class.getName());
    index(indexer, Default.class.getName());
    index(indexer, Any.class.getName());
    index(indexer, Named.class.getName());
    index(indexer, Initialized.class.getName());
    index(indexer, BeforeDestroyed.class.getName());
    index(indexer, Destroyed.class.getName());
    index(indexer, Intercepted.class.getName());
    index(indexer, Model.class.getName());
    // Arc built-in beans
    index(indexer, ActivateRequestContextInterceptor.class.getName());
    index(indexer, InjectableRequestContextController.class.getName());
    return indexer.complete();
}
 
源代码2 项目: quarkus   文件: InjectionPointMetadataTest.java
@SuppressWarnings({ "unchecked", "serial" })
@Test
public void testObserverInjectionPointMetadata() {
    AtomicReference<InjectionPoint> ip = new AtomicReference<>();
    Arc.container().beanManager().getEvent().select(new TypeLiteral<AtomicReference<InjectionPoint>>() {
    }).fire(ip);
    InjectionPoint injectionPoint = ip.get();
    assertNotNull(injectionPoint);
    assertEquals(Controlled.class, injectionPoint.getType());
    Set<Annotation> qualifiers = injectionPoint.getQualifiers();
    assertEquals(1, qualifiers.size());
    assertEquals(Default.class, qualifiers.iterator().next().annotationType());
    Assertions.assertNull(injectionPoint.getBean());
    assertNotNull(injectionPoint.getAnnotated());
    assertTrue(injectionPoint.getAnnotated() instanceof AnnotatedParameter);
    AnnotatedParameter<Controller> annotatedParam = (AnnotatedParameter<Controller>) injectionPoint.getAnnotated();
    assertEquals(Controlled.class, annotatedParam.getBaseType());
    assertEquals(1, annotatedParam.getAnnotations().size());
    assertFalse(annotatedParam.isAnnotationPresent(Inject.class));
    assertTrue(annotatedParam.isAnnotationPresent(FooAnnotation.class));
    assertTrue(annotatedParam.getAnnotation(Singleton.class) == null);
    assertTrue(annotatedParam.getAnnotations(Singleton.class).isEmpty());
}
 
源代码3 项目: quarkus   文件: InterfaceConfigPropertiesUtil.java
/**
 * Add a method like this:
 * 
 * <pre>
 *  &#64;Produces
 *  public SomeConfig produceSomeClass(Config config) {
 *      return new SomeConfigQuarkusImpl(config)
 *  }
 * </pre>
 */
static void addProducerMethodForInterfaceConfigProperties(ClassCreator classCreator, DotName interfaceName,
        String prefix, boolean needsQualifier, String generatedClassName) {
    String methodName = "produce" + interfaceName.withoutPackagePrefix();
    if (needsQualifier) {
        // we need to differentiate the different producers of the same class
        methodName = methodName + "WithPrefix" + HashUtil.sha1(prefix);
    }
    try (MethodCreator method = classCreator.getMethodCreator(methodName, interfaceName.toString(),
            Config.class.getName())) {

        method.addAnnotation(Produces.class);
        if (needsQualifier) {
            method.addAnnotation(AnnotationInstance.create(DotNames.CONFIG_PREFIX, null,
                    new AnnotationValue[] { AnnotationValue.createStringValue("value", prefix) }));
        } else {
            method.addAnnotation(Default.class);
        }
        method.returnValue(method.newInstance(MethodDescriptor.ofConstructor(generatedClassName, Config.class),
                method.getMethodParam(0)));
    }
}
 
源代码4 项目: thorntail   文件: CommandLineArgsExtension.java
void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {
    CommonBean<String[]> stringBean = CommonBeanBuilder.newBuilder(String[].class)
            .beanClass(CommandLineArgsExtension.class)
            .scope(Dependent.class)
            .createSupplier(() -> args)
            .addQualifier(CommandLineArgs.Literal.INSTANCE)
            .addType(String[].class)
            .addType(Object.class).build();
    abd.addBean(stringBean);
    CommonBean<List> listBean = CommonBeanBuilder.newBuilder(List.class)
            .beanClass(CommandLineArgsExtension.class)
            .scope(Dependent.class)
            .createSupplier(() -> argsList)
            .addQualifier(Default.Literal.INSTANCE)
            .addType(List.class)
            .addType(Object.class).build();
    abd.addBean(listBean);
}
 
源代码5 项目: tomee   文件: CheckInjectionPointUsage.java
@Override
public void validate(final EjbModule ejbModule) {
    if (ejbModule.getBeans() == null) {
        return;
    }

    try {
        for (final Field field : ejbModule.getFinder().findAnnotatedFields(Inject.class)) {
            if (!field.getType().equals(InjectionPoint.class) || !HttpServlet.class.isAssignableFrom(field.getDeclaringClass())) {
                continue;
            }

            final Annotation[] annotations = field.getAnnotations();
            if (annotations.length == 1 || (annotations.length == 2 && field.getAnnotation(Default.class) != null)) {
                throw new DefinitionException("Can't inject InjectionPoint in " + field.getDeclaringClass());
            } // else we should check is there is no other qualifier than @Default but too early
        }
    } catch (final NoClassDefFoundError noClassDefFoundError) {
        // ignored: can't check but maybe it is because of an optional dep so ignore it
        // not important to skip it since the failure will be reported elsewhere
        // this validator doesn't check it
    }
}
 
public HelperBean(final AnnotatedType<CDIJCacheHelper> annotatedType,
                  final InjectionTarget<CDIJCacheHelper> injectionTarget,
                  final String id) {
    this.at = annotatedType;
    this.it = injectionTarget;
    this.id =  "JCS#CDIHelper#" + id;

    this.qualifiers = new HashSet<>();
    this.qualifiers.add(new AnnotationLiteral<Default>() {

        /**
         * 
         */
        private static final long serialVersionUID = 3314657767813459983L;});
    this.qualifiers.add(new AnnotationLiteral<Any>() {

        /**
         * 
         */
        private static final long serialVersionUID = 7419841275942488170L;});
}
 
源代码7 项目: deltaspike   文件: TransactionStrategyHelper.java
/**
 * <p>This method uses the InvocationContext to scan the &#064;Transactional
 * interceptor for a manually specified Qualifier.</p>
 *
 * <p>If none is given (defaults to &#04;Any.class) then we scan the intercepted
 * instance and resolve the Qualifiers of all it's injected EntityManagers.</p>
 *
 * <p>Please note that we will only pickup the first Qualifier on the
 * injected EntityManager. We also do <b>not</b> parse for binding or
 * &h#064;NonBinding values. A &#064;Qualifier should not have any parameter at all.</p>
 * @param entityManagerMetadata the metadata to locate the entity manager
 * @param interceptedTargetClass the Class of the intercepted target
 */
public Set<Class<? extends Annotation>> resolveEntityManagerQualifiers(EntityManagerMetadata entityManagerMetadata,
                                                                       Class interceptedTargetClass)
{
    Set<Class<? extends Annotation>> emQualifiers = new HashSet<>();
    Class<? extends Annotation>[] qualifierClasses = entityManagerMetadata.getQualifiers();

    if (qualifierClasses == null || qualifierClasses.length == 1 && Any.class.equals(qualifierClasses[0]) )
    {
        // this means we have no special EntityManager configured in the interceptor
        // thus we should scan all the EntityManagers ourselfs from the intercepted class
        collectEntityManagerQualifiersOnClass(emQualifiers, interceptedTargetClass);
    }
    else
    {
        // take the qualifierKeys from the qualifierClasses
        Collections.addAll(emQualifiers, qualifierClasses);
    }

    //see DELTASPIKE-320
    if (emQualifiers.isEmpty())
    {
        emQualifiers.add(Default.class);
    }
    return emQualifiers;
}
 
源代码8 项目: deltaspike   文件: AnnotatedTypeBuilderTest.java
@Test
public void modifyAnnotationsOnConstructorParameter() throws NoSuchMethodException
{
    final AnnotatedTypeBuilder<Cat> builder = new AnnotatedTypeBuilder<Cat>();
    builder.readFromType(Cat.class, true);
    builder.removeFromConstructorParameter(Cat.class.getConstructor(String.class, String.class), 1, Default.class);
    builder.addToConstructorParameter(Cat.class.getConstructor(String.class, String.class), 1, new AnyLiteral());

    final AnnotatedType<Cat> catAnnotatedType = builder.create();
    Set<AnnotatedConstructor<Cat>> catCtors = catAnnotatedType.getConstructors();

    assertThat(catCtors.size(), is(2));

    for (AnnotatedConstructor<Cat> ctor : catCtors)
    {
        if (ctor.getParameters().size() == 2)
        {
            List<AnnotatedParameter<Cat>> ctorParams = ctor.getParameters();

            assertThat(ctorParams.get(1).getAnnotations().size(), is(1));
            assertThat((AnyLiteral) ctorParams.get(1).getAnnotations().toArray()[0], is(new AnyLiteral()));
        }
    }
}
 
源代码9 项目: deltaspike   文件: ConversationKey.java
public ConversationKey(Class<?> groupKey, Annotation... qualifiers)
{
    this.groupKey = groupKey;

    //TODO maybe we have to add a real qualifier instead
    Class<? extends Annotation> annotationType;
    for (Annotation qualifier : qualifiers)
    {
        annotationType = qualifier.annotationType();

        if (Any.class.isAssignableFrom(annotationType) ||
                Default.class.isAssignableFrom(annotationType) ||
                Named.class.isAssignableFrom(annotationType) ||
                ConversationGroup.class.isAssignableFrom(annotationType))
        {
            //won't be used for this key!
            continue;
        }

        if (this.qualifiers == null)
        {
            this.qualifiers = new HashSet<Annotation>();
        }
        this.qualifiers.add(qualifier);
    }
}
 
源代码10 项目: smallrye-metrics   文件: MetricRegistries.java
@Produces
@Default
@RegistryType(type = MetricRegistry.Type.APPLICATION)
@ApplicationScoped
public MetricRegistry getApplicationRegistry() {
    return get(MetricRegistry.Type.APPLICATION);
}
 
源代码11 项目: quarkus   文件: BeanOnlyInTestCase.java
@Test
public void testBeanIsInjected() {
    assertNotNull(unusedBean);
    InjectionPoint injectionPoint = unusedBean.getInjectionPoint();
    assertNotNull(injectionPoint);
    assertEquals(UnusedBean.class, injectionPoint.getType());
    assertEquals(1, injectionPoint.getQualifiers().size());
    assertEquals(Default.class, injectionPoint.getQualifiers().iterator().next().annotationType());
    assertTrue(injectionPoint.getMember() instanceof Field);
    assertTrue(injectionPoint.getAnnotated().isAnnotationPresent(Inject.class));
}
 
源代码12 项目: quarkus   文件: ArcContainerImpl.java
@SuppressWarnings("unchecked")
@Override
public <T> Supplier<InstanceHandle<T>> instanceSupplier(Class<T> type, Annotation... qualifiers) {
    requireRunning();

    if (qualifiers == null || qualifiers.length == 0) {
        qualifiers = new Annotation[] { Default.Literal.INSTANCE };
    }
    Set<InjectableBean<?>> resolvedBeans = resolved.getValue(new Resolvable(type, qualifiers));
    Set<InjectableBean<?>> filteredBean = resolvedBeans;
    if (resolvedBeans.size() > 1) {
        //if there are multiple beans we look for an exact match
        //this method is only called with the exact type required
        //so ignoring subclasses is the correct behaviour
        filteredBean = new HashSet<>();
        for (InjectableBean<?> i : resolvedBeans) {
            if (i.getBeanClass().equals(type)) {
                filteredBean.add(i);
            }
        }
    }
    InjectableBean<T> bean = filteredBean.isEmpty() || filteredBean.size() > 1 ? null
            : (InjectableBean<T>) filteredBean.iterator().next();
    if (bean == null) {
        return null;
    }
    return new Supplier<InstanceHandle<T>>() {
        @Override
        public InstanceHandle<T> get() {
            return beanInstanceHandle(bean, null);
        }
    };
}
 
源代码13 项目: quarkus   文件: ArcContainerImpl.java
@SuppressWarnings("unchecked")
private <T> InjectableBean<T> getBean(Type requiredType, Annotation... qualifiers) {
    if (qualifiers == null || qualifiers.length == 0) {
        qualifiers = new Annotation[] { Default.Literal.INSTANCE };
    } else {
        Qualifiers.verify(qualifiers);
    }
    Set<InjectableBean<?>> resolvedBeans = resolved.getValue(new Resolvable(requiredType, qualifiers));
    return resolvedBeans.isEmpty() || resolvedBeans.size() > 1 ? null : (InjectableBean<T>) resolvedBeans.iterator().next();
}
 
源代码14 项目: quarkus   文件: BeanManagerTest.java
@Test
public void testIsQualifier() {
    BeanManager beanManager = Arc.container().beanManager();
    assertTrue(beanManager.isQualifier(Default.class));
    assertTrue(beanManager.isQualifier(High.class));
    assertFalse(beanManager.isQualifier(ApplicationScoped.class));
}
 
源代码15 项目: quarkus   文件: MongoClientProcessor.java
private SyntheticBeanBuildItem applyCommonBeanConfig(boolean makeUnremovable, String clientName,
        SyntheticBeanBuildItem.ExtendedBeanConfigurator configurator) {
    if (makeUnremovable) {
        configurator.unremovable();
    }

    if (MongoClientBeanUtil.isDefault(clientName)) {
        configurator.addQualifier(Default.class);
    } else {
        String namedQualifier = MongoClientBeanUtil.namedQualifier(clientName, false);
        configurator.addQualifier().annotation(DotNames.NAMED).addValue("value", namedQualifier).done();
        configurator.addQualifier().annotation(MONGOCLIENT_ANNOTATION).addValue("value", clientName).done();
    }
    return configurator.done();
}
 
源代码16 项目: quarkus   文件: MongoClientRecorder.java
@SuppressWarnings("rawtypes")
private AnnotationLiteral literal(String name) {
    if (name.startsWith(MongoClientBeanUtil.DEFAULT_MONGOCLIENT_NAME)) {
        return Default.Literal.INSTANCE;
    }
    return NamedLiteral.of(name);
}
 
源代码17 项目: quarkus   文件: MethodParameterInjectionPoint.java
public Set<Annotation> getQualifiers() {
    Set<Annotation> qualifiers = new HashSet<>();
    for (Annotation potentialQualifier : method.getParameterAnnotations()[position]) {
        if (potentialQualifier.annotationType().getAnnotation(Qualifier.class) != null) {
            qualifiers.add(potentialQualifier);
        }
    }
    if (qualifiers.size() == 0) {
        qualifiers.add(Default.Literal.INSTANCE);
    }
    return qualifiers;
}
 
源代码18 项目: cdi   文件: BeanWrapper.java
@SuppressWarnings("serial")
@Override
public Set<Annotation> getQualifiers() {
    final Set<Annotation> qualifiers = new HashSet<>();

    qualifiers.add(new AnnotationLiteral<Default>() {
    });
    qualifiers.add(new AnnotationLiteral<Any>() {
    });

    return qualifiers;
}
 
源代码19 项目: cdi   文件: CdiUtilitiesTest.java
@Test
public void testGetReference() {
    Set<Bean<?>> beansFound = beanManager.getBeans(Foo.class,
            new AnnotationLiteral<Default>() {
    });
    assertSame(foo, CdiUtilities.getReference(beanManager,
            beansFound.iterator().next(), Foo.class));
}
 
@Test
@ExtendWith(CustomExtension.class)
@ExplicitParamInjection
public void testParametersNeedExtraAnnotation(@Default Foo foo, Bar bar, @MyQualifier BeanWithQualifier bean) {
    // Bar should be resolved by another extension
    Assertions.assertNotNull(bar);
    Assertions.assertEquals(CustomExtension.class.getSimpleName(), bar.ping());
    // Foo should be resolved as usual
    Assertions.assertNotNull(foo);
    Assertions.assertEquals(Foo.class.getSimpleName(), foo.ping());
    // BeanWithQualifier should be resolved
    Assertions.assertNotNull(bean);
    Assertions.assertEquals(BeanWithQualifier.class.getSimpleName(), bean.ping());
}
 
@Test
@ExtendWith(CustomExtension.class)
public void testParametersNeedExtraAnnotation(@Default Foo foo, Bar bar, @MyQualifier BeanWithQualifier bean) {
    // Bar should be resolved by another extension
    Assertions.assertNotNull(bar);
    Assertions.assertEquals(CustomExtension.class.getSimpleName(), bar.ping());
    // Foo should be resolved as usual
    Assertions.assertNotNull(foo);
    Assertions.assertEquals(Foo.class.getSimpleName(), foo.ping());
    // BeanWithQualifier should be resolved
    Assertions.assertNotNull(bean);
    Assertions.assertEquals(BeanWithQualifier.class.getSimpleName(), bean.ping());
}
 
@Test
@ExtendWith(CustomExtension.class)
public void testParametersNeedExtraAnnotation(@Default Foo foo, Bar bar, @MyQualifier BeanWithQualifier bean) {
    // Bar should be resolved by another extension
    Assertions.assertNotNull(bar);
    Assertions.assertEquals(CustomExtension.class.getSimpleName(), bar.ping());
    // Foo should be resolved as usual
    Assertions.assertNotNull(foo);
    Assertions.assertEquals(Foo.class.getSimpleName(), foo.ping());
    // BeanWithQualifier should be resolved
    Assertions.assertNotNull(bean);
    Assertions.assertEquals(BeanWithQualifier.class.getSimpleName(), bean.ping());
}
 
@Test
@DisplayName("Ensure the parameter Foo is automatically included in container and that Bar comes from the CustomExtension")
void test(@Default Foo foo, Bar bar) {
  assertNotNull(bar);
  assertEquals(bar.ping(), CustomExtension.class.getSimpleName());
  assertNotNull(foo);
  assertEquals(foo.getBar(), "baz");
}
 
源代码24 项目: weld-junit   文件: MockBean.java
/**
 *
 * @return a new {@link MockBean} instance
 * @throws IllegalStateException If a create callback is not set
 */
public MockBean<T> build() {
    if (createCallback == null) {
        throw new IllegalStateException("Create callback must not be null");
    }
    Set<Annotation> normalizedQualfiers = new HashSet<Annotation>(qualifiers);
    normalizedQualfiers.remove(Any.Literal.INSTANCE);
    normalizedQualfiers.remove(Default.Literal.INSTANCE);
    if (normalizedQualfiers.isEmpty()) {
        normalizedQualfiers.add(Default.Literal.INSTANCE);
        normalizedQualfiers.add(Any.Literal.INSTANCE);
    } else {
        ImmutableSet.Builder<Annotation> builder = ImmutableSet.builder();
        if (normalizedQualfiers.size() == 1
                && normalizedQualfiers.iterator().next().annotationType().equals(Named.class)) {
            builder.add(Default.Literal.INSTANCE);
        }
        builder.add(Any.Literal.INSTANCE);
        builder.addAll(qualifiers);
        normalizedQualfiers = builder.build();
    }
    // if given any priority, we will instead initialize MockBeanWithPriority
    if (priority != null) {
        return new MockBeanWithPriority<>(beanClass, stereotypes, alternative, selectForSyntheticBeanArchive, priority, name, normalizedQualfiers, types, scope, createCallback,
                destroyCallback);
    } else {
        return new MockBean<>(beanClass, stereotypes, alternative, selectForSyntheticBeanArchive, name, normalizedQualfiers, types, scope, createCallback,
                destroyCallback);
    }
}
 
源代码25 项目: ee8-sandbox   文件: CdiConfig.java
public void addABean(@Observes AfterBeanDiscovery event) {
    // get an instance of BeanConfigurator
    event.addBean()
            // set the desired data
            .types(Greeter.class)
            .scope(ApplicationScoped.class)
            .addQualifier(Default.Literal.INSTANCE)
            //.addQualifier(Custom.CustomLiteral.INSTANCE);
            //finally, add a callback to tell CDI how to instantiate this bean
            .produceWith(obj -> new Greeter());
}
 
源代码26 项目: thorntail   文件: TracerProducer.java
/**
 * Resolves tracer instance to be used. It is using {@link TracerResolver} service loader to find
 * the tracer. It tracer is not resolved it will use {@link io.opentracing.noop.NoopTracer}.
 *
 * @return tracer instance
 */
@Default
@Produces
@Singleton
public Tracer produceTracer() {
  // TCK casts to MockTracer so we cannot use GlobalTracer as a bean!
  Tracer tracer = TracerResolver.resolveTracer();
  if (tracer == null) {
    tracer = GlobalTracer.get();
  }
  logger.info(String.format("Registering %s to GlobalTracer and providing it as CDI bean.", tracer));
  GlobalTracer.register(tracer);
  return tracer;
}
 
源代码27 项目: thorntail   文件: ConfigViewProducingExtension.java
@SuppressWarnings("unused")
void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager beanManager) throws Exception {
    try (AutoCloseable handle = Performance.time("ConfigViewProducingExtension.afterBeanDiscovery")) {
        CommonBean<ConfigView> configViewBean = CommonBeanBuilder.newBuilder(ConfigView.class)
                .beanClass(ConfigViewProducingExtension.class)
                .scope(Singleton.class)
                .addQualifier(Default.Literal.INSTANCE)
                .createSupplier(() -> configView)
                .addType(ConfigView.class)
                .addType(Object.class).build();
        abd.addBean(configViewBean);
    }
}
 
源代码28 项目: thorntail   文件: ConfigurableFractionBean.java
@Override
public Set<Annotation> getQualifiers() {
    Set<Annotation> qualifiers = new HashSet<>();
    qualifiers.add(Default.Literal.INSTANCE);
    qualifiers.add(Any.Literal.INSTANCE);
    return qualifiers;
}
 
源代码29 项目: thorntail   文件: ConfigurableExtension.java
@SuppressWarnings({"unused"})
void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) throws Exception {
    try (AutoCloseable handle = Performance.time("ConfigurationExtension.afterBeanDiscovery")) {
        CommonBean<ConfigurableManager> configurableManagerBean = CommonBeanBuilder.newBuilder(ConfigurableManager.class)
                .beanClass(ConfigurableManager.class)
                .scope(Singleton.class)
                .addQualifier(Default.Literal.INSTANCE)
                .createSupplier(() -> configurableManager)
                .addType(ConfigurableManager.class)
                .addType(Object.class).build();
        abd.addBean(configurableManagerBean);
    }
}
 
源代码30 项目: weld-vertx   文件: VertxExtension.java
public void registerBeansAfterBeanDiscovery(@Observes AfterBeanDiscovery event) {
    if (vertx == null) {
        // Do no register beans - no Vertx instance available during bootstrap
        return;
    }
    // Allow to inject Vertx used to deploy the WeldVerticle
    event.addBean().types(getBeanTypes(vertx.getClass(), Vertx.class)).addQualifiers(Any.Literal.INSTANCE, Default.Literal.INSTANCE)
            .scope(ApplicationScoped.class).createWith(c -> vertx);
    // Allow to inject Context of the WeldVerticle
    event.addBean().types(getBeanTypes(context.getClass(), Context.class)).addQualifiers(Any.Literal.INSTANCE, Default.Literal.INSTANCE)
            .scope(ApplicationScoped.class).createWith(c -> context);
}