Repository: logging-log4j2
Updated Branches:
  refs/heads/LOG4J-1181 02be6e1fd -> bcc14d1f3


LOG4J2-1313 Properties declared in configuration can now have their value 
either in the element body or in an attribute named "value".


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

Branch: refs/heads/LOG4J-1181
Commit: 0c52e34d95f0b1f6093f21fe4c98ba530f337ef0
Parents: 6b2573a
Author: rpopma <[email protected]>
Authored: Mon Jul 25 23:54:18 2016 +0900
Committer: rpopma <[email protected]>
Committed: Mon Jul 25 23:54:18 2016 +0900

----------------------------------------------------------------------
 .../core/config/plugins/visitors/PluginValueVisitor.java     | 5 +++--
 .../logging/log4j/core/config/xml/XmlLoggerPropsTest.java    | 8 ++++++--
 log4j-core/src/test/resources/log4j-loggerprops.xml          | 4 +++-
 src/changes/changes.xml                                      | 3 +++
 4 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c52e34d/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java
index 5ec53da..82dc20d 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginValueVisitor.java
@@ -22,6 +22,7 @@ import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.plugins.PluginValue;
 import org.apache.logging.log4j.util.StringBuilders;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * PluginVisitor implementation for {@link PluginValue}.
@@ -35,8 +36,8 @@ public class PluginValueVisitor extends 
AbstractPluginVisitor<PluginValue> {
     public Object visit(final Configuration configuration, final Node node, 
final LogEvent event,
                         final StringBuilder log) {
         final String name = this.annotation.value();
-        final String rawValue = node.getValue() != null ? node.getValue() :
-            removeAttributeValue(node.getAttributes(), "value");
+        final String rawValue = Strings.isNotEmpty(node.getValue()) ? 
node.getValue() :
+                removeAttributeValue(node.getAttributes(), "value");
         final String value = this.substitutor.replace(event, rawValue);
         StringBuilders.appendKeyDqValue(log, name, value);
         return value;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c52e34d/log4j-core/src/test/java/org/apache/logging/log4j/core/config/xml/XmlLoggerPropsTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/xml/XmlLoggerPropsTest.java
 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/xml/XmlLoggerPropsTest.java
index 094defa..01bd086 100644
--- 
a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/xml/XmlLoggerPropsTest.java
+++ 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/xml/XmlLoggerPropsTest.java
@@ -66,14 +66,18 @@ public class XmlLoggerPropsTest {
                 containsString("phrasex=****"),
                 containsString("test=test"),
                 containsString("test2=test2default"),
-                containsString("test3=Unknown")
+                containsString("test3=Unknown"),
+                containsString("attribKey=attribValue"),
+                containsString("duplicateKey=nodeValue")
             ));
             assertThat(events.get(1), allOf(
                 containsString("user="),
                 containsString("phrasex=****"),
                 containsString("test=test"),
                 containsString("test2=test2default"),
-                containsString("test3=Unknown")
+                containsString("test3=Unknown"),
+                containsString("attribKey=attribValue"),
+                containsString("duplicateKey=nodeValue")
             ));
         } finally {
             System.clearProperty("test");

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c52e34d/log4j-core/src/test/resources/log4j-loggerprops.xml
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/resources/log4j-loggerprops.xml 
b/log4j-core/src/test/resources/log4j-loggerprops.xml
index daa7439..84e4fea 100644
--- a/log4j-core/src/test/resources/log4j-loggerprops.xml
+++ b/log4j-core/src/test/resources/log4j-loggerprops.xml
@@ -18,10 +18,12 @@
 <Configuration status="OFF" strict="false" name="DSI">
   <Properties>
      <Property name="test2">test2default</Property>
+     <Property name="attribKey" value="attribValue" />
+     <Property name="duplicateKey" value="attribValue">nodeValue</Property>
   </Properties>
   <Appenders>
     <List name="List">
-        <PatternLayout pattern="[%-5level] %c{1.} user=%X{user} 
phrasex=%X{phrasex} test=%X{test} test2=$${sys:test2} 
test3=$${sys:test3:-Unknown} %msg%n" />
+        <PatternLayout pattern="[%-5level] %c{1.} user=%X{user} 
phrasex=%X{phrasex} test=%X{test} test2=$${sys:test2} 
test3=$${sys:test3:-Unknown} attribKey=$${attribKey} 
duplicateKey=$${duplicateKey}%msg%n" />
     </List>
   </Appenders>
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c52e34d/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 1b0dcc6..d0032c6 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
   </properties>
   <body>
     <release version="2.7.0" date="2016-MM-DD" description="GA Release 2.7.0">
+      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp 
Knobel">
+        Properties declared in configuration can now have their value either 
in the element body or in an attribute named "value".
+      </action>
       <action issue="LOG4J2-1472" dev="ggregory" type="add" due-to="Gary 
Gregory">
         Make org.apache.logging.log4j.core.LoggerContext implement Closeable.
       </action>

Reply via email to