This is an OK dependency IMO, it provides great bang for the buck. (I would say that of course since I added the dep)
Gary On Wed, Jan 4, 2017 at 7:30 AM, Matt Sicker <boa...@gmail.com> wrote: > I think that's from LOG4J2-1604. > > On 4 January 2017 at 07:48, Remko Popma <remko.po...@gmail.com> wrote: > >> 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/5 >> bc69e29 >> > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5 >> bc69e29 >> > >> > 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/5 >> bc69e29/log4j-core/src/main/java/org/apache/logging/log4j/co >> re/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/5 >> bc69e29/log4j-core/src/main/java/org/apache/logging/log4j/co >> re/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/5 >> bc69e29/log4j-core/src/main/java/org/apache/logging/log4j/co >> re/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 >> >> > > > -- > Matt Sicker <boa...@gmail.com> > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> JUnit in Action, Second Edition <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> Spring Batch in Action <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory