Hey, I just noticed this, but can we remove the dependency on 
com.beust.jcommander for TcpSocketServer? This is a standalone app and it would 
be nice for users if it could be run with just the core and api jars. 

Sent from my iPhone

> On Jan 4, 2017, at 12:52, mattsic...@apache.org wrote:
> 
> Repository: logging-log4j2
> Updated Branches:
>  refs/heads/master 89b229755 -> fe4296a4c
> 
> 
> Refactor duplicate await shutdown code
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
> Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/5bc69e29
> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/5bc69e29
> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5bc69e29
> 
> Branch: refs/heads/master
> Commit: 5bc69e295bca1714c2c2eca1a848ca3469a3aed8
> Parents: 89b2297
> Author: Matt Sicker <matt.sic...@spr.com>
> Authored: Tue Jan 3 21:39:08 2017 -0600
> Committer: Matt Sicker <matt.sic...@spr.com>
> Committed: Tue Jan 3 21:39:08 2017 -0600
> 
> ----------------------------------------------------------------------
> .../core/net/server/AbstractSocketServer.java   | 28 ++++++++++++++++----
> .../log4j/core/net/server/TcpSocketServer.java  | 24 ++++-------------
> .../log4j/core/net/server/UdpSocketServer.java  | 18 +++----------
> 3 files changed, 31 insertions(+), 39 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5bc69e29/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java
> ----------------------------------------------------------------------
> diff --git 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java
>  
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java
> index 80ba6f0..9836694 100644
> --- 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java
> +++ 
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/AbstractSocketServer.java
> @@ -16,13 +16,14 @@
>  */
> package org.apache.logging.log4j.core.net.server;
> 
> +import java.io.BufferedReader;
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.FileNotFoundException;
> import java.io.IOException;
> import java.io.InputStream;
> +import java.io.InputStreamReader;
> import java.net.InetAddress;
> -import java.net.MalformedURLException;
> import java.net.URI;
> import java.net.URL;
> import java.util.Objects;
> @@ -44,10 +45,10 @@ import org.apache.logging.log4j.util.Strings;
> 
> /**
>  * Abstract socket server for TCP and UDP implementations.
> - * 
> + *
>  * @param <T>
>  *            The kind of input stream read
> - * 
> + *
>  *            TODO Make a LifeCycle
>  */
> public abstract class AbstractSocketServer<T extends InputStream> extends 
> LogEventListener implements Runnable {
> @@ -158,7 +159,7 @@ public abstract class AbstractSocketServer<T extends 
> InputStream> extends LogEve
> 
>     /**
>      * Creates a new socket server.
> -     * 
> +     *
>      * @param port
>      *            listen to this port
>      * @param logEventInput
> @@ -179,7 +180,7 @@ public abstract class AbstractSocketServer<T extends 
> InputStream> extends LogEve
> 
>     /**
>      * Start this server in a new thread.
> -     * 
> +     *
>      * @return the new thread that running this server.
>      */
>     public Thread startNewThread() {
> @@ -188,4 +189,21 @@ public abstract class AbstractSocketServer<T extends 
> InputStream> extends LogEve
>         return thread;
>     }
> 
> +    public abstract void shutdown() throws Exception;
> +
> +    public void awaitTermination(final Thread serverThread) throws Exception 
> {
> +        final BufferedReader reader = new BufferedReader(new 
> InputStreamReader(System.in));
> +        while (true) {
> +            final String line = reader.readLine();
> +            if (line == null
> +                || line.equalsIgnoreCase("quit")
> +                || line.equalsIgnoreCase("stop")
> +                || line.equalsIgnoreCase("exit")) {
> +                this.shutdown();
> +                serverThread.join();
> +                break;
> +            }
> +        }
> +    }
> +
> }
> 
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5bc69e29/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/TcpSocketServer.java
> ----------------------------------------------------------------------
> diff --git 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/TcpSocketServer.java
>  
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/TcpSocketServer.java
> index 636e6f4..e86b382 100644
> --- 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/TcpSocketServer.java
> +++ 
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/TcpSocketServer.java
> @@ -16,29 +16,25 @@
>  */
> package org.apache.logging.log4j.core.net.server;
> 
> -import java.io.BufferedReader;
> import java.io.EOFException;
> import java.io.IOException;
> import java.io.InputStream;
> -import java.io.InputStreamReader;
> import java.io.ObjectInputStream;
> import java.io.OptionalDataException;
> import java.net.InetAddress;
> import java.net.ServerSocket;
> import java.net.Socket;
> -import java.nio.charset.Charset;
> import java.util.Map;
> import java.util.concurrent.ConcurrentHashMap;
> import java.util.concurrent.ConcurrentMap;
> 
> +import com.beust.jcommander.Parameter;
> +import com.beust.jcommander.validators.PositiveInteger;
> import org.apache.logging.log4j.core.config.ConfigurationFactory;
> import org.apache.logging.log4j.core.util.BasicCommandLineArguments;
> import org.apache.logging.log4j.core.util.Log4jThread;
> import org.apache.logging.log4j.message.EntryMessage;
> 
> -import com.beust.jcommander.Parameter;
> -import com.beust.jcommander.validators.PositiveInteger;
> -
> /**
>  * Listens for Log4j events on a TCP server socket and passes them on to 
> Log4j.
>  * 
> @@ -194,20 +190,9 @@ public class TcpSocketServer<T extends InputStream> 
> extends AbstractSocketServer
>         }
>         final TcpSocketServer<ObjectInputStream> socketServer = 
> TcpSocketServer
>                 .createSerializedSocketServer(cla.getPort(), 
> cla.getBacklog(), cla.getLocalBindAddress());
> -        final Thread serverThread = new Log4jThread(socketServer);
> -        serverThread.start();
> +        final Thread serverThread = socketServer.startNewThread();
>         if (cla.isInteractive()) {
> -            final Charset enc = Charset.defaultCharset();
> -            final BufferedReader reader = new BufferedReader(new 
> InputStreamReader(System.in, enc));
> -            while (true) {
> -                final String line = reader.readLine();
> -                if (line == null || line.equalsIgnoreCase("Quit") || 
> line.equalsIgnoreCase("Stop")
> -                        || line.equalsIgnoreCase("Exit")) {
> -                    socketServer.shutdown();
> -                    serverThread.join();
> -                    break;
> -                }
> -            }
> +            socketServer.awaitTermination(serverThread);
>         }
>     }
> 
> @@ -321,6 +306,7 @@ public class TcpSocketServer<T extends InputStream> 
> extends AbstractSocketServer
>      * 
>      * @throws IOException if the server socket could not be closed
>      */
> +    @Override
>     public void shutdown() throws IOException {
>         final EntryMessage entry = logger.traceEntry();
>         setActive(false);
> 
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5bc69e29/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/UdpSocketServer.java
> ----------------------------------------------------------------------
> diff --git 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/UdpSocketServer.java
>  
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/UdpSocketServer.java
> index 427a365..ed04f69 100644
> --- 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/UdpSocketServer.java
> +++ 
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/UdpSocketServer.java
> @@ -16,12 +16,10 @@
>  */
> package org.apache.logging.log4j.core.net.server;
> 
> -import java.io.BufferedReader;
> import java.io.ByteArrayInputStream;
> import java.io.EOFException;
> import java.io.IOException;
> import java.io.InputStream;
> -import java.io.InputStreamReader;
> import java.io.ObjectInputStream;
> import java.io.OptionalDataException;
> import java.net.DatagramPacket;
> @@ -29,7 +27,6 @@ import java.net.DatagramSocket;
> 
> import org.apache.logging.log4j.core.config.ConfigurationFactory;
> import org.apache.logging.log4j.core.util.BasicCommandLineArguments;
> -import org.apache.logging.log4j.core.util.Log4jThread;
> 
> /**
>  * Listens for Log4j events on a datagram socket and passes them on to Log4j. 
> @@ -97,19 +94,9 @@ public class UdpSocketServer<T extends InputStream> 
> extends AbstractSocketServer
>         }
>         final UdpSocketServer<ObjectInputStream> socketServer = 
> UdpSocketServer
>                 .createSerializedSocketServer(cla.getPort());
> -        final Thread serverThread = new Log4jThread(socketServer);
> -        serverThread.start();
> +        final Thread serverThread = socketServer.startNewThread();
>         if (cla.isInteractive()) {
> -            final BufferedReader reader = new BufferedReader(new 
> InputStreamReader(System.in));
> -            while (true) {
> -                final String line = reader.readLine();
> -                if (line == null || line.equalsIgnoreCase("Quit") || 
> line.equalsIgnoreCase("Stop")
> -                        || line.equalsIgnoreCase("Exit")) {
> -                    socketServer.shutdown();
> -                    serverThread.join();
> -                    break;
> -                }
> -            }
> +            socketServer.awaitTermination(serverThread);
>         }
>     }
> 
> @@ -173,6 +160,7 @@ public class UdpSocketServer<T extends InputStream> 
> extends AbstractSocketServer
>     /**
>      * Shutdown the server.
>      */
> +    @Override
>     public void shutdown() {
>         this.setActive(false);
>         Thread.currentThread().interrupt();
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to