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