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 2014/03/26 22:15:18 UTC
svn commit: r1582057 - in /logging/log4j/log4j2/trunk:
log4j-core/src/main/java/org/apache/logging/log4j/core/net/
log4j-core/src/test/java/org/apache/logging/log4j/core/net/ src/changes/
Author: ggregory
Date: Wed Mar 26 21:15:18 2014
New Revision: 1582057
URL: http://svn.apache.org/r1582057
Log:
<action issue="LOG4J2-582" dev="ggregory" type="update">
Rename org.apache.logging.log4j.core.net.SocketServer to TCPSocketServer and refactor with UDP.
</action>
Added:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java (with props)
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketServer.java
- copied, changed from r1582054, logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SocketServer.java
Removed:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SocketServer.java
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UDPSocketServer.java
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/AbstractSocketServerTest.java
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/TCPSocketServerTest.java
logging/log4j/log4j2/trunk/src/changes/changes.xml
Added: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java?rev=1582057&view=auto
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java (added)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java Wed Mar 26 21:15:18 2014
@@ -0,0 +1,85 @@
+package org.apache.logging.log4j.core.net;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LogEventListener;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.xml.XMLConfiguration;
+import org.apache.logging.log4j.core.config.xml.XMLConfigurationFactory;
+
+public abstract class AbstractSocketServer extends LogEventListener {
+
+ /**
+ * Factory that creates a Configuration for the server.
+ */
+ protected static class ServerConfigurationFactory extends XMLConfigurationFactory {
+
+ private final String path;
+
+ public ServerConfigurationFactory(final String path) {
+ this.path = path;
+ }
+
+ @Override
+ public Configuration getConfiguration(final String name, final URI configLocation) {
+ if (path != null && path.length() > 0) {
+ File file = null;
+ ConfigurationSource source = null;
+ try {
+ file = new File(path);
+ final FileInputStream is = new FileInputStream(file);
+ source = new ConfigurationSource(is, file);
+ } catch (final FileNotFoundException ex) {
+ // Ignore this error
+ }
+ if (source == null) {
+ try {
+ final URL url = new URL(path);
+ source = new ConfigurationSource(url.openStream(), path);
+ } catch (final MalformedURLException mue) {
+ // Ignore this error
+ } catch (final IOException ioe) {
+ // Ignore this error
+ }
+ }
+
+ try {
+ if (source != null) {
+ return new XMLConfiguration(source);
+ }
+ } catch (final Exception ex) {
+ // Ignore this error.
+ }
+ System.err.println("Unable to process configuration at " + path + ", using default.");
+ }
+ return super.getConfiguration(name, configLocation);
+ }
+ }
+
+ protected final Logger logger;
+
+ protected static final int MAX_PORT = 65534;
+
+ private volatile boolean active = true;
+
+ public AbstractSocketServer(int port) {
+ this.logger = LogManager.getLogger(this.getClass().getName() + '.' + port);
+ }
+
+ protected boolean isActive() {
+ return this.active;
+ }
+
+ protected void setActive(boolean isActive) {
+ this.active = isActive;
+ }
+
+}
Propchange: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/AbstractSocketServer.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketServer.java (from r1582054, logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SocketServer.java)
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketServer.java?p2=logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketServer.java&p1=logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SocketServer.java&r1=1582054&r2=1582057&rev=1582057&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SocketServer.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TCPSocketServer.java Wed Mar 26 21:15:18 2014
@@ -47,13 +47,7 @@ import org.apache.logging.log4j.core.con
/**
* Listens for events over a socket connection.
*/
-public class SocketServer extends LogEventListener implements Runnable {
-
- private final Logger logger;
-
- private static final int MAX_PORT = 65534;
-
- private volatile boolean isActive = true;
+public class TCPSocketServer extends AbstractSocketServer implements Runnable {
private final ServerSocket server;
@@ -64,9 +58,9 @@ public class SocketServer extends LogEve
* @param port to listen on.
* @throws IOException If an error occurs.
*/
- public SocketServer(final int port) throws IOException {
+ public TCPSocketServer(final int port) throws IOException {
+ super(port);
this.server = new ServerSocket(port);
- this.logger = LogManager.getLogger(this.getClass().getName() + '.' + port);
}
/**
* Main startup for the server.
@@ -88,7 +82,7 @@ public class SocketServer extends LogEve
if (args.length == 2 && args[1].length() > 0) {
ConfigurationFactory.setConfigurationFactory(new ServerConfigurationFactory(args[1]));
}
- final SocketServer socketServer = new SocketServer(port);
+ final TCPSocketServer socketServer = new TCPSocketServer(port);
final Thread serverThread = new Thread(socketServer);
serverThread.start();
final Charset enc = Charset.defaultCharset();
@@ -111,7 +105,7 @@ public class SocketServer extends LogEve
* Shutdown the server.
*/
public void shutdown() {
- this.isActive = false;
+ setActive(false);
Thread.currentThread().interrupt();
}
@@ -120,7 +114,7 @@ public class SocketServer extends LogEve
*/
@Override
public void run() {
- while (isActive) {
+ while (isActive()) {
try {
// Accept incoming connections.
final Socket clientSocket = server.accept();
@@ -199,51 +193,4 @@ public class SocketServer extends LogEve
}
}
}
-
- /**
- * Factory that creates a Configuration for the server.
- */
- private static class ServerConfigurationFactory extends XMLConfigurationFactory {
-
- private final String path;
-
- public ServerConfigurationFactory(final String path) {
- this.path = path;
- }
-
- @Override
- public Configuration getConfiguration(final String name, final URI configLocation) {
- if (path != null && path.length() > 0) {
- File file = null;
- ConfigurationSource source = null;
- try {
- file = new File(path);
- final FileInputStream is = new FileInputStream(file);
- source = new ConfigurationSource(is, file);
- } catch (final FileNotFoundException ex) {
- // Ignore this error
- }
- if (source == null) {
- try {
- final URL url = new URL(path);
- source = new ConfigurationSource(url.openStream(), path);
- } catch (final MalformedURLException mue) {
- // Ignore this error
- } catch (final IOException ioe) {
- // Ignore this error
- }
- }
-
- try {
- if (source != null) {
- return new XMLConfiguration(source);
- }
- } catch (final Exception ex) {
- // Ignore this error.
- }
- System.err.println("Unable to process configuration at " + path + ", using default.");
- }
- return super.getConfiguration(name, configLocation);
- }
- }
}
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UDPSocketServer.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UDPSocketServer.java?rev=1582057&r1=1582056&r2=1582057&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UDPSocketServer.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UDPSocketServer.java Wed Mar 26 21:15:18 2014
@@ -32,10 +32,7 @@ import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.LogEventListener;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.xml.XMLConfiguration;
@@ -44,13 +41,7 @@ import org.apache.logging.log4j.core.con
/**
* Listens for events over a socket connection.
*/
-public class UDPSocketServer extends LogEventListener implements Runnable {
-
- private final Logger logger;
-
- private static final int MAX_PORT = 65534;
-
- private volatile boolean isActive = true;
+public class UDPSocketServer extends AbstractSocketServer implements Runnable {
private final DatagramSocket server;
@@ -66,8 +57,8 @@ public class UDPSocketServer extends Log
* If an error occurs.
*/
public UDPSocketServer(final int port) throws IOException {
+ super(port);
this.server = new DatagramSocket(port);
- this.logger = LogManager.getLogger(this.getClass().getName() + '.' + port);
}
/**
@@ -115,7 +106,7 @@ public class UDPSocketServer extends Log
* Shutdown the server.
*/
public void shutdown() {
- this.isActive = false;
+ this.setActive(false);
Thread.currentThread().interrupt();
}
@@ -124,7 +115,7 @@ public class UDPSocketServer extends Log
*/
@Override
public void run() {
- while (isActive) {
+ while (isActive()) {
try {
final byte[] buf = new byte[maxBufferSize];
final DatagramPacket packet = new DatagramPacket(buf, buf.length);
@@ -145,51 +136,4 @@ public class UDPSocketServer extends Log
}
}
}
-
- /**
- * Factory that creates a Configuration for the server.
- */
- private static class ServerConfigurationFactory extends XMLConfigurationFactory {
-
- private final String path;
-
- public ServerConfigurationFactory(final String path) {
- this.path = path;
- }
-
- @Override
- public Configuration getConfiguration(final String name, final URI configLocation) {
- if (path != null && path.length() > 0) {
- File file = null;
- ConfigurationSource source = null;
- try {
- file = new File(path);
- final FileInputStream is = new FileInputStream(file);
- source = new ConfigurationSource(is, file);
- } catch (final FileNotFoundException ex) {
- // Ignore this error
- }
- if (source == null) {
- try {
- final URL url = new URL(path);
- source = new ConfigurationSource(url.openStream(), path);
- } catch (final MalformedURLException mue) {
- // Ignore this error
- } catch (final IOException ioe) {
- // Ignore this error
- }
- }
-
- try {
- if (source != null) {
- return new XMLConfiguration(source);
- }
- } catch (final Exception ex) {
- // Ignore this error.
- }
- System.err.println("Unable to process configuration at " + path + ", using default.");
- }
- return super.getConfiguration(name, configLocation);
- }
- }
}
Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/AbstractSocketServerTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/AbstractSocketServerTest.java?rev=1582057&r1=1582056&r2=1582057&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/AbstractSocketServerTest.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/AbstractSocketServerTest.java Wed Mar 26 21:15:18 2014
@@ -20,6 +20,7 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import java.io.IOException;
+import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -28,6 +29,7 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.LoggerContext;
@@ -106,8 +108,9 @@ public abstract class AbstractSocketServ
protected void testServer(final String message1, final String message2) throws Exception {
final Filter socketFilter = new ThreadFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
final Filter serverFilter = new ThreadFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
+ final Layout<? extends Serializable> socketLayout = createLayout();
final SocketAppender appender = SocketAppender.createAppender("localhost", this.port, this.protocol, "-1", null, "Test", null,
- "false", null, socketFilter, null, null);
+ "false", socketLayout, socketFilter, null, null);
appender.start();
final ListAppender listApp = new ListAppender("Events", serverFilter, null, false, false);
listApp.start();
@@ -133,6 +136,10 @@ public abstract class AbstractSocketServ
assertTrue("Incorrect event", events.get(1).getMessage().getFormattedMessage().equals(message2));
}
+ protected Layout<? extends Serializable> createLayout() {
+ return null;
+ }
+
@Test
public void testShortMessages() throws Exception {
testServer(MESSAGE_1, MESSAGE_2);
Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/TCPSocketServerTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/TCPSocketServerTest.java?rev=1582057&r1=1582056&r2=1582057&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/TCPSocketServerTest.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/TCPSocketServerTest.java Wed Mar 26 21:15:18 2014
@@ -24,14 +24,14 @@ import org.junit.BeforeClass;
public class TCPSocketServerTest extends AbstractSocketServerTest {
private static final String PORT = "8198";
private static final int PORT_NUM = Integer.parseInt(PORT);
- private static SocketServer tcpSocketServer;
+ private static TCPSocketServer tcpSocketServer;
private static Thread thread;
@BeforeClass
public static void setupClass() throws Exception {
((LoggerContext) LogManager.getContext(false)).reconfigure();
- tcpSocketServer = new SocketServer(PORT_NUM);
+ tcpSocketServer = new TCPSocketServer(PORT_NUM);
thread = new Thread(tcpSocketServer);
thread.start();
}
Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1582057&r1=1582056&r2=1582057&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Wed Mar 26 21:15:18 2014
@@ -63,6 +63,9 @@
<action issue="LOG4J2-468" dev="rgoers" type="update">
Add support to add a LoggerConfig. Document two ways to modify the configuration.
</action>
+ <action issue="LOG4J2-582" dev="ggregory" type="update">
+ Rename org.apache.logging.log4j.core.net.SocketServer to TCPSocketServer and refactor with UDP.
+ </action>
</release>
<release version="2.0-rc1" date="2014-02-16" description="Bug fixes and enhancements">
<action dev="nickwilliams" type="delete">