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 2015/12/02 18:21:16 UTC

logging-log4j2 git commit: New SocketAppender factory API is now type safe.

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 <gg...@apache.org>
Authored: Wed Dec 2 09:21:11 2015 -0800
Committer: ggregory <gg...@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