Return-Path: X-Original-To: apmail-logging-commits-archive@minotaur.apache.org Delivered-To: apmail-logging-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D468910ED6 for ; Sat, 28 Dec 2013 06:31:01 +0000 (UTC) Received: (qmail 31005 invoked by uid 500); 28 Dec 2013 06:31:00 -0000 Delivered-To: apmail-logging-commits-archive@logging.apache.org Received: (qmail 30982 invoked by uid 500); 28 Dec 2013 06:30:57 -0000 Mailing-List: contact commits-help@logging.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@logging.apache.org Delivered-To: mailing list commits@logging.apache.org Received: (qmail 30975 invoked by uid 99); 28 Dec 2013 06:30:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 28 Dec 2013 06:30:55 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 28 Dec 2013 06:30:54 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 9612723888FE; Sat, 28 Dec 2013 06:30:33 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1553789 - in /logging/log4j/log4j2/trunk/log4j-core/src: main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java test/resources/log4j-reference-level.json Date: Sat, 28 Dec 2013 06:30:33 -0000 To: commits@logging.apache.org From: rgoers@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20131228063033.9612723888FE@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: rgoers Date: Sat Dec 28 06:30:33 2013 New Revision: 1553789 URL: http://svn.apache.org/r1553789 Log: LOG4J2-464 - Support arrays in sub-elements Added: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java - copied, changed from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json - copied, changed from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java?rev=1553789&r1=1553788&r2=1553789&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java (original) +++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/JSONConfiguration.java Sat Dec 28 06:30:33 2013 @@ -232,7 +232,16 @@ public class JSONConfiguration extends B if (itemEntry.getValue().isObject()) { LOGGER.debug("Processing node for object " + itemEntry.getKey()); itemChildren.add(constructNode(itemEntry.getKey(), item, itemEntry.getValue())); + } else if (itemEntry.getValue().isArray()) { + JsonNode array = itemEntry.getValue(); + String entryName = itemEntry.getKey(); + LOGGER.debug("Processing array for object " + entryName); + final PluginType itemEntryType = pluginManager.getPluginType(entryName); + for (int j = 0; j < array.size(); ++j) { + itemChildren.add(constructNode(entryName, item, array.get(j))); + } } + } children.add(item); } @@ -240,6 +249,8 @@ public class JSONConfiguration extends B LOGGER.debug("Processing node for object " + entry.getKey()); children.add(constructNode(entry.getKey(), node, n)); } + } else { + LOGGER.debug("Node {} is of type {}", entry.getKey(), n.getNodeType()); } } Copied: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java (from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java) URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java?p2=logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java&p1=logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java&r1=1542882&r2=1553789&rev=1553789&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java (original) +++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelJsonTest.java Sat Dec 28 06:30:33 2013 @@ -16,11 +16,6 @@ */ package org.apache.logging.log4j.core; -import static org.junit.Assert.assertTrue; - -import java.util.List; -import java.util.Map; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; @@ -33,12 +28,17 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertTrue; + /** * */ -public class AppenderRefLevelTest { +public class AppenderRefLevelJsonTest { - private static final String CONFIG = "log4j-reference-level.xml"; + private static final String CONFIG = "log4j-reference-level.json"; private static Configuration config; private static ListAppender app1; private static ListAppender app2; Copied: logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json (from r1542882, logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml) URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json?p2=logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json&p1=logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml&r1=1542882&r2=1553789&rev=1553789&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.xml (original) +++ logging/log4j/log4j2/trunk/log4j-core/src/test/resources/log4j-reference-level.json Sat Dec 28 06:30:33 2013 @@ -1,50 +1,38 @@ - - - - - - - - - - - - - - - - > - - - - - > - - - - - - > - - - - - - - \ No newline at end of file +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +{ "configuration": { "status": "debug", "XMLConfigTest": "RoutingTest", "packages": "org.apache.logging.log4j.test", + "appenders": { + "appender": [ + { "type": "Console", "name": "STDOUT", "PatternLayout": { "pattern": "%m%n" }}, + { "type": "List", "name": "LIST1"}, + { "type": "List", "name": "LIST2"} + ] + }, + "loggers": { + "logger": [ + { "name": "org.apache.logging.log4j.test1", "level": "trace", "additivity": "false", + "AppenderRef": [{ "ref": "LIST1", "level": "trace" }, {"ref": "LIST2", "level": "error"}]}, + { "name": "org.apache.logging.log4j.test2", "level": "debug", "additivity": "false", + "AppenderRef": [{ "ref": "LIST1", "level": "warn" }, {"ref": "LIST2", "level": "debug"}]}, + { "name": "org.apache.logging.log4j.test3", "level": "trace", "additivity": "false", + "AppenderRef": {"ref": "LIST1", "level": "trace", + "MarkerFilter": {"marker" : "TEST", "onMatch": "deny", "onMismatch": "accept"}} } + ], + "root": { "level": "error", "AppenderRef": { "ref": "STDOUT" }} + } + } +} \ No newline at end of file