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());
 

Reply via email to