Repository: logging-log4j2 Updated Branches: refs/heads/master 358c4579b -> d49c49fd6
New SocketAppender factory API is now type safe. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d49c49fd Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d49c49fd Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d49c49fd Branch: refs/heads/master Commit: d49c49fd65720f04c5d0c29c5747174697457e80 Parents: 358c457 Author: ggregory <ggreg...@apache.org> Authored: Wed Dec 2 09:21:11 2015 -0800 Committer: ggregory <ggreg...@apache.org> Committed: Wed Dec 2 09:21:11 2015 -0800 ---------------------------------------------------------------------- .../log4j/core/appender/SocketAppender.java | 43 +++++++++----------- .../log4j/core/appender/SocketAppenderTest.java | 22 +++++----- .../net/server/AbstractSocketServerTest.java | 10 ++--- .../core/net/server/SslXmlSocketServerTest.java | 4 +- 4 files changed, 37 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d49c49fd/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java index 89410c6..cda19e4 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SocketAppender.java @@ -77,15 +77,15 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM * * @param host * The name of the host to connect to. - * @param portNum + * @param port * The port to connect to on the target host. - * @param protocolIn + * @param protocol * The Protocol to use. * @param sslConfig * The SSL configuration file for TCP/SSL, ignored for UPD. * @param connectTimeoutMillis * the connect timeout in milliseconds. - * @param delayMillis + * @param reconnectDelayMillis * The interval in which failed writes should be retried. * @param immediateFail * True if the write should fail if no socket is immediately available. @@ -93,7 +93,7 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM * The name of the Appender. * @param immediateFlush * "true" if data should be flushed on each write. - * @param ignore + * @param ignoreExceptions * If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise they * are propagated to the caller. * @param layout @@ -110,27 +110,22 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM public static SocketAppender createAppender( // @formatter:off @PluginAttribute("host") final String host, - @PluginAttribute("port") final String portNum, - @PluginAttribute("protocol") final Protocol protocolIn, + @PluginAttribute(value = "port", defaultInt = 0) final int port, + @PluginAttribute("protocol") final Protocol protocol, @PluginElement("SSL") final SslConfiguration sslConfig, @PluginAttribute(value = "connectTimeoutMillis", defaultInt = 0) final int connectTimeoutMillis, @PluginAliases("reconnectionDelay") // deprecated - @PluginAttribute("reconnectionDelayMillis") final String delayMillis, - @PluginAttribute("immediateFail") final String immediateFail, + @PluginAttribute(value = "reconnectionDelayMillis", defaultInt = 0) final int reconnectDelayMillis, + @PluginAttribute(value = "immediateFail", defaultBoolean = true) final boolean immediateFail, @PluginAttribute("name") final String name, - @PluginAttribute("immediateFlush") final String immediateFlush, - @PluginAttribute("ignoreExceptions") final String ignore, + @PluginAttribute(value = "immediateFlush", defaultBoolean = true) boolean immediateFlush, + @PluginAttribute(value = "ignoreExceptions", defaultBoolean = true) final boolean ignoreExceptions, @PluginElement("Layout") Layout<? extends Serializable> layout, @PluginElement("Filter") final Filter filter, - @PluginAttribute("advertise") final String advertise, + @PluginAttribute(value = "advertise", defaultBoolean = false) final boolean advertise, @PluginConfiguration final Configuration config) { // @formatter:on - boolean isFlush = Booleans.parseBoolean(immediateFlush, true); - final boolean isAdvertise = Boolean.parseBoolean(advertise); - final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true); - final boolean fail = Booleans.parseBoolean(immediateFail, true); - final int reconnectDelayMillis = AbstractAppender.parseInt(delayMillis, 0); - final int port = AbstractAppender.parseInt(portNum, 0); + if (layout == null) { layout = SerializedLayout.createLayout(); } @@ -140,16 +135,16 @@ public class SocketAppender extends AbstractOutputStreamAppender<AbstractSocketM return null; } - final Protocol protocol = protocolIn != null ? protocolIn : Protocol.TCP; - if (protocol == Protocol.UDP) { - isFlush = true; + final Protocol actualProtocol = protocol != null ? protocol : Protocol.TCP; + if (actualProtocol == Protocol.UDP) { + immediateFlush = true; } - final AbstractSocketManager manager = createSocketManager(name, protocol, host, port, connectTimeoutMillis, - sslConfig, reconnectDelayMillis, fail, layout); + final AbstractSocketManager manager = createSocketManager(name, actualProtocol, host, port, connectTimeoutMillis, + sslConfig, reconnectDelayMillis, immediateFail, layout); - return new SocketAppender(name, layout, filter, manager, ignoreExceptions, isFlush, - isAdvertise ? config.getAdvertiser() : null); + return new SocketAppender(name, layout, filter, manager, ignoreExceptions, immediateFlush, + advertise ? config.getAdvertiser() : null); } /** http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d49c49fd/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java index 9a7f9d5..87b06cb 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java @@ -57,9 +57,9 @@ public class SocketAppenderTest { private static final int PORTNUM1 = AvailablePortFinder.getNextAvailable(); private static final int PORTNUM2 = AvailablePortFinder.getNextAvailable(); - private static final String PORT = String.valueOf(PORTNUM1); - private static final String DYN_PORT = String.valueOf(PORTNUM2); - private static final String ERROR_PORT = String.valueOf(AvailablePortFinder.getNextAvailable()); + private static final int PORT = PORTNUM1; + private static final int DYN_PORT = PORTNUM2; + private static final int ERROR_PORT = AvailablePortFinder.getNextAvailable(); private static BlockingQueue<LogEvent> list = new ArrayBlockingQueue<>(10); @@ -104,8 +104,8 @@ public class SocketAppenderTest { @Test public void testTcpAppender() throws Exception { - final SocketAppender appender = SocketAppender.createAppender("localhost", PORT, Protocol.TCP, null, 0, "-1", - "false", "Test", null, null, null, null, null, null); + final SocketAppender appender = SocketAppender.createAppender("localhost", PORT, Protocol.TCP, null, 0, -1, + false, "Test", true, true, null, null, false, null); appender.start(); // set appender on root and set level to debug @@ -144,16 +144,16 @@ public class SocketAppenderTest { @Test public void testDefaultProtocol() throws Exception { - final SocketAppender appender = SocketAppender.createAppender("localhost", PORT, (Protocol) null, null, 0, "-1", - "false", "Test", null, null, null, null, null, null); + final SocketAppender appender = SocketAppender.createAppender("localhost", PORT, (Protocol) null, null, 0, -1, + false, "Test", true, true, null, null, false, null); assertNotNull(appender); } @Test public void testUdpAppender() throws Exception { - final SocketAppender appender = SocketAppender.createAppender("localhost", PORT, Protocol.UDP, null, 0, "-1", - "false", "Test", null, null, null, null, null, null); + final SocketAppender appender = SocketAppender.createAppender("localhost", PORT, Protocol.UDP, null, 0, -1, + false, "Test", true, true, null, null, false, null); appender.start(); // set appender on root and set level to debug @@ -171,7 +171,7 @@ public class SocketAppenderTest { public void testTcpAppenderDeadlock() throws Exception { final SocketAppender appender = SocketAppender.createAppender("localhost", DYN_PORT, Protocol.TCP, null, 0, - "100", "false", "Test", null, null, null, null, null, null); + 100, false, "Test", true, true, null, null, false, null); appender.start(); // set appender on root and set level to debug root.addAppender(appender); @@ -190,7 +190,7 @@ public class SocketAppenderTest { public void testTcpAppenderNoWait() throws Exception { final SocketAppender appender = SocketAppender.createAppender("localhost", ERROR_PORT, Protocol.TCP, null, 0, - "100", "true", "Test", null, "false", null, null, null, null); + 100, true, "Test", true, false, null, null, false, null); appender.start(); // set appender on root and set level to debug root.addAppender(appender); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d49c49fd/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/AbstractSocketServerTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/AbstractSocketServerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/AbstractSocketServerTest.java index 18f450a..06adc8a 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/AbstractSocketServerTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/AbstractSocketServerTest.java @@ -59,19 +59,19 @@ public abstract class AbstractSocketServerTest { static final int PORT_NUM = AvailablePortFinder.getNextAvailable(); - static final String PORT = String.valueOf(PORT_NUM); + static final int PORT = PORT_NUM; private final LoggerContext ctx = LoggerContext.getContext(false); private final boolean expectLengthException; - protected final String port; + protected final int port; protected final Protocol protocol; private final Logger rootLogger = ctx.getLogger(AbstractSocketServerTest.class.getSimpleName()); - protected AbstractSocketServerTest(final Protocol protocol, final String port, final boolean expectLengthException) { + protected AbstractSocketServerTest(final Protocol protocol, final int port, final boolean expectLengthException) { this.protocol = protocol; this.port = port; this.expectLengthException = expectLengthException; @@ -206,8 +206,8 @@ public abstract class AbstractSocketServerTest { protected SocketAppender createSocketAppender(final Filter socketFilter, final Layout<? extends Serializable> socketLayout) { - return SocketAppender.createAppender("localhost", this.port, this.protocol, null, 0, "-1", null, - "Test", "true", "false", socketLayout, socketFilter, null, null); + return SocketAppender.createAppender("localhost", this.port, this.protocol, null, 0, -1, true, + "Test", true, false, socketLayout, socketFilter, false, null); } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d49c49fd/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/SslXmlSocketServerTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/SslXmlSocketServerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/SslXmlSocketServerTest.java index 3eafa45..64e275b 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/SslXmlSocketServerTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/SslXmlSocketServerTest.java @@ -51,8 +51,8 @@ public class SslXmlSocketServerTest extends AbstractSocketServerTest { @Override protected SocketAppender createSocketAppender(final Filter socketFilter, final Layout<? extends Serializable> socketLayout) { - return SocketAppender.createAppender("localhost", this.port, this.protocol, sslConfig, 0, "-1", null, - "Test", "true", "false", socketLayout, socketFilter, null, null); + return SocketAppender.createAppender("localhost", this.port, this.protocol, sslConfig, 0, -1, true, + "Test", true, false, socketLayout, socketFilter, false, null); } @BeforeClass