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