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