You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2018/07/05 03:05:36 UTC

logging-log4j2 git commit: LOG4J2-2266 - Use classloaders when loading properties

Repository: logging-log4j2
Updated Branches:
  refs/heads/LOG4J2-2266 [created] 2a051c2c7


LOG4J2-2266 - Use classloaders when loading properties


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2a051c2c
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2a051c2c
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2a051c2c

Branch: refs/heads/LOG4J2-2266
Commit: 2a051c2c70856863161402ccb8c1315d942e061a
Parents: af5cd99
Author: Ralph Goers <rg...@apache.org>
Authored: Wed Jul 4 20:05:17 2018 -0700
Committer: Ralph Goers <rg...@apache.org>
Committed: Wed Jul 4 20:05:17 2018 -0700

----------------------------------------------------------------------
 .../org/apache/logging/log4j/util/PropertiesUtil.java | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2a051c2c/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
index 9349b2e..4c20dc0 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
@@ -316,12 +316,22 @@ public final class PropertiesUtil {
 
         private Environment(final PropertySource propertySource) {
             sources.add(propertySource);
-            for (final PropertySource source : ServiceLoader.load(PropertySource.class)) {
-                sources.add(source);
+            for (ClassLoader classLoader : LoaderUtil.getClassLoaders()) {
+                try {
+                    loadPropertySource(classLoader);
+                } catch (Throwable ex) {
+                    LowLevelLogUtil.log("Unable to retrieve propertySource from ClassLoader " + classLoader + ", " + ex.getMessage());
+                }
             }
             reload();
         }
 
+        private void loadPropertySource(ClassLoader classLoader) {
+            for (final PropertySource source : ServiceLoader.load(PropertySource.class, classLoader)) {
+                sources.add(source);
+            }
+        }
+
         private synchronized void reload() {
             literal.clear();
             normalized.clear();