I think that all those standalone servers in log4j-core should be moved to one or more new modules (see LOG4J-1650).
On Jan 4, 2017 7:43 PM, "Gary Gregory" <garydgreg...@gmail.com> wrote: > 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 >