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 2023/09/19 13:22:53 UTC

[logging-log4j2] branch main updated: Add a default location for @LoggerContextSource

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

pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/main by this push:
     new 3d5ef3155e Add a default location for @LoggerContextSource
3d5ef3155e is described below

commit 3d5ef3155e8f5686958f0c23195337aee833c609
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Tue Sep 19 15:20:56 2023 +0200

    Add a default location for @LoggerContextSource
    
    Our integration tests use a lot of configurations, which are now in a
    flat folder. Moving them to a tree structure will add some order to the
    repo.
---
 .../logging/log4j/core/test/junit/LoggerContextResolver.java  | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java
index 201661475e..f63fcb47d5 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java
@@ -123,7 +123,7 @@ class LoggerContextResolver extends TypeBasedParameterResolver<LoggerContext> im
         final Class<?> testClass = extensionContext.getRequiredTestClass();
         final ClassLoader classLoader = testClass.getClassLoader();
         final Map.Entry<String, Object> injectorContext = Map.entry(Injector.class.getName(), injector);
-        final String configLocation = source.value();
+        final String configLocation = getConfigLocation(source, extensionContext);
         final URI configUri;
         if (source.v1config()) {
             System.setProperty(ConfigurationFactory.LOG4J1_CONFIGURATION_FILE_PROPERTY.getSystemKey(), configLocation);
@@ -139,6 +139,15 @@ class LoggerContextResolver extends TypeBasedParameterResolver<LoggerContext> im
         return context;
     }
 
+    private static String getConfigLocation(final LoggerContextSource source,
+                                            final ExtensionContext extensionContext) {
+        final String value = source.value();
+        if (value.isEmpty()) {
+            return extensionContext.getRequiredTestClass().getName().replaceAll("[.$]", "/") + ".xml";
+        }
+        return value;
+    }
+
     private static final class ContextHolder implements Store.CloseableResource, LoggerContextAccessor {
         private final LoggerContext context;
         private final long shutdownTimeout;