This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/aries-cdi.git
commit e2521faca77383b9ea466941a54e311340b96535 Author: Romain Manni-Bucau <rmannibu...@gmail.com> AuthorDate: Fri Oct 30 09:45:30 2020 +0100 [ARIES-2019] basic @Vetoed handling --- .../apache/aries/cdi/container/internal/container/Discovery.java | 2 +- .../aries/cdi/container/internal/model/BeansModelBuilder.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Discovery.java b/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Discovery.java index 709d46b..07f56b6 100644 --- a/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Discovery.java +++ b/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/container/Discovery.java @@ -126,7 +126,7 @@ public class Discovery { } public void discover() { - _beansModel.getOSGiBeans().stream().forEach(osgiBean -> { + _beansModel.getOSGiBeans().forEach(osgiBean -> { osgiBean.found(true); AnnotatedType<?> annotatedType = new AnnotatedTypeImpl<>(osgiBean.getBeanClass()); diff --git a/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java b/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java index 9e8b9c8..b08007f 100644 --- a/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java +++ b/cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/BeansModelBuilder.java @@ -30,6 +30,8 @@ import org.osgi.framework.Bundle; import org.osgi.framework.wiring.BundleWiring; import org.osgi.service.log.Logger; +import javax.enterprise.inject.Vetoed; + public class BeansModelBuilder { public BeansModelBuilder( @@ -80,6 +82,11 @@ public class BeansModelBuilder { for (String beanClassName : beanClassNames) { try { Class<?> clazz = _aggregateClassLoader.loadClass(beanClassName); + if (clazz.isAnnotationPresent(Vetoed.class) || + // should be recursive but at the end this is generally enough and faster + (clazz.getPackage() != null && clazz.getPackage().isAnnotationPresent(Vetoed.class))) { + continue; + } beans.put(beanClassName, new OSGiBean.Builder(_containerState.containerLogs(), clazz).build());