You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2009/09/18 11:09:46 UTC
svn commit: r816549 -
/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/
Author: rdonkin
Date: Fri Sep 18 09:09:46 2009
New Revision: 816549
URL: http://svn.apache.org/viewvc?rev=816549&view=rev
Log:
Convert to Java 1.5 and improve javadocs
Modified:
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/AbstractProtocolServer.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFDelimitedByteBuffer.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFTerminatedReader.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ConnectionPerIpMap.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CopyInputStream.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ServerConnection.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SimpleConnectionManager.java
james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SplitOutputStream.java
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/AbstractProtocolServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/AbstractProtocolServer.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/AbstractProtocolServer.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/AbstractProtocolServer.java Fri Sep 18 09:09:46 2009
@@ -283,11 +283,11 @@
serverSocketType = confSocketType;
}
- StringBuffer infoBuffer;
+ StringBuilder infoBuffer;
threadGroup = conf.getChild("threadGroup").getValue(null);
if (threadGroup != null) {
infoBuffer =
- new StringBuffer(64)
+ new StringBuilder(64)
.append(getServiceType())
.append(" uses thread group: ")
.append(threadGroup);
@@ -302,7 +302,7 @@
if( null != bindAddress ) {
bindTo = InetAddress.getByName(bindAddress);
infoBuffer =
- new StringBuffer(64)
+ new StringBuilder(64)
.append(getServiceType())
.append(" bound to: ")
.append(bindTo);
@@ -318,7 +318,7 @@
timeout = handlerConfiguration.getChild(TIMEOUT_NAME).getValueAsInteger(DEFAULT_TIMEOUT);
infoBuffer =
- new StringBuffer(64)
+ new StringBuilder(64)
.append(getServiceType())
.append(" handler connection timeout is: ")
.append(timeout);
@@ -327,7 +327,7 @@
backlog = conf.getChild(BACKLOG_NAME).getValueAsInteger(DEFAULT_BACKLOG);
infoBuffer =
- new StringBuffer(64)
+ new StringBuilder(64)
.append(getServiceType())
.append(" connection backlog is: ")
.append(backlog);
@@ -347,7 +347,7 @@
} else {
connectionLimit = new Integer(connectionManager.getMaximumNumberOfOpenConnections());
}
- infoBuffer = new StringBuffer(128)
+ infoBuffer = new StringBuilder(128)
.append(getServiceType())
.append(" will allow a maximum of ")
.append(connectionLimit.intValue())
@@ -369,7 +369,7 @@
} else {
connPerIP = connectionManager.getMaximumNumberOfOpenConnectionsPerIP();
}
- infoBuffer = new StringBuffer(128)
+ infoBuffer = new StringBuilder(128)
.append(getServiceType())
.append(" will allow a maximum of ")
.append(connPerIP)
@@ -426,7 +426,7 @@
}
private void configureHelloName(Configuration handlerConfiguration) {
- StringBuffer infoBuffer;
+ StringBuilder infoBuffer;
String hostName = null;
try {
hostName = dnsService.getHostName(dnsService.getLocalHost());
@@ -435,7 +435,7 @@
}
infoBuffer =
- new StringBuffer(64)
+ new StringBuilder(64)
.append(getServiceType())
.append(" is running on: ")
.append(hostName);
@@ -455,7 +455,7 @@
helloName = null;
}
infoBuffer =
- new StringBuffer(64)
+ new StringBuilder(64)
.append(getServiceType())
.append(" handler hello name is: ")
.append(helloName);
@@ -542,7 +542,7 @@
private String getBindingErrorMessage(BindException e) {
// general info about binding error
- StringBuffer errorMessage = new StringBuffer();
+ StringBuilder errorMessage = new StringBuilder();
errorMessage.append("FATAL ERROR when starting service '").append(getServiceType()).append("'! ");
errorMessage.append("could not bind to ");
errorMessage.append(bindTo == null ? "0.0.0.0" : bindTo.toString());
@@ -566,7 +566,7 @@
ServerSocket serverSocket = factory.createServerSocket(port, backlog, bindTo);
if (null == connectionName) {
- final StringBuffer sb = new StringBuffer();
+ final StringBuilder sb = new StringBuilder();
sb.append(serverSocketType);
sb.append(':');
sb.append(port);
@@ -610,8 +610,8 @@
}
private void initializeHandlerPool() throws Exception {
- StringBuffer logBuffer =
- new StringBuffer(64)
+ StringBuilder logBuffer =
+ new StringBuilder(64)
.append(getServiceType())
.append(" started ")
.append(connectionName);
@@ -658,8 +658,8 @@
m_disposed = true;
if( getLogger().isDebugEnabled() )
{
- StringBuffer infoBuffer =
- new StringBuffer(64).append(getServiceType()).append(
+ StringBuilder infoBuffer =
+ new StringBuilder(64).append(getServiceType()).append(
" dispose... ").append(connectionName);
getLogger().debug(infoBuffer.toString());
}
@@ -667,8 +667,8 @@
try {
connectionManager.disconnect(connectionName, true);
} catch (final Exception e) {
- StringBuffer warnBuffer =
- new StringBuffer(64)
+ StringBuilder warnBuffer =
+ new StringBuilder(64)
.append("Error disconnecting ")
.append(getServiceType())
.append(": ");
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFDelimitedByteBuffer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFDelimitedByteBuffer.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFDelimitedByteBuffer.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFDelimitedByteBuffer.java Fri Sep 18 09:09:46 2009
@@ -23,9 +23,9 @@
import java.io.IOException;
import java.io.InputStream;
-/*
- * A simple, synchronized, queue of CRLF-delimited lines.
- *
+/**
+ * <p>A simple, synchronized, queue of CRLF-delimited lines.</p>
+ * <p>
* NOTA BENE: as bytes arrive, they are buffered internally up to a
* configured maximum. The maximum is intended to reflect a line length
* limiter, but there is a potential corner case that should be
@@ -40,12 +40,12 @@
* flooding attacks, this does not appear to be a particularly critical
* corner case. We simply need to make sure that the working buffer is
* at least twice the size of the maximum desired line length.
- *
+ * </p><p>
* After buffering the incoming data, it is scanned for CRLF. As each
* line is found, it is moved to an ArrayList of Line objects. When all
* data has been scanned, any remaining bytes are shifted within the
* working buffer to prepare for the next packet.
- *
+ * </p><p>
* The code enforces CRLF pairing (RFC 2821 #2.7.1). The Line object,
* which is for internal use only, can hold the bytes for each line or
* record an exception (line termination or line length) associated
@@ -53,14 +53,16 @@
* are rethrown during the read operation, rather than during the write
* operation, so that the order of responses perserves the order of
* input.
- *
+ * </p><p>
* This code does not handle dot stuffing. Dot Stuffing, Message size
* limiting, and buffering of the message in a file are all expected to
* be performed by the I/O handler associated with the DATA accumulation
* state.
+ * </p>
*/
public class CRLFDelimitedByteBuffer {
+ @SuppressWarnings("serial")
static public class TerminationException extends java.io.IOException {
private int where;
public TerminationException(int where) {
@@ -78,6 +80,7 @@
}
}
+ @SuppressWarnings("serial")
static public class LineLengthExceededException extends java.io.IOException {
public LineLengthExceededException(String s) {
super(s);
@@ -92,7 +95,7 @@
public CRLFDelimitedByteBuffer(InputStream input, int maxLineLength) {
this.input = input;
- lines = new java.util.ArrayList();
+ lines = new java.util.ArrayList<Line>();
workLine = new byte[maxLineLength];
}
@@ -157,10 +160,12 @@
java.io.IOException e;
byte[] bytes;
+ @SuppressWarnings("unused")
public Line(byte[] data) {
bytes = data;
}
+ @SuppressWarnings("unused")
public Line(String data) {
bytes = data.getBytes();
}
@@ -183,7 +188,7 @@
}
}
- private java.util.ArrayList lines;
+ private java.util.ArrayList<Line> lines;
private byte[] workLine;
private int writeindex = 0;
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFTerminatedReader.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFTerminatedReader.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFTerminatedReader.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CRLFTerminatedReader.java Fri Sep 18 09:09:46 2009
@@ -34,6 +34,7 @@
*/
public class CRLFTerminatedReader extends Reader {
+ @SuppressWarnings("serial")
public class TerminationException extends IOException {
private int where;
public TerminationException(int where) {
@@ -51,6 +52,7 @@
}
}
+ @SuppressWarnings("serial")
public class LineLengthExceededException extends IOException {
public LineLengthExceededException(String s) {
super(s);
@@ -75,7 +77,7 @@
this(in);
}
- private StringBuffer lineBuffer = new StringBuffer();
+ private StringBuilder lineBuffer = new StringBuilder();
private final int
EOF = -1,
CR = 13,
@@ -99,7 +101,7 @@
*/
public String readLine() throws IOException{
- //start with the StringBuffer empty
+ //start with the buffer empty
lineBuffer.delete(0, lineBuffer.length());
/* This boolean tells which state we are in,
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ConnectionPerIpMap.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ConnectionPerIpMap.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ConnectionPerIpMap.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ConnectionPerIpMap.java Fri Sep 18 09:09:46 2009
@@ -30,9 +30,9 @@
public class ConnectionPerIpMap {
/**
- * A HashMap of clientip and connections
+ * A HashMap of client ip and connections
*/
- private final HashMap connectionPerIP = new HashMap();
+ private final HashMap<String, Integer> connectionPerIP = new HashMap<String, Integer>();
/**
* Raise the connectionCount for the given ipAdrress
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CopyInputStream.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CopyInputStream.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CopyInputStream.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/CopyInputStream.java Fri Sep 18 09:09:46 2009
@@ -36,7 +36,7 @@
private Log log;
- StringBuffer logString = new StringBuffer();
+ StringBuilder logString = new StringBuilder();
private boolean DEEP_DEBUG = false;
@@ -52,7 +52,7 @@
if (DEEP_DEBUG) {
if (in == 10) {
getLog().debug(logString);
- logString = new StringBuffer();
+ logString = new StringBuilder();
} else if (in != 13) {
logString.append((char) in);
}
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ServerConnection.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ServerConnection.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ServerConnection.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ServerConnection.java Fri Sep 18 09:09:46 2009
@@ -112,7 +112,7 @@
/**
* A collection of client connection runners.
*/
- private final ArrayList clientConnectionRunners = new ArrayList();
+ private final ArrayList<ClientConnectionRunner> clientConnectionRunners = new ArrayList<ClientConnectionRunner>();
/**
@@ -203,9 +203,9 @@
getLogger().debug("Closed server connection - cleaning up clients - " + this.toString());
synchronized (clientConnectionRunners) {
- Iterator runnerIterator = clientConnectionRunners.iterator();
+ Iterator<ClientConnectionRunner> runnerIterator = clientConnectionRunners.iterator();
while( runnerIterator.hasNext() ) {
- ClientConnectionRunner runner = (ClientConnectionRunner)runnerIterator.next();
+ ClientConnectionRunner runner = runnerIterator.next();
runner.dispose();
runner = null;
}
@@ -281,8 +281,8 @@
}
if ((getLogger().isDebugEnabled()) && (serverConnectionThread != null)) {
- StringBuffer debugBuffer =
- new StringBuffer(128)
+ StringBuilder debugBuffer =
+ new StringBuilder(128)
.append(serverConnectionThread.getName())
.append(" is listening on ")
.append(serverSocket.toString());
@@ -322,10 +322,10 @@
if (getLogger().isWarnEnabled()) {
getLogger().warn("Maximum number of open connections exceeded - refusing connection. Current number of connections is " + clientConnectionRunners.size());
if (getLogger().isInfoEnabled()) {
- Iterator runnerIterator = clientConnectionRunners.iterator();
+ Iterator<ClientConnectionRunner> runnerIterator = clientConnectionRunners.iterator();
getLogger().info("Connections: ");
while( runnerIterator.hasNext() ) {
- getLogger().info(" " + ((ClientConnectionRunner)runnerIterator.next()).toString());
+ getLogger().info(" " + runnerIterator.next());
}
}
}
@@ -522,8 +522,8 @@
if (clientSocket == null) {
return "invalid socket";
}
- StringBuffer connectionBuffer
- = new StringBuffer(256)
+ StringBuilder connectionBuffer
+ = new StringBuilder(256)
.append("connection on ")
.append(clientSocket.getLocalAddress().getHostAddress().toString())
.append(":")
@@ -552,6 +552,7 @@
/**
* @see org.apache.avalon.excalibur.pool.ObjectFactory#getCreatedClass()
*/
+ @SuppressWarnings("unchecked")
public Class getCreatedClass() {
return ClientConnectionRunner.class;
}
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SimpleConnectionManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SimpleConnectionManager.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SimpleConnectionManager.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SimpleConnectionManager.java Fri Sep 18 09:09:46 2009
@@ -68,9 +68,9 @@
* The map of connection name / server connections managed by this connection
* manager.
*/
- private final HashMap connectionMap = new HashMap();
+ private final HashMap<String, ServerConnection> connectionMap = new HashMap<String, ServerConnection>();
/**
- * The idle timeout for the individual sockets spawed from the server socket.
+ * The idle timeout for the individual sockets spawned from the server socket.
*/
protected int timeout = 0;
/**
@@ -102,21 +102,21 @@
maxOpenConn = configuration.getChild("max-connections").getValueAsInteger(DEFAULT_MAX_CONNECTIONS);
maxOpenConnPerIP = configuration.getChild("max-connections-per-ip").getValueAsInteger(DEFAULT_MAX_CONNECTIONS_PER_IP);
if (timeout < 0) {
- StringBuffer exceptionBuffer =
- new StringBuffer(128).append("Specified socket timeout value of ").append(timeout).append(
+ StringBuilder exceptionBuffer =
+ new StringBuilder(128).append("Specified socket timeout value of ").append(timeout).append(
" is not a legal value.");
throw new ConfigurationException(exceptionBuffer.toString());
}
if (maxOpenConn < 0) {
- StringBuffer exceptionBuffer =
- new StringBuffer(128).append("Specified maximum number of open connections of ").append(
+ StringBuilder exceptionBuffer =
+ new StringBuilder(128).append("Specified maximum number of open connections of ").append(
maxOpenConn).append(
" is not a legal value.");
throw new ConfigurationException(exceptionBuffer.toString());
}
if (maxOpenConnPerIP < 0) {
- StringBuffer exceptionBuffer =
- new StringBuffer(128).append("Specified maximum number of open connections per IP of ").append(
+ StringBuilder exceptionBuffer =
+ new StringBuilder(128).append("Specified maximum number of open connections per IP of ").append(
maxOpenConnPerIP).append(
" is not a legal value.");
throw new ConfigurationException(exceptionBuffer.toString());
Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SplitOutputStream.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SplitOutputStream.java?rev=816549&r1=816548&r2=816549&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SplitOutputStream.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/SplitOutputStream.java Fri Sep 18 09:09:46 2009
@@ -31,7 +31,7 @@
private OutputStream debugOutputStream;
- StringBuffer logString = new StringBuffer();
+ StringBuilder logString = new StringBuilder();
private boolean DEEP_DEBUG = false;
@@ -54,7 +54,7 @@
if (DEEP_DEBUG) {
if (b == 10) {
getLog().debug(logString);
- logString = new StringBuffer();
+ logString = new StringBuilder();
} else if (b != 13) {
logString.append((char) b);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org