use of org.apache.deltaspike.testcontrol.spi.mock.MockFilter in project deltaspike by apache.
the class MockExtension method onProcessInjectionTarget.
public <X> void onProcessInjectionTarget(@Observes ProcessInjectionTarget<X> processInjectionTarget, BeanManager beanManager) {
if (!isActivated) {
return;
}
for (MockFilter mockFilter : mockFilters) {
if (!mockFilter.isMockedImplementationSupported(beanManager, processInjectionTarget.getAnnotatedType())) {
return;
}
}
List<Annotation> qualifiers = new ArrayList<Annotation>();
for (Annotation annotation : processInjectionTarget.getAnnotatedType().getAnnotations()) {
if (beanManager.isQualifier(annotation.annotationType())) {
qualifiers.add(annotation);
}
}
Typed typed = processInjectionTarget.getAnnotatedType().getAnnotation(Typed.class);
List<Type> foundTypes = new ArrayList<Type>();
if (typed != null) {
Collections.addAll(foundTypes, typed.value());
} else {
foundTypes.addAll(extractTypes(processInjectionTarget.getAnnotatedType().getJavaClass()));
}
if (foundTypes.isEmpty()) {
return;
}
final InjectionTarget<X> originalInjectionTarget = processInjectionTarget.getInjectionTarget();
processInjectionTarget.setInjectionTarget(new MockAwareInjectionTargetWrapper<X>(beanManager, originalInjectionTarget, foundTypes, qualifiers));
}
use of org.apache.deltaspike.testcontrol.spi.mock.MockFilter in project deltaspike by apache.
the class MockExtension method onProcessProducer.
public <X, T> void onProcessProducer(@Observes ProcessProducer<X, T> processProducer, BeanManager beanManager) {
if (!isActivated) {
return;
}
for (MockFilter mockFilter : mockFilters) {
if (!mockFilter.isMockedImplementationSupported(beanManager, processProducer.getAnnotatedMember())) {
return;
}
}
final Producer<T> originalProducer = processProducer.getProducer();
AnnotatedMember<X> annotatedMember = processProducer.getAnnotatedMember();
List<Annotation> qualifiers = new ArrayList<Annotation>();
for (Annotation annotation : annotatedMember.getAnnotations()) {
if (beanManager.isQualifier(annotation.annotationType())) {
qualifiers.add(annotation);
}
}
Typed typed = annotatedMember.getAnnotation(Typed.class);
List<Type> foundTypes = new ArrayList<Type>();
if (typed != null) {
Collections.addAll(foundTypes, typed.value());
} else if (annotatedMember.getBaseType() instanceof Class) {
foundTypes.addAll(extractTypes((Class) annotatedMember.getBaseType()));
}
if (foundTypes.isEmpty()) {
return;
}
processProducer.setProducer(new MockAwareProducerWrapper<T>(beanManager, originalProducer, foundTypes, qualifiers));
}
Aggregations