You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2017/11/22 13:12:42 UTC
[isis] branch dev/2.0.0/ISIS-1767-jee-7 updated: ISIS-1755 veto
ExceptionRecognizer on CDI scan
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch dev/2.0.0/ISIS-1767-jee-7
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/dev/2.0.0/ISIS-1767-jee-7 by this push:
new f42ac8b ISIS-1755 veto ExceptionRecognizer on CDI scan
f42ac8b is described below
commit f42ac8b9889ab72599ed8bfe81110d48e1f81c2b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Nov 22 14:12:22 2017 +0100
ISIS-1755 veto ExceptionRecognizer on CDI scan
---
.../webapp/jee/IsisCDIBeanScanInterceptor.java | 25 +++++++++++++---------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
index c75605c..06fe4bf 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
@@ -18,8 +18,9 @@
*/
package org.apache.isis.core.webapp.jee;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Predicate;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
@@ -28,6 +29,7 @@ import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
import org.apache.isis.applib.services.metrics.MetricsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,9 +60,10 @@ public final class IsisCDIBeanScanInterceptor implements Extension {
* Declaration of Beans that are managed by Isis and should be ignored by CDI.
* (in addition to those that have the @DomainService annotation)
*/
- private static final Set<String> tabu = new HashSet<>();
+ private static final List<Predicate<Class<?>>> tabu = new ArrayList<>();
{
- tabu.add(MetricsService.class.getName());
+ tabu.add(MetricsService.class::equals);
+ tabu.add(ExceptionRecognizer.class::isAssignableFrom);
}
void beforeBeanDiscovery(@Observes BeforeBeanDiscovery event) {
@@ -69,9 +72,10 @@ public final class IsisCDIBeanScanInterceptor implements Extension {
<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event) {
- final String className = event.getAnnotatedType().getJavaClass().getName();
+ final Class<?> clazz = event.getAnnotatedType().getJavaClass();
+ final String className = clazz.getName();
- if(isTabu(className, event)) {
+ if(isTabu(clazz, event)) {
log.debug("veto type: " + className);
event.veto();
} else {
@@ -85,12 +89,13 @@ public final class IsisCDIBeanScanInterceptor implements Extension {
// -- HELPER
- private boolean isTabu(String className, ProcessAnnotatedType<?> event) {
- if(tabu.contains(className))
- return true;
+ private boolean isTabu(Class<?> clazz, ProcessAnnotatedType<?> event) {
if(event.getAnnotatedType().isAnnotationPresent(DomainService.class))
return true;
-
+ for(Predicate<Class<?>> isTabu : tabu) {
+ if(isTabu.test(clazz))
+ return true;
+ }
return false;
}
--
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].