Java Examples for javax.enterprise.inject.Alternative
The following java examples will help you to understand the usage of javax.enterprise.inject.Alternative. These source code samples are taken from different open source projects.
Example 1
| Project: solder-master File: GenericBeanExtension.java View source code |
void createGenericBeans(@Observes AfterBeanDiscovery event, BeanManager beanManager) {
beanDiscoveryOver = true;
// For each generic configuration type, we iterate the generic configurations
for (Entry<GenericIdentifier, GenericConfigurationHolder> genericConfigurationEntry : genericConfigurationPoints.entrySet()) {
Class<? extends Annotation> producerScope = Dependent.class;
for (Annotation annotation : genericConfigurationEntry.getValue().getAnnotated().getAnnotations()) {
if (beanManager.isScope(annotation.annotationType())) {
producerScope = annotation.annotationType();
}
}
GenericConfigurationHolder genericConfigurationHolder = genericConfigurationEntry.getValue();
GenericIdentifier identifier = genericConfigurationEntry.getKey();
Class<? extends Annotation> genericConfigurationType = identifier.getAnnotationType();
if (!genericBeans.containsKey(genericConfigurationType)) {
throw new IllegalStateException("No generic bean definition exists for " + genericConfigurationType + ", but a generic producer does: " + genericConfigurationHolder.getAnnotated());
}
// Add a generic configuration bean for each generic configuration producer (allows us to inject the generic configuration annotation back into the generic bean)
event.addBean(createGenericConfigurationBean(beanManager, identifier));
// Register the GenericProduct bean
event.addBean(createGenericProductAnnotatedMemberBean(beanManager, identifier));
boolean alternative = genericConfigurationHolder.getAnnotated().isAnnotationPresent(Alternative.class);
Class<?> javaClass = genericConfigurationHolder.getJavaClass();
if (genericBeanProducerMethods.containsKey(genericConfigurationType)) {
for (ProducerMethodHolder<?, ?> holder : genericBeanProducerMethods.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getProducerMethod().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerMethod(holder, identifier, beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanProducerFields.containsKey(genericConfigurationType)) {
for (FieldHolder<?, ?> holder : genericBeanProducerFields.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getField().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerField(holder.getBean(), identifier, holder.getField(), beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanObserverMethods.containsKey(genericConfigurationType)) {
for (ObserverMethodHolder<?, ?> holder : genericBeanObserverMethods.get(genericConfigurationType)) {
event.addObserverMethod(createGenericObserverMethod(holder.getObserverMethod(), identifier, holder.getMethod(), null, beanManager));
}
}
if (unwrapsMethods.containsKey(genericConfigurationType)) {
for (AnnotatedMethod<?> i : unwrapsMethods.get(genericConfigurationType)) {
Annotated annotated = genericConfigurationHolder.getAnnotated();
Set<Annotation> unwrapsQualifiers = Beans.getQualifiers(beanManager, i.getAnnotations(), annotated.getAnnotations());
if (unwrapsQualifiers.isEmpty()) {
unwrapsQualifiers.add(DefaultLiteral.INSTANCE);
}
Set<Annotation> beanQualifiers = Beans.getQualifiers(beanManager, i.getDeclaringType().getAnnotations(), annotated.getAnnotations());
beanQualifiers.remove(AnyLiteral.INSTANCE);
if (beanQualifiers.isEmpty()) {
beanQualifiers.add(DefaultLiteral.INSTANCE);
}
beanQualifiers.remove(genericBeanQualifier);
event.addBean(new UnwrapsProducerBean(i, unwrapsQualifiers, beanQualifiers, beanManager));
}
}
// For each generic bean that uses this genericConfigurationType, register a generic bean for this generic configuration
for (BeanHolder<?> genericBeanHolder : genericBeans.get(genericConfigurationType)) {
// Register the generic bean, this is the underlying definition, with the synthetic qualifier
Class<? extends Annotation> scopeOverride = null;
if (genericBeanHolder.getType().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
Bean<?> genericBean = createGenericBean(genericBeanHolder, identifier, beanManager, scopeOverride, alternative, javaClass);
event.addBean(genericBean);
}
}
}Example 2
| Project: guvnor-master File: TestIdentityFactory.java View source code |
@Produces
@Alternative
public AuthenticationService authenticationService() {
return new AuthenticationService() {
boolean isLoggedIn = false;
User user;
@Override
public User login(String username, String password) {
isLoggedIn = true;
user = new UserImpl(username);
return user;
}
@Override
public boolean isLoggedIn() {
return false;
}
@Override
public void logout() {
user = null;
isLoggedIn = false;
}
@Override
public User getUser() {
return user;
}
};
}Example 3
| Project: autobind-master File: AnnotationCollector.java View source code |
@SuppressWarnings("unchecked")
@Override
public void visitEnd() {
if (!_ignore && _annotations.size() > 0 && !_annotations.containsKey("javax.enterprise.inject.Alternative")) {
for (ScannerFeature listener : _features) {
listener.found((Class<Object>) _class, _annotations);
}
}
_name = null;
_class = null;
_ignore = false;
_annotations.clear();
}Example 4
| Project: camel-master File: CamelCdiTestExtension.java View source code |
/**
* Activates the alternatives declared with {@code @Beans} globally for the
* application.
* <p/>
* For every types and every methods of every types declared with
* {@link Beans#alternatives()}, the {@code Priority} annotation is added
* so that the corresponding alternatives are selected globally for the
* entire application.
*
* @see Beans
*/
private <T> void alternatives(@Observes @WithAnnotations(Alternative.class) ProcessAnnotatedType<T> pat) {
AnnotatedType<T> type = pat.getAnnotatedType();
if (!Arrays.asList(beans.alternatives()).contains(type.getJavaClass())) {
// Only select globally the alternatives that are declared with @Beans
return;
}
Set<AnnotatedMethod<? super T>> methods = new HashSet<>();
for (AnnotatedMethod<? super T> method : type.getMethods()) {
if (method.isAnnotationPresent(Alternative.class) && !method.isAnnotationPresent(Priority.class)) {
methods.add(new AnnotatedMethodDecorator<>(method, PriorityLiteral.of(APPLICATION)));
}
}
if (type.isAnnotationPresent(Alternative.class) && !type.isAnnotationPresent(Priority.class)) {
pat.setAnnotatedType(new AnnotatedTypeDecorator<>(type, PriorityLiteral.of(APPLICATION), methods));
} else if (!methods.isEmpty()) {
pat.setAnnotatedType(new AnnotatedTypeDecorator<>(type, methods));
}
}Example 5
| Project: deltaspike-master File: ExcludeExtension.java View source code |
private void activateGlobalAlternatives(ProcessAnnotatedType processAnnotatedType, BeanManager beanManager) {
Class<Object> currentBean = processAnnotatedType.getAnnotatedType().getJavaClass();
if (currentBean.isInterface()) {
return;
}
Set<Class> beanBaseTypes = resolveBeanTypes(currentBean);
boolean isAlternativeBeanImplementation = currentBean.isAnnotationPresent(Alternative.class);
List<Annotation> qualifiersOfCurrentBean = resolveQualifiers(processAnnotatedType.getAnnotatedType().getAnnotations(), beanManager);
String configuredBeanName;
List<Annotation> qualifiersOfConfiguredBean;
Class<Object> alternativeBeanClass;
Set<Annotation> alternativeBeanAnnotations;
for (Class currentType : beanBaseTypes) {
alternativeBeanAnnotations = new HashSet<Annotation>();
configuredBeanName = globalAlternatives.get(currentType.getName());
if (configuredBeanName != null && configuredBeanName.length() > 0) {
alternativeBeanClass = ClassUtils.tryToLoadClassForName(configuredBeanName);
if (alternativeBeanClass == null) {
throw new IllegalStateException("Can't find class " + configuredBeanName + " which is configured" + " for " + currentType.getName());
}
//check that the configured class is an alternative
if (!alternativeBeanClass.isAnnotationPresent(Alternative.class)) {
//we have to continue because other classes can be configured as well
continue;
}
alternativeBeanAnnotations.addAll(Arrays.asList(alternativeBeanClass.getAnnotations()));
qualifiersOfConfiguredBean = resolveQualifiers(alternativeBeanAnnotations, beanManager);
} else {
continue;
}
if (!doQualifiersMatch(qualifiersOfCurrentBean, qualifiersOfConfiguredBean)) {
continue;
}
//current bean is annotated with @Alternative and of the same type as the configured bean
if (isAlternativeBeanImplementation && alternativeBeanClass.equals(currentBean)) {
LOG.info(processAnnotatedType.getAnnotatedType().getJavaClass().getName() + " is configured as global-alternative");
//cdi 1.0
if (priorityAnnotationInstance == null) {
AnnotatedTypeBuilder<Object> annotatedTypeBuilder = new AnnotatedTypeBuilder<Object>().readFromType(processAnnotatedType.getAnnotatedType());
annotatedTypeBuilder.removeFromClass(Alternative.class);
processAnnotatedType.setAnnotatedType(annotatedTypeBuilder.create());
return;
} else //cdi 1.1+
{
AnnotatedTypeBuilder<Object> annotatedTypeBuilder = new AnnotatedTypeBuilder<Object>().readFromType(processAnnotatedType.getAnnotatedType());
annotatedTypeBuilder.addToClass(priorityAnnotationInstance);
processAnnotatedType.setAnnotatedType(annotatedTypeBuilder.create());
return;
}
} else //current bean is the original implementation
{
//cdi 1.0 (no change needed with cdi 1.1+)
if (priorityAnnotationInstance == null) {
//veto this original implementation because the alternative will be added
processAnnotatedType.veto();
return;
}
}
}
}Example 6
| Project: forge-beanstest-master File: MockitoFacet.java View source code |
private void createStereotype(String beanstestPackage, String stereotype) throws FileNotFoundException {
// @Stereotype
// @Alternative
// @Target(ElementType.METHOD)
// @Retention(RetentionPolicy.RUNTIME)
// public @interface BeanstestAlternative {
// }
//TODO how do i create a nested annotation with Forge ?
JavaResource stereotypeResource = getStereotype(stereotype);
if (!stereotypeResource.exists()) {
JavaAnnotation javaAnnotation = JavaParser.create(JavaAnnotation.class);
javaAnnotation.setName(stereotype);
javaAnnotation.setPackage(beanstestPackage);
javaAnnotation.addAnnotation(Stereotype.class);
javaAnnotation.addAnnotation(Alternative.class);
javaAnnotation.addAnnotation(Target.class).setEnumValue(ElementType.METHOD);
javaAnnotation.addAnnotation(Retention.class).setEnumValue(RetentionPolicy.RUNTIME);
stereotypeResource.setContents(javaAnnotation);
BeansDescriptor beansDescriptor = project.getFacet(CDITestFacet.class).getConfig();
if (!beansDescriptor.getAlternativeStereotypes().contains(javaAnnotation.getCanonicalName())) {
beansDescriptor.alternativeStereotype(javaAnnotation.getCanonicalName());
project.getFacet(CDITestFacet.class).saveConfig(beansDescriptor);
}
}
}Example 7
| Project: guice-automatic-injection-master File: ReflectionsScanner.java View source code |
@SuppressWarnings("unchecked")
@Override
public void scan(final Object cls) {
ClassFile classFile = (ClassFile) cls;
AnnotationsAttribute annotationsAttribute = (AnnotationsAttribute) classFile.getAttribute(AnnotationsAttribute.visibleTag);
if (annotationsAttribute == null) {
return;
}
Class<Object> objectClass;
try {
objectClass = (Class<Object>) Class.forName(classFile.getName(), true, Thread.currentThread().getContextClassLoader());
} catch (ClassNotFoundException e) {
ReflectionsScanner.this._logger.log(Level.WARNING, "Failure while trying to load the Class \"" + classFile.getName() + "\" from Classpath.", e);
return;
}
Map<String, java.lang.annotation.Annotation> map = new HashMap<String, java.lang.annotation.Annotation>();
for (Annotation annotation : annotationsAttribute.getAnnotations()) {
Class<java.lang.annotation.Annotation> annotationClass;
try {
annotationClass = (Class<java.lang.annotation.Annotation>) Class.forName(annotation.getTypeName());
map.put(annotationClass.getName(), objectClass.getAnnotation(annotationClass));
} catch (ClassNotFoundException e) {
ReflectionsScanner.this._logger.log(Level.WARNING, "Failure while trying to load the Annotations from Classpath.", e);
continue;
}
}
if (map.containsKey("javax.enterprise.inject.Alternative")) {
return;
}
for (ScannerFeature feature : features) {
feature.found(objectClass, map);
}
}Example 8
| Project: jbosstools-integration-tests-master File: SeamConfigEEOpenOnTest.java View source code |
@Test
public void testAlternativeOpenOn() {
/* open on bean class */
new DefaultStyledText().selectText("s:Alternative");
KeyboardFactory.getKeyboard().invokeKeyCombination(SWT.F3);
new DefaultEditor("Alternative.class");
/* test opened object */
assertExpectedOpenedClass("javax.enterprise.inject.Alternative");
}Example 9
| Project: shrinkwrap-sandbox-master File: BeansDef.java View source code |
public BeansDef alternativeClasses(Class<?>... classes) {
for (Class<?> c : classes) {
// FIXME this validation needs to be thorough
if (!c.isAnnotationPresent(Alternative.class)) {
throw new IllegalArgumentException("Class is not an alternative");
}
beans.getAlternatives().getClasses().add(c.getName());
}
return this;
}Example 10
| Project: blaze-utils-master File: ExcludeIfExistsExtension.java View source code |
private BeanBuilder<Object> readFromMember(BeanBuilder<Object> beanBuilder, AnnotatedMember<Object> annotatedMember, Bean<Object> bean, boolean isOwbBug) {
// Init the qualifiers set
beanBuilder.qualifiers();
Set<Class<? extends Annotation>> stereotypes = new HashSet<Class<? extends Annotation>>();
for (Annotation annotation : annotatedMember.getAnnotations()) {
if (beanBuilder.getBeanManager().isQualifier(annotation.annotationType())) {
beanBuilder.addQualifier(annotation);
} else if (beanBuilder.getBeanManager().isScope(annotation.annotationType())) {
beanBuilder.scope(annotation.annotationType());
} else if (beanBuilder.getBeanManager().isStereotype(annotation.annotationType())) {
stereotypes.add(annotation.annotationType());
}
if (annotation instanceof Named) {
beanBuilder.name(((Named) annotation).value());
}
if (annotation instanceof Alternative) {
beanBuilder.alternative(true);
}
}
beanBuilder.stereotypes(stereotypes);
if (beanBuilder.getScope() == null) {
beanBuilder.scope(Dependent.class);
}
boolean isDependent = beanBuilder.getScope() == Dependent.class;
Class<?> declaringClass = annotatedMember.getDeclaringType().getJavaClass();
if (annotatedMember instanceof AnnotatedField<?>) {
AnnotatedField<Object> annotatedField = (AnnotatedField<Object>) annotatedMember;
Field field = annotatedField.getJavaMember();
Class<?> rawType = ReflectionUtils.getResolvedFieldType(declaringClass, field);
beanBuilder.beanClass(rawType);
beanBuilder.beanLifecycle(new ProducerFieldCreationalContext(bean, annotatedField, beanBuilder.getBeanManager()));
} else {
AnnotatedMethod<Object> annotatedMethod = (AnnotatedMethod<Object>) annotatedMember;
Method method = annotatedMethod.getJavaMember();
Class<?> rawType = ReflectionUtils.getResolvedMethodReturnType(declaringClass, method);
beanBuilder.beanClass(rawType);
ProducerMethodCreationalContext ctx = new ProducerMethodCreationalContext(bean, annotatedMethod, beanBuilder.getBeanManager(), isDependent && isOwbBug);
beanBuilder.beanLifecycle(ctx);
beanBuilder.injectionPoints(ctx.getInjectionPoints());
}
beanBuilder.types(annotatedMember.getTypeClosure());
if (beanBuilder.getQualifiers().isEmpty()) {
beanBuilder.addQualifier(new DefaultLiteral());
}
beanBuilder.addQualifier(new AnyLiteral());
return beanBuilder;
}Example 11
| Project: quercus-master File: InjectManager.java View source code |
public int getDeploymentPriority(Bean<?> bean) {
int priority = DEFAULT_PRIORITY;
Set<Class<? extends Annotation>> stereotypes = bean.getStereotypes();
if (bean.isAlternative()) {
priority = -1;
Integer value = _deploymentMap.get(bean.getBeanClass());
if (value != null)
priority = value;
}
if (stereotypes != null) {
for (Class<? extends Annotation> annType : stereotypes) {
Integer value = _deploymentMap.get(annType);
if (value != null) {
if (priority < value)
priority = value;
} else if (annType.isAnnotationPresent(Alternative.class) && priority == DEFAULT_PRIORITY)
priority = -1;
}
}
if (priority < 0)
return priority;
else if (bean instanceof AbstractBean<?>) {
// ioc/0213
AbstractBean<?> absBean = (AbstractBean<?>) bean;
if (absBean.getBeanManager() == this)
priority += 1000000;
} else
priority += 1000000;
return priority;
}Example 12
| Project: resin-master File: InjectManager.java View source code |
public int getDeploymentPriority(Bean<?> bean) {
int priority = DEFAULT_PRIORITY;
if (bean.isAlternative()) {
priority = -1;
Integer value = getPriority(bean.getBeanClass());
if (value != null)
priority = value;
}
Set<Class<? extends Annotation>> stereotypes = bean.getStereotypes();
if (stereotypes != null) {
for (Class<? extends Annotation> annType : stereotypes) {
Integer value = _deploymentMap.get(annType);
if (value != null) {
if (priority < value)
priority = value;
} else if (annType.isAnnotationPresent(Alternative.class) && priority == DEFAULT_PRIORITY)
priority = -1;
}
}
if (priority < 0)
return priority;
else if (bean instanceof AbstractBean<?>) {
// ioc/0213
AbstractBean<?> absBean = (AbstractBean<?>) bean;
if (absBean.getBeanManager() == this)
priority += 1000000;
} else
priority += 1000000;
return priority;
}Example 13
| Project: deltaspike-solder-master File: GenericBeanExtension.java View source code |
void createGenericBeans(@Observes AfterBeanDiscovery event, BeanManager beanManager) {
beanDiscoveryOver = true;
// For each generic configuration type, we iterate the generic configurations
for (Entry<GenericIdentifier, GenericConfigurationHolder> genericConfigurationEntry : genericConfigurationPoints.entrySet()) {
Class<? extends Annotation> producerScope = Dependent.class;
for (Annotation annotation : genericConfigurationEntry.getValue().getAnnotated().getAnnotations()) {
if (beanManager.isScope(annotation.annotationType())) {
producerScope = annotation.annotationType();
}
}
GenericConfigurationHolder genericConfigurationHolder = genericConfigurationEntry.getValue();
GenericIdentifier identifier = genericConfigurationEntry.getKey();
Class<? extends Annotation> genericConfigurationType = identifier.getAnnotationType();
if (!genericBeans.containsKey(genericConfigurationType)) {
throw new IllegalStateException("No generic bean definition exists for " + genericConfigurationType + ", but a generic producer does: " + genericConfigurationHolder.getAnnotated());
}
// Add a generic configuration bean for each generic configuration producer (allows us to inject the generic configuration annotation back into the generic bean)
event.addBean(createGenericConfigurationBean(beanManager, identifier));
// Register the GenericProduct bean
event.addBean(createGenericProductAnnotatedMemberBean(beanManager, identifier));
boolean alternative = genericConfigurationHolder.getAnnotated().isAnnotationPresent(Alternative.class);
Class<?> javaClass = genericConfigurationHolder.getJavaClass();
if (genericBeanProducerMethods.containsKey(genericConfigurationType)) {
for (ProducerMethodHolder<?, ?> holder : genericBeanProducerMethods.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getProducerMethod().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerMethod(holder, identifier, beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanProducerFields.containsKey(genericConfigurationType)) {
for (FieldHolder<?, ?> holder : genericBeanProducerFields.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getField().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerField(holder.getBean(), identifier, holder.getField(), beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanObserverMethods.containsKey(genericConfigurationType)) {
for (ObserverMethodHolder<?, ?> holder : genericBeanObserverMethods.get(genericConfigurationType)) {
event.addObserverMethod(createGenericObserverMethod(holder.getObserverMethod(), identifier, holder.getMethod(), null, beanManager));
}
}
if (unwrapsMethods.containsKey(genericConfigurationType)) {
for (AnnotatedMethod<?> i : unwrapsMethods.get(genericConfigurationType)) {
Annotated annotated = genericConfigurationHolder.getAnnotated();
Set<Annotation> unwrapsQualifiers = Beans.getQualifiers(beanManager, i.getAnnotations(), annotated.getAnnotations());
if (unwrapsQualifiers.isEmpty()) {
unwrapsQualifiers.add(DefaultLiteral.INSTANCE);
}
Set<Annotation> beanQualifiers = Beans.getQualifiers(beanManager, i.getDeclaringType().getAnnotations(), annotated.getAnnotations());
beanQualifiers.remove(AnyLiteral.INSTANCE);
if (beanQualifiers.isEmpty()) {
beanQualifiers.add(DefaultLiteral.INSTANCE);
}
beanQualifiers.remove(genericBeanQualifier);
event.addBean(new UnwrapsProducerBean(i, unwrapsQualifiers, beanQualifiers, beanManager));
}
}
// For each generic bean that uses this genericConfigurationType, register a generic bean for this generic configuration
for (BeanHolder<?> genericBeanHolder : genericBeans.get(genericConfigurationType)) {
// Register the generic bean, this is the underlying definition, with the synthetic qualifier
Class<? extends Annotation> scopeOverride = null;
if (genericBeanHolder.getType().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
Bean<?> genericBean = createGenericBean(genericBeanHolder, identifier, beanManager, scopeOverride, alternative, javaClass);
event.addBean(genericBean);
}
}
}Example 14
| Project: solder-old-master File: GenericBeanExtension.java View source code |
void createGenericBeans(@Observes AfterBeanDiscovery event, BeanManager beanManager) {
// For each generic configuration type, we iterate the generic configurations
for (Entry<Annotation, ProducerHolder<?, ?>> genericConfigurationEntry : genericProducers.entrySet()) {
Class<? extends Annotation> producerScope = Dependent.class;
for (Annotation annotation : genericConfigurationEntry.getValue().getMember().getAnnotations()) {
if (beanManager.isScope(annotation.annotationType())) {
producerScope = annotation.annotationType();
}
}
ProducerHolder<?, ?> producerHolder = genericConfigurationEntry.getValue();
Annotation genericConfiguration = genericConfigurationEntry.getKey();
Set<Annotation> qualifiers = new HashSet<Annotation>();
qualifiers.addAll(Beans.getQualifiers(beanManager, genericConfigurationEntry.getValue().getMember().getAnnotations()));
if (qualifiers.isEmpty()) {
qualifiers.add(DefaultLiteral.INSTANCE);
}
Class<? extends Annotation> genericConfigurationType = genericConfiguration.annotationType();
if (!genericBeans.containsKey(genericConfigurationType)) {
throw new IllegalStateException("No generic bean definition exists for " + genericConfigurationType + ", but a generic producer does: " + producerHolder.getMember());
}
// Add a generic configuration bean for each generic configuration producer (allows us to inject the generic configuration annotation back into the generic bean)
event.addBean(createGenericConfigurationBean(beanManager, genericConfiguration, qualifiers));
// Register the GenericProduct bean
event.addBean(createGenericProductAnnotatedMemberBean(beanManager, genericConfiguration, qualifiers));
boolean alternative = producerHolder.getMember().isAnnotationPresent(Alternative.class);
Class<?> javaClass = producerHolder.getMember().getDeclaringType().getJavaClass();
if (genericBeanProducerMethods.containsKey(genericConfigurationType)) {
for (ProducerMethodHolder<?, ?> holder : genericBeanProducerMethods.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getProducerMethod().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerMethod(holder, genericConfiguration, beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanProducerFields.containsKey(genericConfigurationType)) {
for (FieldHolder<?, ?> holder : genericBeanProducerFields.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getField().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerField(holder.getBean(), genericConfiguration, holder.getField(), beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanObserverMethods.containsKey(genericConfigurationType)) {
for (ObserverMethodHolder<?, ?> holder : genericBeanObserverMethods.get(genericConfigurationType)) {
event.addObserverMethod(createGenericObserverMethod(holder.getObserverMethod(), genericConfiguration, holder.getMethod(), null, beanManager));
}
}
if (unwrapsMethods.containsKey(genericConfigurationType)) {
for (AnnotatedMethod<?> i : unwrapsMethods.get(genericConfigurationType)) {
AnnotatedMember<?> member = producerHolder.getMember();
Set<Annotation> unwrapsQualifiers = Beans.getQualifiers(beanManager, i.getAnnotations(), member.getAnnotations());
if (unwrapsQualifiers.isEmpty()) {
unwrapsQualifiers.add(DefaultLiteral.INSTANCE);
}
Set<Annotation> beanQualifiers = Beans.getQualifiers(beanManager, i.getDeclaringType().getAnnotations(), member.getAnnotations());
beanQualifiers.remove(AnyLiteral.INSTANCE);
if (beanQualifiers.isEmpty()) {
beanQualifiers.add(DefaultLiteral.INSTANCE);
}
beanQualifiers.remove(genericBeanQualifier);
event.addBean(new UnwrapsProducerBean(i, unwrapsQualifiers, beanQualifiers, beanManager));
}
}
// For each generic bean that uses this genericConfigurationType, register a generic bean for this generic configuration
for (BeanHolder<?> genericBeanHolder : genericBeans.get(genericConfigurationType)) {
// Register the generic bean, this is the underlying definition, with the synthetic qualifier
Class<? extends Annotation> scopeOverride = null;
if (genericBeanHolder.getType().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
Bean<?> genericBean = createGenericBean(genericBeanHolder, genericConfiguration, beanManager, scopeOverride, alternative, javaClass);
event.addBean(genericBean);
}
}
}Example 15
| Project: errai-master File: IOCProcessor.java View source code |
private WiringElementType[] getWiringTypes(final MetaClass type, final Class<? extends Annotation> directScope) {
final List<WiringElementType> wiringTypes = new ArrayList<>();
wiringTypes.addAll(getWiringTypesForScopeAnnotation(directScope));
if (type.isAnnotationPresent(Alternative.class)) {
wiringTypes.add(WiringElementType.AlternativeBean);
}
if (isPublishableJsType(type)) {
wiringTypes.add(WiringElementType.JsType);
}
if (type.isAnnotationPresent(SharedSingleton.class)) {
wiringTypes.add(WiringElementType.SharedSingleton);
}
if (type.isAnnotationPresent(Specializes.class)) {
wiringTypes.add(WiringElementType.Specialization);
}
if (type.isAnnotationPresent(LoadAsync.class)) {
wiringTypes.add(WiringElementType.LoadAsync);
}
return wiringTypes.toArray(new WiringElementType[wiringTypes.size()]);
}Example 16
| Project: furnace-cdi-master File: BeanBuilder.java View source code |
/**
* <p>
* Read the {@link AnnotatedType}, creating a bean from the class and it's annotations.
* </p>
* <p/>
* <p>
* By default the bean lifecycle will wrap the result of calling
* {@link BeanManager#createInjectionTarget(AnnotatedType)}.
* </p>
* <p/>
* <p>
* {@link BeanBuilder} does <em>not</em> support reading members of the class to create producers or observer
* methods.
* </p>
*
* @param type the type to read
*/
public BeanBuilder<T> readFromType(AnnotatedType<T> type) {
this.beanClass = type.getJavaClass();
InjectionTarget<T> injectionTarget;
if (!type.getJavaClass().isInterface()) {
injectionTarget = beanManager.createInjectionTarget(type);
} else {
injectionTarget = new DummyInjectionTarget<>();
}
this.beanLifecycle = new DelegatingContextualLifecycle<>(injectionTarget);
this.injectionPoints = injectionTarget.getInjectionPoints();
this.qualifiers = new HashSet<>();
this.stereotypes = new HashSet<>();
this.types = new HashSet<>();
for (Annotation annotation : type.getAnnotations()) {
if (beanManager.isQualifier(annotation.annotationType())) {
this.qualifiers.add(annotation);
} else if (beanManager.isScope(annotation.annotationType())) {
this.scope = annotation.annotationType();
} else if (beanManager.isStereotype(annotation.annotationType())) {
this.stereotypes.add(annotation.annotationType());
}
if (annotation instanceof Named) {
this.name = ((Named) annotation).value();
}
if (annotation instanceof Alternative) {
this.alternative = true;
}
}
if (this.scope == null) {
this.scope = Dependent.class;
}
for (Class<?> c = type.getJavaClass(); c != Object.class && c != null; c = c.getSuperclass()) {
this.types.add(c);
}
for (Class<?> i : type.getJavaClass().getInterfaces()) {
this.types.add(i);
}
if (qualifiers.isEmpty()) {
qualifiers.add(DefaultLiteral.INSTANCE);
}
qualifiers.add(AnyLiteral.INSTANCE);
this.id = ImmutableBeanWrapper.class.getName() + ":" + Annotateds.createTypeId(type);
return this;
}Example 17
| Project: infinispan-master File: BeanBuilder.java View source code |
/**
* <p>
* Read the {@link AnnotatedType}, creating a bean from the class and it's
* annotations.
* </p>
* <p/>
* <p>
* By default the bean lifecycle will wrap the result of calling
* {@link BeanManager#createInjectionTarget(AnnotatedType)}.
* </p>
* <p/>
* <p>
* {@link BeanBuilder} does <em>not</em> support reading members of the class
* to create producers or observer methods.
* </p>
*
* @param type the type to read
*/
public BeanBuilder<T> readFromType(AnnotatedType<T> type) {
this.beanClass = type.getJavaClass();
InjectionTarget<T> injectionTarget;
if (!type.getJavaClass().isInterface()) {
injectionTarget = beanManager.createInjectionTarget(type);
} else {
injectionTarget = new DummyInjectionTarget<T>();
}
this.beanLifecycle = new DelegatingContextualLifecycle<T>(injectionTarget);
this.injectionPoints = injectionTarget.getInjectionPoints();
this.qualifiers = new HashSet<Annotation>();
this.stereotypes = new HashSet<Class<? extends Annotation>>();
for (Annotation annotation : type.getAnnotations()) {
if (beanManager.isQualifier(annotation.annotationType())) {
this.qualifiers.add(annotation);
} else if (beanManager.isScope(annotation.annotationType())) {
this.scope = annotation.annotationType();
} else if (beanManager.isStereotype(annotation.annotationType())) {
this.stereotypes.add(annotation.annotationType());
}
if (annotation instanceof Named) {
this.name = ((Named) annotation).value();
}
if (annotation instanceof Alternative) {
this.alternative = true;
}
}
if (this.scope == null) {
this.scope = Dependent.class;
}
for (Class<?> c = type.getJavaClass(); c != Object.class && c != null; c = c.getSuperclass()) {
this.types.add(c);
}
for (Class<?> i : type.getJavaClass().getInterfaces()) {
this.types.add(i);
}
if (qualifiers.isEmpty()) {
qualifiers.add(DefaultLiteral.INSTANCE);
}
qualifiers.add(AnyLiteral.INSTANCE);
this.id = ImmutableBean.class.getName() + ":" + Annotateds.createTypeId(type);
return this;
}Example 18
| Project: agorava-utils-master File: GenericBeanExtension.java View source code |
void createGenericBeans(@Observes AfterBeanDiscovery event, BeanManager beanManager) {
beanDiscoveryOver = true;
// For each generic configuration type, we iterate the generic configurations
for (Entry<GenericIdentifier, GenericConfigurationHolder> genericConfigurationEntry : genericConfigurationPoints.entrySet()) {
Class<? extends Annotation> producerScope = Dependent.class;
for (Annotation annotation : genericConfigurationEntry.getValue().getAnnotated().getAnnotations()) {
if (beanManager.isScope(annotation.annotationType())) {
producerScope = annotation.annotationType();
}
}
GenericConfigurationHolder genericConfigurationHolder = genericConfigurationEntry.getValue();
GenericIdentifier identifier = genericConfigurationEntry.getKey();
Class<? extends Annotation> genericConfigurationType = identifier.getAnnotationType();
if (!genericBeans.containsKey(genericConfigurationType)) {
throw new IllegalStateException("No generic bean definition exists for " + genericConfigurationType + ", but a generic producer does: " + genericConfigurationHolder.getAnnotated());
}
// Add a generic configuration bean for each generic configuration producer (allows us to inject the generic configuration annotation back into the generic bean)
event.addBean(createGenericConfigurationBean(beanManager, identifier));
// Register the GenericProduct bean
event.addBean(createGenericProductAnnotatedMemberBean(beanManager, identifier));
boolean alternative = genericConfigurationHolder.getAnnotated().isAnnotationPresent(Alternative.class);
Class<?> javaClass = genericConfigurationHolder.getJavaClass();
if (genericBeanProducerMethods.containsKey(genericConfigurationType)) {
for (ProducerMethodHolder<?, ?> holder : genericBeanProducerMethods.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getProducerMethod().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerMethod(holder, identifier, beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanProducerFields.containsKey(genericConfigurationType)) {
for (FieldHolder<?, ?> holder : genericBeanProducerFields.get(genericConfigurationType)) {
Class<? extends Annotation> scopeOverride = null;
if (holder.getField().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
event.addBean(createGenericProducerField(holder.getBean(), identifier, holder.getField(), beanManager, scopeOverride, alternative, javaClass));
}
}
if (genericBeanObserverMethods.containsKey(genericConfigurationType)) {
for (ObserverMethodHolder<?, ?> holder : genericBeanObserverMethods.get(genericConfigurationType)) {
event.addObserverMethod(createGenericObserverMethod(holder.getObserverMethod(), identifier, holder.getMethod(), null, beanManager));
}
}
if (unwrapsMethods.containsKey(genericConfigurationType)) {
for (AnnotatedMethod<?> i : unwrapsMethods.get(genericConfigurationType)) {
Annotated annotated = genericConfigurationHolder.getAnnotated();
Set<Annotation> unwrapsQualifiers = Beans.getQualifiers(beanManager, i.getAnnotations(), annotated.getAnnotations());
if (unwrapsQualifiers.isEmpty()) {
unwrapsQualifiers.add(DefaultLiteral.INSTANCE);
}
Set<Annotation> beanQualifiers = Beans.getQualifiers(beanManager, i.getDeclaringType().getAnnotations(), annotated.getAnnotations());
beanQualifiers.remove(AnyLiteral.INSTANCE);
if (beanQualifiers.isEmpty()) {
beanQualifiers.add(DefaultLiteral.INSTANCE);
}
beanQualifiers.remove(genericBeanQualifier);
event.addBean(new UnwrapsProducerBean(i, unwrapsQualifiers, beanQualifiers, beanManager));
}
}
// For each generic bean that uses this genericConfigurationType, register a generic bean for this generic configuration
for (BeanHolder<?> genericBeanHolder : genericBeans.get(genericConfigurationType)) {
// Register the generic bean, this is the underlying definition, with the synthetic qualifier
Class<? extends Annotation> scopeOverride = null;
if (genericBeanHolder.getType().isAnnotationPresent(ApplyScope.class)) {
scopeOverride = producerScope;
}
Bean<?> genericBean = createGenericBean(genericBeanHolder, identifier, beanManager, scopeOverride, alternative, javaClass);
event.addBean(genericBean);
}
}
}Example 19
| Project: core-master File: Validator.java View source code |
private boolean isAlternativeCandidate(Class<?> enabledClass, BeanManagerImpl beanManager) {
// <class> exists and is annotated with @Alternative or alternative stereotype
if (isAlternativeOrHasAlternativeStereotype(enabledClass, beanManager)) {
return true;
}
// Intentionally do not process the class hierarchy -
for (Method declaredMethod : AccessController.doPrivileged(new GetDeclaredMethodsAction(enabledClass))) {
if (declaredMethod.isAnnotationPresent(Produces.class) && isAlternativeOrHasAlternativeStereotype(declaredMethod, beanManager)) {
return true;
}
}
for (Field declaredField : AccessController.doPrivileged(new GetDeclaredFieldsAction(enabledClass))) {
if (declaredField.isAnnotationPresent(Produces.class) && isAlternativeOrHasAlternativeStereotype(declaredField, beanManager)) {
return true;
}
}
return false;
}Example 20
| Project: fsw-demo-master File: AlternativeLogger.java View source code |
@Override
public void logMessage(String message) {
System.out.println("Alternative: " + message);
}Example 21
| Project: javaee7-samples-master File: ProducerMethodGreeting.java View source code |
@Produces
@Alternative
public Greeting getGreeting() {
return new SimpleGreeting();
}Example 22
| Project: JavaIncrementalParser-master File: ProducerMethodGreeting.java View source code |
@Produces
@Alternative
public Greeting getGreeting() {
return new SimpleGreeting();
}Example 23
| Project: cdi-tck-master File: BarProducer.java View source code |
@Alternative
@Produces
@Tame
public Bar produceTameBar() {
return new Bar();
}Example 24
| Project: compatibility-master File: BarAlternative.java View source code |
@Override
public String ping() {
return super.ping() + "Alternative";
}Example 25
| Project: kie-wb-common-master File: TestAppSetup.java View source code |
@Produces
@Alternative
public M2RepoService m2RepoService() {
return mock(M2RepoService.class);
}Example 26
| Project: jbosstools-javaee-master File: CatProducer.java View source code |
@Produces
@Tame
@Alternative
public Cat produce() {
return cat;
}Example 27
| Project: glassfish-master File: TestAlternativeBeanInWebInfLib.java View source code |
@Override
public String testInjection() {
ALTERNATIVE_BEAN_HAS_BEEN_CALLED = true;
System.out.println("*************** testinjection in alternative bean in web-inf/lib called");
return "Alternative";
}Example 28
| Project: cdi-master File: AnnotationLiteralTest.java View source code |
@SuppressWarnings("serial")
@Test
public void testAlternativeLiteral() {
assertEquals(new AnnotationLiteral<Alternative>() {
}, Alternative.Literal.INSTANCE);
}Example 29
| Project: spring-data-redis-master File: CdiBean.java View source code |
/*
* (non-Javadoc)
* @see javax.enterprise.inject.spi.Bean#isAlternative()
*/
public boolean isAlternative() {
return beanClass.isAnnotationPresent(Alternative.class);
}Example 30
| Project: cdi-unit-master File: WeldTestUrlDeployment.java View source code |
private boolean isAlternativeStereotype(Class<?> c) {
return c.isAnnotationPresent(Stereotype.class) && c.isAnnotationPresent(Alternative.class);
}Example 31
| Project: spring-data-commons-master File: CdiRepositoryBean.java View source code |
/*
* (non-Javadoc)
* @see javax.enterprise.inject.spi.Bean#isAlternative()
*/
public boolean isAlternative() {
return repositoryType.isAnnotationPresent(Alternative.class);
}