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 2017/01/10 15:38:09 UTC

logging-log4j2 git commit: LOG4J2-1243 - Allow default value in property to be a Lookup.

Repository: logging-log4j2
Updated Branches:
  refs/heads/master ba4822b1c -> 0c2c11dbe


LOG4J2-1243 - Allow default value in property to be a Lookup.


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

Branch: refs/heads/master
Commit: 0c2c11dbe5751c1d6f2fe3e9291b09b1d9a99a53
Parents: ba4822b
Author: Ralph Goers <rg...@nextiva.com>
Authored: Tue Jan 10 08:38:02 2017 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Tue Jan 10 08:38:02 2017 -0700

----------------------------------------------------------------------
 .../core/config/plugins/processor/PluginProcessor.java  |  5 +++--
 .../apache/logging/log4j/core/lookup/Interpolator.java  |  3 ++-
 .../logging/log4j/core/lookup/StrSubstitutor.java       | 10 ++++++++--
 .../logging/log4j/core/lookup/InterpolatorTest.java     |  5 +++++
 .../logging/log4j/core/lookup/StrSubstitutorTest.java   | 12 ++++++++++++
 src/changes/changes.xml                                 |  3 +++
 6 files changed, 33 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c2c11db/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.java
index 13a83a6..c7db024 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.java
@@ -22,6 +22,7 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -127,7 +128,7 @@ public class PluginProcessor extends AbstractProcessor {
         public PluginEntry visitType(final TypeElement e, final Plugin plugin) {
             Objects.requireNonNull(plugin, "Plugin annotation is null.");
             final PluginEntry entry = new PluginEntry();
-            entry.setKey(plugin.name().toLowerCase());
+            entry.setKey(plugin.name().toLowerCase(Locale.US));
             entry.setClassName(elements.getBinaryName(e).toString());
             entry.setName(Plugin.EMPTY.equals(plugin.elementType()) ? plugin.name() : plugin.elementType());
             entry.setPrintable(plugin.printObject());
@@ -158,7 +159,7 @@ public class PluginProcessor extends AbstractProcessor {
             final Collection<PluginEntry> entries = new ArrayList<>(aliases.value().length);
             for (final String alias : aliases.value()) {
                 final PluginEntry entry = new PluginEntry();
-                entry.setKey(alias.toLowerCase());
+                entry.setKey(alias.toLowerCase(Locale.US));
                 entry.setClassName(elements.getBinaryName(e).toString());
                 entry.setName(Plugin.EMPTY.equals(plugin.elementType()) ? alias : plugin.elementType());
                 entry.setPrintable(plugin.printObject());

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c2c11db/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
index ba50ca7..5259237 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.lookup;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 import org.apache.logging.log4j.Logger;
@@ -171,7 +172,7 @@ public class Interpolator extends AbstractConfigurationAwareLookup {
 
         final int prefixPos = var.indexOf(PREFIX_SEPARATOR);
         if (prefixPos >= 0) {
-            final String prefix = var.substring(0, prefixPos);
+            final String prefix = var.substring(0, prefixPos).toLowerCase(Locale.US);
             final String name = var.substring(prefixPos + 1);
             final StrLookup lookup = lookups.get(prefix);
             if (lookup instanceof ConfigurationAware) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c2c11db/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
index ef509ef..3e91951 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/StrSubstitutor.java
@@ -940,7 +940,7 @@ public class StrSubstitutor implements ConfigurationAware {
                                     varNameExpr = bufName.toString();
                                 }
                                 pos += endMatchLen;
-                                final int endPos = pos;
+                                int endPos = pos;
 
                                 String varName = varNameExpr;
                                 String varDefaultValue = null;
@@ -956,7 +956,13 @@ public class StrSubstitutor implements ConfigurationAware {
                                         }
                                         if ((valueDelimiterMatchLen = valueDelimiterMatcher.isMatch(varNameExprChars, i)) != 0) {
                                             varName = varNameExpr.substring(0, i);
-                                            varDefaultValue = varNameExpr.substring(i + valueDelimiterMatchLen);
+                                            varDefaultValue = variableResolver.lookup(varNameExpr.substring(i + valueDelimiterMatchLen));
+                                            if (varDefaultValue != null) {
+                                                ++endPos;
+                                            }
+                                            if (varDefaultValue == null) {
+                                                varDefaultValue = varNameExpr.substring(i + valueDelimiterMatchLen);
+                                            }
                                             break;
                                         }
                                     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c2c11db/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
index aceba57..9e55563 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
@@ -36,6 +36,7 @@ import static org.junit.Assert.*;
 public class InterpolatorTest {
 
     private static final String TESTKEY = "TestKey";
+    private static final String TESTKEY2 = "TestKey2";
     private static final String TESTVAL = "TestValue";
 
     private static final String TEST_CONTEXT_RESOURCE_NAME = "logging/context-name";
@@ -46,11 +47,13 @@ public class InterpolatorTest {
         @Override
         protected void before() throws Throwable {
             System.setProperty(TESTKEY, TESTVAL);
+            System.setProperty(TESTKEY2, TESTVAL);
         }
 
         @Override
         protected void after() {
             System.clearProperty(TESTKEY);
+            System.clearProperty(TESTKEY2);
         }
     }).around(new JndiRule(
         JndiLookup.CONTAINER_JNDI_RESOURCE_PATH_PREFIX + TEST_CONTEXT_RESOURCE_NAME, TEST_CONTEXT_NAME));
@@ -67,6 +70,8 @@ public class InterpolatorTest {
         assertEquals(TESTVAL, value);
         value = lookup.lookup("sys:" + TESTKEY);
         assertEquals(TESTVAL, value);
+        value = lookup.lookup("SYS:" + TESTKEY2);
+        assertEquals(TESTVAL, value);
         value = lookup.lookup("BadKey");
         assertNull(value);
         ThreadContext.clearMap();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c2c11db/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/StrSubstitutorTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/StrSubstitutorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/StrSubstitutorTest.java
index a91decb..d45cf7a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/StrSubstitutorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/StrSubstitutorTest.java
@@ -65,4 +65,16 @@ public class StrSubstitutorTest {
         value = subst.replace("${BadKey:-Unknown}-${ctx:BadKey:-}-${sys:BadKey:-Unknown}");
         assertEquals("Unknown--Unknown", value);
     }
+
+    @Test
+    public void testDefault() {
+        final Map<String, String> map = new HashMap<>();
+        map.put(TESTKEY, TESTVAL);
+        final StrLookup lookup = new Interpolator(new MapLookup(map));
+        final StrSubstitutor subst = new StrSubstitutor(lookup);
+        ThreadContext.put(TESTKEY, TESTVAL);
+        //String value = subst.replace("${sys:TestKey1:-${ctx:TestKey}}");
+        String value = subst.replace("${sys:TestKey1:-${ctx:TestKey}}");
+        assertEquals("TestValue", value);
+    }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c2c11db/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b350db7..d3d82fc 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
   </properties>
   <body>
     <release version="2.8" date="2017-MM-DD" description="GA Release 2.8">
+      <action issue="LOG4J2-1243" dev="rgoers" type="add">
+        Allow default value in property to be a Lookup.
+      </action>
       <action issue="LOG4J2-1779" dev="rpopma" type="fix">
         Fixed bug where AsyncLogger did not resolve configuration properties.
       </action>


Fwd: logging-log4j2 git commit: LOG4J2-1243 - Allow default value in property to be a Lookup.

Posted by Gary Gregory <ga...@gmail.com>.
---------- Forwarded message ----------
From: <rg...@apache.org>
Date: Tue, Jan 10, 2017 at 7:38 AM
Subject: logging-log4j2 git commit: LOG4J2-1243 - Allow default value in
property to be a Lookup.
To: commits@logging.apache.org


Repository: logging-log4j2
Updated Branches:
  refs/heads/master ba4822b1c -> 0c2c11dbe


LOG4J2-1243 - Allow default value in property to be a Lookup.


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

Branch: refs/heads/master
Commit: 0c2c11dbe5751c1d6f2fe3e9291b09b1d9a99a53
Parents: ba4822b
Author: Ralph Goers <rg...@nextiva.com>
Authored: Tue Jan 10 08:38:02 2017 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Tue Jan 10 08:38:02 2017 -0700

----------------------------------------------------------------------
 .../core/config/plugins/processor/PluginProcessor.java  |  5 +++--
 .../apache/logging/log4j/core/lookup/Interpolator.java  |  3 ++-
 .../logging/log4j/core/lookup/StrSubstitutor.java       | 10 ++++++++--
 .../logging/log4j/core/lookup/InterpolatorTest.java     |  5 +++++
 .../logging/log4j/core/lookup/StrSubstitutorTest.java   | 12 ++++++++++++
 src/changes/changes.xml                                 |  3 +++
 6 files changed, 33 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/
0c2c11db/log4j-core/src/main/java/org/apache/logging/log4j/
core/config/plugins/processor/PluginProcessor.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/
config/plugins/processor/PluginProcessor.java b/log4j-core/src/main/java/
org/apache/logging/log4j/core/config/plugins/processor/PluginProcessor.java
index 13a83a6..c7db024 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/
config/plugins/processor/PluginProcessor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/
config/plugins/processor/PluginProcessor.java
@@ -22,6 +22,7 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -127,7 +128,7 @@ public class PluginProcessor extends AbstractProcessor {
         public PluginEntry visitType(final TypeElement e, final Plugin
plugin) {
             Objects.requireNonNull(plugin, "Plugin annotation is null.");
             final PluginEntry entry = new PluginEntry();
-            entry.setKey(plugin.name().toLowerCase());
+            entry.setKey(plugin.name().toLowerCase(Locale.US));

How about adding a lower-case version of:

org.apache.logging.log4j.util.Strings.toRootUpperCase(String)

?

Gary