This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git


The following commit(s) were added to refs/heads/master by this push:
     new a2097a40 DELTASPPIKE-1431 allow disabling InvocationResultLogger
a2097a40 is described below

commit a2097a4070abfb6d782a4be3fdc4fc667d6a5f47
Author: Mark Struberg <[email protected]>
AuthorDate: Fri Apr 8 17:07:18 2022 +0200

    DELTASPPIKE-1431 allow disabling InvocationResultLogger
    
    one can now set
    deltaspike.invocationresultlogger.enabled=false
    to disable the built in InvocationResultLogger
---
 .../deltaspike/core/api/config/base/CoreBaseConfig.java    |  4 ++++
 .../core/impl/monitoring/InvocationResultLogger.java       |  6 ++++++
 .../test/core/api/exclude/ExcludeWarFileTest.java          |  5 +++--
 .../core/impl/activation/ClassDeactivationEarFileTest.java | 10 +++++++++-
 .../deltaspike/test/core/impl/interdyn/InterDynTest.java   | 12 +++++++++++-
 .../test/core/impl/interdyn/SomeTestService.java           | 14 ++++++++++++++
 .../test/resources/META-INF/apache-deltaspike.properties   |  6 ++++++
 7 files changed, 53 insertions(+), 4 deletions(-)

diff --git 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
index 313bb9b8..8392e8a3 100644
--- 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
+++ 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
@@ -145,5 +145,9 @@ public interface CoreBaseConfig extends DeltaSpikeBaseConfig
                         .withCurrentProjectStage(true)
                         .withDefault(Boolean.FALSE);
 
+        /**
+         * Set this configuration to 'false' (case sensitive string) to 
disable the built-in InvocationResultLogger
+         */
+        String CONFIG_INVOCATIONRESULTLOGGER_ENABLED = 
"deltaspike.invocationresultlogger.enabled";
     }
 }
diff --git 
a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/monitoring/InvocationResultLogger.java
 
b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/monitoring/InvocationResultLogger.java
index 52639e21..de345b21 100644
--- 
a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/monitoring/InvocationResultLogger.java
+++ 
b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/monitoring/InvocationResultLogger.java
@@ -18,6 +18,8 @@
  */
 package org.apache.deltaspike.core.impl.monitoring;
 
+import org.apache.deltaspike.core.api.config.base.CoreBaseConfig;
+import org.apache.deltaspike.core.api.exclude.Exclude;
 import org.apache.deltaspike.core.api.monitoring.MonitorResultEvent;
 
 import javax.annotation.PostConstruct;
@@ -36,8 +38,12 @@ import java.util.logging.Logger;
  * and log them accordingly
  */
 @ApplicationScoped
+@Exclude(onExpression = InvocationResultLogger.DISABLED_EXPRESSION)
 public class InvocationResultLogger
 {
+
+    static final String DISABLED_EXPRESSION = 
CoreBaseConfig.InterDynCustomization.CONFIG_INVOCATIONRESULTLOGGER_ENABLED + 
"==false";
+
     private static final Logger logger = 
Logger.getLogger(InvocationResultLogger.class.getName());
 
     private static final int DEFAULT_MAX_LOG_LINES = 8;
diff --git 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
index 10853220..233c9f8f 100644
--- 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
+++ 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
@@ -75,8 +75,9 @@ public class ExcludeWarFileTest extends ExcludeTest
     {
         byte[] configContent = 
Files.readAllBytes(FileUtils.getFileForURL(ExcludeWarFileTest.class.getClassLoader()
                 
.getResource("META-INF/apache-deltaspike.properties").toString()).toPath());
-        return new String(configContent, StandardCharsets.UTF_8) +
-            "\norg.apache.deltaspike.ProjectStage = Production";
+        return (new String(configContent, StandardCharsets.UTF_8) +
+            "\norg.apache.deltaspike.ProjectStage = Production")
+                .replace("deltaspike.interdyn.enabled=true", 
"deltaspike.interdyn.enabled=false");
     }
 
     @AfterClass
diff --git 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/activation/ClassDeactivationEarFileTest.java
 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/activation/ClassDeactivationEarFileTest.java
index 3d17f933..2a5c1eb3 100644
--- 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/activation/ClassDeactivationEarFileTest.java
+++ 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/activation/ClassDeactivationEarFileTest.java
@@ -22,6 +22,7 @@ import 
org.apache.deltaspike.test.category.EnterpriseArchiveProfileCategory;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -30,6 +31,12 @@ import org.junit.runner.RunWith;
 @Category(EnterpriseArchiveProfileCategory.class)
 public class ClassDeactivationEarFileTest extends ClassDeactivationTest
 {
+    // fixes Wildfly9 CNFE
+    private final static String CONFIG =
+            "# InterDynTest\n" +
+            "deltaspike_ordinal=110\n" +
+            "deltaspike.interdyn.enabled=false\n";
+
     @Deployment
     public static EnterpriseArchive deployEar()
     {
@@ -38,6 +45,7 @@ public class ClassDeactivationEarFileTest extends 
ClassDeactivationTest
         String archiveName = simpleName.substring(0, 1).toLowerCase() + 
simpleName.substring(1);
 
         return ShrinkWrap.create(EnterpriseArchive.class, archiveName + ".ear")
-                .addAsModule(ClassDeactivationWarFileTest.deploy());
+                .addAsModule(ClassDeactivationWarFileTest.deploy()
+                                .addAsManifestResource(new 
StringAsset(CONFIG), "apache-deltaspike.properties"));
     }
 }
diff --git 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/InterDynTest.java
 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/InterDynTest.java
index bc100b8c..1980da43 100644
--- 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/InterDynTest.java
+++ 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/InterDynTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.deltaspike.test.core.impl.interdyn;
 
+import org.apache.deltaspike.core.impl.monitoring.InvocationMonitorInterceptor;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
@@ -33,18 +34,27 @@ import javax.inject.Inject;
 
 @RunWith(Arquillian.class)
 public class InterDynTest {
+    /**
+     * We need to configure this in META-INF/apache-deltaspike.properties in 
the test classpath
+     * for in-process Arquillian containers like OWB and Weld,
+     * and additionally via @Deployment for container based Arquillians
+     */
     private final static String CONFIG =
             "# InterDynTest\n" +
             "deltaspike.interdyn.enabled=true\n" +
             
"deltaspike.interdyn.rule.1.match=org\\\\.apache\\\\.deltaspike\\\\.test\\\\.core\\\\.impl\\\\.interdyn\\\\.Some.*Service\n"
 +
             
"deltaspike.interdyn.rule.1.annotation=org.apache.deltaspike.core.api.monitoring.InvocationMonitored\n";
 
+    private final static String BEANS_XML =
+            "<beans><interceptors><class>" +
+            InvocationMonitorInterceptor.class.getName() +
+            "</class></interceptors></beans>";
     @Deployment
     public static WebArchive deploy()
     {
         JavaArchive testJar = ShrinkWrap.create(JavaArchive.class, 
"InterDynTest.jar")
                 .addPackage(SomeTestService.class.getPackage().getName())
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
+                .addAsManifestResource(new StringAsset(BEANS_XML), "beans.xml")
                 .addAsManifestResource(new StringAsset(CONFIG), 
"apache-deltaspike.properties");
 
         return ShrinkWrap.create(WebArchive.class, "InterDynTest.war")
diff --git 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/SomeTestService.java
 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/SomeTestService.java
index fa1adfbd..6003c3fe 100644
--- 
a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/SomeTestService.java
+++ 
b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/impl/interdyn/SomeTestService.java
@@ -21,6 +21,7 @@ package org.apache.deltaspike.test.core.impl.interdyn;
 import org.apache.deltaspike.core.api.monitoring.MonitorResultEvent;
 import org.junit.Assert;
 
+import javax.annotation.PreDestroy;
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.event.Observes;
 
@@ -29,6 +30,7 @@ public class SomeTestService
 {
 
     private boolean check = false;
+    private MonitorResultEvent mre;
 
     public String pingA()
     {
@@ -52,12 +54,24 @@ public class SomeTestService
         this.check = true;
     }
 
+    public MonitorResultEvent getMonitorResultEvent()
+    {
+        return mre;
+    }
+
     public void observer(@Observes MonitorResultEvent mre)
     {
+        this.mre = mre;
         if (check)
         {
             
Assert.assertTrue(mre.getClassInvocations().keySet().contains(SomeTestService.class.getName()));
             check = false;
         }
     }
+
+    @PreDestroy
+    public void verifyMonitorResultEvent()
+    {
+        Assert.assertNotNull(mre);
+    }
 }
diff --git 
a/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties 
b/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
index 8e7c7b3d..9d75f4fe 100644
--- 
a/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
+++ 
b/deltaspike/core/impl/src/test/resources/META-INF/apache-deltaspike.properties
@@ -72,3 +72,9 @@ myapp.other.server.host=otherserver
 myapp.other.server.port=443
 myapp.other.server.path=/otherapp/endpoint2
 
+# for InterDynTest
+# We need to configure this here for in-process Arquillian containers like OWB 
and Weld,
+# and additionally via @Deployment for container based Arquillians
+deltaspike.interdyn.enabled=true
+deltaspike.interdyn.rule.1.match=org\\.apache\\.deltaspike\\.test\\.core\\.impl\\.interdyn\\.Some.*Service
+deltaspike.interdyn.rule.1.annotation=org.apache.deltaspike.core.api.monitoring.InvocationMonitored

Reply via email to