You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2016/08/31 16:24:01 UTC
[19/33] logging-log4j2 git commit: Remove XML writing in
AbstactConfiguration
Remove XML writing in AbstactConfiguration
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3e7df46b
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3e7df46b
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3e7df46b
Branch: refs/heads/LOG4J2-1553
Commit: 3e7df46bbdc4c7b1c0b5bb35572f4691e91d761e
Parents: 4ae1cc2
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sun Aug 21 20:19:22 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sun Aug 21 20:19:22 2016 +0200
----------------------------------------------------------------------
.../core/config/AbstractConfiguration.java | 154 -------------------
.../builder/ConfigurationBuilderTest.java | 43 +-----
2 files changed, 2 insertions(+), 195 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3e7df46b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 49a401b..ef3f668 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -46,17 +46,11 @@ import org.apache.logging.log4j.core.util.NameUtil;
import org.apache.logging.log4j.core.util.NanoClock;
import org.apache.logging.log4j.core.util.WatchManager;
import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.Strings;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.io.Serializable;
-import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -187,154 +181,6 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
return rootNode;
}
- private static final List<String> SECTION_NAMES =
- Arrays.asList("Properties", "Scripts", "CustomLevels", "Filters", "Appenders", "Loggers");
-
- public void writeXmlConfiguration(final OutputStream output) throws IOException {
- try {
- XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(output);
- writeXmlConfiguration(xmlWriter);
- xmlWriter.close();
- } catch (XMLStreamException e) {
- if (e.getNestedException() instanceof IOException) {
- throw (IOException)e.getNestedException();
- } else {
- throw new RuntimeException(e);
- }
- }
- }
-
- public String toXmlConfiguration() {
- StringWriter sw = new StringWriter();
- try {
- XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(sw);
- writeXmlConfiguration(xmlWriter);
- xmlWriter.close();
- } catch (XMLStreamException e) {
- throw new RuntimeException(e);
- }
- return sw.toString();
- }
-
- private void writeXmlConfiguration(XMLStreamWriter xmlWriter) throws XMLStreamException {
- xmlWriter.writeStartDocument();
- xmlWriter.writeCharacters(System.lineSeparator());
-
- xmlWriter.writeStartElement("Configuration");
-
- if (name != null) {
- xmlWriter.writeAttribute("name", getName());
- }
- /* TODO status logger config
- if (level != null) {
- xmlWriter.writeAttribute("status", level.name());
- }
- if (verbosity != null) {
- xmlWriter.writeAttribute("verbose", verbosity);
- }
- if (destination != null) {
- xmlWriter.writeAttribute("dest", destination);
- }
- */
- if (!getPluginPackages().isEmpty()) {
- xmlWriter.writeAttribute("packages", Strings.join(getPluginPackages(), ','));
- }
- if (!isShutdownHookEnabled()) {
- xmlWriter.writeAttribute("shutdownHook", "disable");
- }
- if (advertiserNode != null) {
- xmlWriter.writeAttribute("advertiser", advertiserNode.getName());
- }
- if (getWatchManager().getIntervalSeconds() > 0) {
- xmlWriter.writeAttribute("monitorInterval", String.valueOf(getWatchManager().getIntervalSeconds()));
- }
-
- xmlWriter.writeCharacters(System.lineSeparator());
-
- writeXmlSection(xmlWriter, lookupSection("Properties"));
- writeXmlSection(xmlWriter, lookupSection("Scripts"));
- writeXmlSection(xmlWriter, lookupSection("CustomLevels"));
- Node filters = lookupSection("Filters");
- if (filters != null) {
- writeXmlSection(xmlWriter, filters);
- } else {
- Node filter = lookupFilter();
- if (filter != null) {
- writeXmlNode(xmlWriter, filter, 1);
- }
- }
-
- writeXmlSection(xmlWriter, lookupSection("Appenders"));
- writeXmlSection(xmlWriter, lookupSection("Loggers"));
-
- xmlWriter.writeEndElement(); // "Configuration"
- xmlWriter.writeCharacters(System.lineSeparator());
-
- xmlWriter.writeEndDocument();
- }
-
- private Node lookupSection(String name) {
- for (final Node child : rootNode.getChildren()) {
- if (child.getName().equalsIgnoreCase(name)) {
- return child;
- }
- }
- return null;
- }
-
- private Node lookupFilter() {
- for (final Node child : rootNode.getChildren()) {
- if (!SECTION_NAMES.contains(child.getName())) {
- return child;
- }
- }
- return null;
- }
-
- private void writeXmlSection(XMLStreamWriter xmlWriter, Node node) throws XMLStreamException {
- if (node != null && (!node.getAttributes().isEmpty() || !node.getChildren().isEmpty() || node.getValue() != null)) {
- writeXmlNode(xmlWriter, node, 1);
- }
- }
-
- private void writeXmlNode(XMLStreamWriter xmlWriter, Node node, int nesting) throws XMLStreamException {
- if (!node.getChildren().isEmpty() || node.getValue() != null) {
- writeXmlIndent(xmlWriter, nesting);
- xmlWriter.writeStartElement(node.getName());
- writeXmlAttributes(xmlWriter, node);
- if (!node.getChildren().isEmpty()) {
- xmlWriter.writeCharacters(System.lineSeparator());
- }
- for (Node childNode : node.getChildren()) {
- writeXmlNode(xmlWriter, childNode, nesting + 1);
- }
- if (node.getValue() != null) {
- xmlWriter.writeCharacters(node.getValue());
- }
- if (!node.getChildren().isEmpty()) {
- writeXmlIndent(xmlWriter, nesting);
- }
- xmlWriter.writeEndElement();
- } else {
- writeXmlIndent(xmlWriter, nesting);
- xmlWriter.writeEmptyElement(node.getName());
- writeXmlAttributes(xmlWriter, node);
- }
- xmlWriter.writeCharacters(System.lineSeparator());
- }
-
- private void writeXmlIndent(XMLStreamWriter xmlWriter, int nesting) throws XMLStreamException {
- for (int i = 0; i < nesting; i++) {
- xmlWriter.writeCharacters("\t");
- }
- }
-
- private void writeXmlAttributes(XMLStreamWriter xmlWriter, Node node) throws XMLStreamException {
- for (Map.Entry<String, String> attribute : node.getAttributes().entrySet()) {
- xmlWriter.writeAttribute(attribute.getKey(), attribute.getValue());
- }
- }
-
@Override
public AsyncLoggerConfigDelegate getAsyncLoggerConfigDelegate() {
// lazily instantiate only when requested by AsyncLoggers:
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3e7df46b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/ConfigurationBuilderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/ConfigurationBuilderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/ConfigurationBuilderTest.java
index 3525125..87ecd26 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/ConfigurationBuilderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/builder/ConfigurationBuilderTest.java
@@ -19,7 +19,6 @@ package org.apache.logging.log4j.core.config.builder;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.appender.ConsoleAppender;
-import org.apache.logging.log4j.core.config.AbstractConfiguration;
import org.apache.logging.log4j.core.config.builder.api.AppenderComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
@@ -51,7 +50,7 @@ public class ConfigurationBuilderTest {
builder.setPackages("foo,bar");
}
- private final static String expectedXml1 =
+ private final static String expectedXml =
"<?xml version='1.0' encoding='UTF-8'?>" + System.lineSeparator() +
"<Configuration name=\"config name\" status=\"ERROR\" packages=\"foo,bar\">" + System.lineSeparator() +
"\t<Properties>" + System.lineSeparator() +
@@ -85,45 +84,7 @@ public class ConfigurationBuilderTest {
final ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
addTestFixtures("config name", builder);
final String xmlConfiguration = builder.toXmlConfiguration();
- assertEquals(expectedXml1, xmlConfiguration);
+ assertEquals(expectedXml, xmlConfiguration);
}
- private final static String expectedXml2 =
- "<?xml version='1.0' encoding='UTF-8'?>" + System.lineSeparator() +
- "<Configuration name=\"config name\" status=\"ERROR\" packages=\"foo,bar\">" + System.lineSeparator() +
- "\t<Properties>" + System.lineSeparator() +
- "\t\t<Property name=\"MyKey\">MyValue</Property>" + System.lineSeparator() +
- "\t</Properties>" + System.lineSeparator() +
- "\t<Scripts>" + System.lineSeparator() +
- "\t\t<ScriptFile name=\"target/test-classes/scripts/filter.groovy\" path=\"target/test-classes/scripts/filter.groovy\" isWatched=\"true\"/>" + System.lineSeparator() +
- "\t</Scripts>" + System.lineSeparator() +
- "\t<CustomLevels>" + System.lineSeparator() +
- "\t\t<CustomLevel name=\"Panic\" intLevel=\"17\"/>" + System.lineSeparator() +
- "\t</CustomLevels>" + System.lineSeparator() +
- "\t<ThresholdFilter onMatch=\"ACCEPT\" level=\"DEBUG\" onMisMatch=\"NEUTRAL\"/>" + System.lineSeparator() +
- "\t<Appenders>" + System.lineSeparator() +
- "\t\t<CONSOLE name=\"Stdout\" target=\"SYSTEM_OUT\">" + System.lineSeparator() +
- "\t\t\t<PatternLayout pattern=\"%d [%t] %-5level: %msg%n%throwable\"/>" + System.lineSeparator() +
- "\t\t\t<MarkerFilter onMatch=\"DENY\" onMisMatch=\"NEUTRAL\" marker=\"FLOW\"/>" + System.lineSeparator() +
- "\t\t</CONSOLE>" + System.lineSeparator() +
- "\t</Appenders>" + System.lineSeparator() +
- "\t<Loggers>" + System.lineSeparator() +
- "\t\t<Logger name=\"org.apache.logging.log4j\" additivity=\"false\" level=\"DEBUG\" includeLocation=\"true\">" + System.lineSeparator() +
- "\t\t\t<AppenderRef ref=\"Stdout\"/>" + System.lineSeparator() +
- "\t\t</Logger>" + System.lineSeparator() +
- "\t\t<Root level=\"ERROR\">" + System.lineSeparator() +
- "\t\t\t<AppenderRef ref=\"Stdout\"/>" + System.lineSeparator() +
- "\t\t</Root>" + System.lineSeparator() +
- "\t</Loggers>" + System.lineSeparator() +
- "</Configuration>" + System.lineSeparator();
-
- @Test
- public void testXmlConstructingWithAbstractConfiguration() throws Exception {
- final ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder();
- addTestFixtures("config name", builder);
- AbstractConfiguration configuration = builder.build(false);
- configuration.setup();
- final String xmlConfiguration = configuration.toXmlConfiguration();
- assertEquals(expectedXml2, xmlConfiguration);
- }
}