You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2022/10/15 09:08:37 UTC
[logging-log4j2] 03/03: Adapt `log4j-script` tests to the module path
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 485848e4d32833db9ab0724ee1403bec5c7ab502
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Sat Oct 15 10:42:40 2022 +0200
Adapt `log4j-script` tests to the module path
This requires correcting some module descriptor errors and a dirty trick
consisting of copying `target/classes` to `target/test-classes` just
before Surefire runs.
Surefire is not able to patch the `target/test-classes` module with
`target/classes`.
---
log4j-script/pom.xml | 39 +++++++++++++++++++
.../src/main/{java => module}/module-info.java | 29 ++++++++------
.../src/{main => test}/java/module-info.java | 45 ++++++++++++++++------
.../filter/ScriptFileFilterPropertiesTest.java | 3 +-
.../log4j/script/filter/ScriptFileFilterTest.java | 3 +-
.../log4j/script/filter/ScriptFilterTest.java | 3 +-
.../log4j/script/filter/ScriptRefFilterTest.java | 3 +-
.../log4j/script/layout/PatternSelectorTest.java | 12 +++---
8 files changed, 105 insertions(+), 32 deletions(-)
diff --git a/log4j-script/pom.xml b/log4j-script/pom.xml
index 84c419ca9a..a42a6fb6c2 100644
--- a/log4j-script/pom.xml
+++ b/log4j-script/pom.xml
@@ -106,6 +106,23 @@
<build>
<plugins>
+ <!-- For Eclipse users' sake we move the module descriptor to a separate source folder -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${project.basedir}/src/main/module</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
@@ -131,6 +148,28 @@
</execution>
</executions>
</plugin>
+ <!-- Workaround Surefire 3.0.0-M7 limitation: it does not add the main classes with 'patch-module' -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>shade-test-module</id>
+ <phase>process-test-classes</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.build.outputDirectory}</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
<reporting>
diff --git a/log4j-script/src/main/java/module-info.java b/log4j-script/src/main/module/module-info.java
similarity index 67%
copy from log4j-script/src/main/java/module-info.java
copy to log4j-script/src/main/module/module-info.java
index dd8719ace5..0fa939f95e 100644
--- a/log4j-script/src/main/java/module-info.java
+++ b/log4j-script/src/main/module/module-info.java
@@ -1,5 +1,3 @@
-import org.apache.logging.log4j.plugins.model.PluginService;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -16,23 +14,32 @@ import org.apache.logging.log4j.plugins.model.PluginService;
* See the license for the specific language governing permissions and
* limitations under the license.
*/
-module org.apache.logging.log4j.script {
+import org.apache.logging.log4j.core.script.ScriptManagerFactory;
+import org.apache.logging.log4j.plugins.model.PluginService;
+import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
+import org.apache.logging.log4j.script.plugins.Log4jPlugins;
+module org.apache.logging.log4j.script {
exports org.apache.logging.log4j.script;
exports org.apache.logging.log4j.script.appender;
+ opens org.apache.logging.log4j.script.appender to
+ org.apache.logging.log4j.core;
exports org.apache.logging.log4j.script.appender.rolling.action;
exports org.apache.logging.log4j.script.config.arbiter;
+ opens org.apache.logging.log4j.script.config.arbiter to
+ org.apache.logging.log4j.core;
+ opens org.apache.logging.log4j.script.config.builder to
+ org.apache.logging.log4j.core;
exports org.apache.logging.log4j.script.filter;
exports org.apache.logging.log4j.script.layout;
+ opens org.apache.logging.log4j.script.layout to
+ org.apache.logging.log4j.core;
- opens org.apache.logging.log4j.script.appender;
- opens org.apache.logging.log4j.script.config.arbiter to org.apache.logging.log4j.core;
- opens org.apache.logging.log4j.script.layout to org.apache.logging.log4j.core;
-
- requires java.scripting;
requires org.apache.logging.log4j;
- requires org.apache.logging.log4j.plugins;
requires org.apache.logging.log4j.core;
- provides PluginService with org.apache.logging.log4j.script.plugins.Log4jPlugins;
- provides org.apache.logging.log4j.core.script.ScriptManagerFactory with org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
+ requires org.apache.logging.log4j.plugins;
+ requires java.scripting;
+
+ provides PluginService with Log4jPlugins;
+ provides ScriptManagerFactory with ScriptManagerFactoryImpl;
}
diff --git a/log4j-script/src/main/java/module-info.java b/log4j-script/src/test/java/module-info.java
similarity index 51%
rename from log4j-script/src/main/java/module-info.java
rename to log4j-script/src/test/java/module-info.java
index dd8719ace5..6679170185 100644
--- a/log4j-script/src/main/java/module-info.java
+++ b/log4j-script/src/test/java/module-info.java
@@ -1,5 +1,3 @@
-import org.apache.logging.log4j.plugins.model.PluginService;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -16,23 +14,48 @@ import org.apache.logging.log4j.plugins.model.PluginService;
* See the license for the specific language governing permissions and
* limitations under the license.
*/
-module org.apache.logging.log4j.script {
+import org.apache.logging.log4j.core.script.ScriptManagerFactory;
+import org.apache.logging.log4j.plugins.model.PluginService;
+import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
+import org.apache.logging.log4j.script.plugins.Log4jPlugins;
+module org.apache.logging.log4j.script {
exports org.apache.logging.log4j.script;
exports org.apache.logging.log4j.script.appender;
+ opens org.apache.logging.log4j.script.appender to
+ org.junit.platform.commons,
+ org.apache.logging.log4j.core;
+ exports org.apache.logging.log4j.script.appender.rolling to
+ junit;
exports org.apache.logging.log4j.script.appender.rolling.action;
+ exports org.apache.logging.log4j.script.appender.routing to
+ junit;
+ exports org.apache.logging.log4j.script.config to
+ org.junit.platform.commons;
exports org.apache.logging.log4j.script.config.arbiter;
+ opens org.apache.logging.log4j.script.config.arbiter to
+ org.apache.logging.log4j.core;
+ exports org.apache.logging.log4j.script.config.builder to
+ org.junit.platform.commons;
+ opens org.apache.logging.log4j.script.config.builder to
+ org.apache.logging.log4j.core;
exports org.apache.logging.log4j.script.filter;
exports org.apache.logging.log4j.script.layout;
+ opens org.apache.logging.log4j.script.layout to
+ org.apache.logging.log4j.core;
- opens org.apache.logging.log4j.script.appender;
- opens org.apache.logging.log4j.script.config.arbiter to org.apache.logging.log4j.core;
- opens org.apache.logging.log4j.script.layout to org.apache.logging.log4j.core;
-
- requires java.scripting;
requires org.apache.logging.log4j;
- requires org.apache.logging.log4j.plugins;
requires org.apache.logging.log4j.core;
- provides PluginService with org.apache.logging.log4j.script.plugins.Log4jPlugins;
- provides org.apache.logging.log4j.core.script.ScriptManagerFactory with org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
+ requires org.apache.logging.log4j.core.test;
+ requires org.apache.logging.log4j.plugins;
+ requires org.apache.logging.log4j.test;
+ requires java.scripting;
+ requires junit;
+ requires org.assertj.core;
+ requires org.junit.jupiter.api;
+ requires org.junitpioneer;
+ requires org.hamcrest;
+
+ provides PluginService with Log4jPlugins;
+ provides ScriptManagerFactory with ScriptManagerFactoryImpl;
}
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterPropertiesTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterPropertiesTest.java
index ef093544a7..c3ba45fac2 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterPropertiesTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterPropertiesTest.java
@@ -17,10 +17,11 @@
package org.apache.logging.log4j.script.filter;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.test.junit.ReconfigurationPolicy;
import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
import org.junitpioneer.jupiter.SetSystemProperty;
@SetSystemProperty(key = ScriptManagerFactoryImpl.SCRIPT_LANGUAGES, value = "Groovy, Javascript")
-@LoggerContextSource("log4j-scriptFile-filters.properties")
+@LoggerContextSource(value = "log4j-scriptFile-filters.properties", reconfigure = ReconfigurationPolicy.BEFORE_EACH)
public class ScriptFileFilterPropertiesTest extends AbstractScriptFilterTest {
}
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterTest.java
index 3785e2d2bb..b0dd11cc29 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFileFilterTest.java
@@ -17,10 +17,11 @@
package org.apache.logging.log4j.script.filter;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.test.junit.ReconfigurationPolicy;
import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
import org.junitpioneer.jupiter.SetSystemProperty;
@SetSystemProperty(key = ScriptManagerFactoryImpl.SCRIPT_LANGUAGES, value = "Groovy, Javascript")
-@LoggerContextSource("log4j-scriptFile-filters.xml")
+@LoggerContextSource(value = "log4j-scriptFile-filters.xml", reconfigure = ReconfigurationPolicy.BEFORE_EACH)
public class ScriptFileFilterTest extends AbstractScriptFilterTest {
}
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFilterTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFilterTest.java
index 4e9742f627..62adc9ec16 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFilterTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptFilterTest.java
@@ -17,10 +17,11 @@
package org.apache.logging.log4j.script.filter;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.test.junit.ReconfigurationPolicy;
import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
import org.junitpioneer.jupiter.SetSystemProperty;
@SetSystemProperty(key = ScriptManagerFactoryImpl.SCRIPT_LANGUAGES, value = "Groovy, Javascript")
-@LoggerContextSource("log4j-script-filters.xml")
+@LoggerContextSource(value = "log4j-script-filters.xml", reconfigure = ReconfigurationPolicy.BEFORE_EACH)
public class ScriptFilterTest extends AbstractScriptFilterTest {
}
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptRefFilterTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptRefFilterTest.java
index 23551b3722..d29b624b2e 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptRefFilterTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/filter/ScriptRefFilterTest.java
@@ -17,10 +17,11 @@
package org.apache.logging.log4j.script.filter;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.test.junit.ReconfigurationPolicy;
import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
import org.junitpioneer.jupiter.SetSystemProperty;
@SetSystemProperty(key = ScriptManagerFactoryImpl.SCRIPT_LANGUAGES, value = "Groovy, Javascript")
-@LoggerContextSource("log4j-scriptRef-filters.xml")
+@LoggerContextSource(value = "log4j-scriptRef-filters.xml", reconfigure = ReconfigurationPolicy.BEFORE_EACH)
public class ScriptRefFilterTest extends AbstractScriptFilterTest {
}
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/layout/PatternSelectorTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/layout/PatternSelectorTest.java
index f641583fb4..842e56f904 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/layout/PatternSelectorTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/layout/PatternSelectorTest.java
@@ -19,20 +19,20 @@ package org.apache.logging.log4j.script.layout;
import java.util.List;
import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.test.junit.Named;
-import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.core.test.appender.ListAppender;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.core.test.junit.Named;
+import org.apache.logging.log4j.core.test.junit.ReconfigurationPolicy;
import org.apache.logging.log4j.script.factory.ScriptManagerFactoryImpl;
import org.apache.logging.log4j.util.Strings;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledForJreRange;
-import org.junit.jupiter.api.condition.JRE;
import org.junitpioneer.jupiter.SetSystemProperty;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
@SetSystemProperty(key = ScriptManagerFactoryImpl.SCRIPT_LANGUAGES, value = "bsh, Javascript")
-@LoggerContextSource("log4j-patternSelector.xml")
+@LoggerContextSource(value = "log4j-patternSelector.xml", reconfigure = ReconfigurationPolicy.BEFORE_EACH)
public class PatternSelectorTest {
@Test