Author: rdonkin
Date: Mon Sep  7 18:26:03 2009
New Revision: 812245

URL: http://svn.apache.org/viewvc?rev=812245&view=rev
Log:
Switch to CharSequence and StringBuilder to avoid intermediary string creation.

Modified:
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPResponse.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/HeloCmdHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/MailCmdHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/QuitCmdHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/RcptCmdHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/UnknownCmdHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/WelcomeMessageHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/esmtp/EhloCmdHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/hook/HookResult.java

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java
 Mon Sep  7 18:26:03 2009
@@ -198,15 +198,16 @@
             } else {
                 // Iterator i = esmtpextensions.iterator();
                 for (int k = 0; k < response.getLines().size(); k++) {
-                    StringBuffer respBuff = new StringBuffer(256);
+                    StringBuilder respBuff = new StringBuilder(256);
                     respBuff.append(response.getRetCode());
+                    final CharSequence line = response.getLines().get(k);
                     if (k == response.getLines().size() - 1) {
                         respBuff.append(" ");
-                        respBuff.append(response.getLines().get(k));
+                        respBuff.append(line);
                         helper.writeLoggedFlushedResponse(respBuff.toString());
                     } else {
                         respBuff.append("-");
-                        respBuff.append(response.getLines().get(k));
+                        respBuff.append(line);
                         helper.writeLoggedResponse(respBuff.toString());
                     }
                 }

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPResponse.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPResponse.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPResponse.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPResponse.java
 Mon Sep  7 18:26:03 2009
@@ -28,7 +28,7 @@
 public class SMTPResponse {
 
     private String retCode = null;
-    private List<String> lines = null;
+    private List<CharSequence> lines = null;
     private String rawLine = null;
     private boolean endSession = false;
     
@@ -36,18 +36,6 @@
     public SMTPResponse() {
         //TODO: Should we remove this constructor to force the developers to 
specify all needed informations ? 
     }
-       
-    /**
-     * @see #SMTPResponse(String, StringBuffer)
-     */
-    public SMTPResponse(String code, String description) {
-        if (code == null) throw new IllegalArgumentException("SMTPResponse 
code can not be null");
-        if (description == null) new IllegalArgumentException("SMTPResponse 
description can not be null");
-    
-        this.setRetCode(code);
-        this.appendLine(description);
-        this.rawLine = code + " " + description;
-    }
     
     /**
      * Construct a new SMTPResponse. The given code and description can not be 
null, if null an IllegalArgumentException
@@ -56,13 +44,13 @@
      * @param code the returnCode
      * @param description the description 
      */
-    public SMTPResponse(String code, StringBuffer description) {
+    public SMTPResponse(String code, CharSequence description) {
         if (code == null) throw new IllegalArgumentException("SMTPResponse 
code can not be null");
         if (description == null) new IllegalArgumentException("SMTPResponse 
description can not be null");
     
         this.setRetCode(code);
         this.appendLine(description);
-        this.rawLine = code + " " + description.toString();
+        this.rawLine = code + " " + description;
     }
     
     /**
@@ -75,7 +63,7 @@
         String args[] = rawLine.split(" ");
         if (args != null && args.length > 1) {
             this.setRetCode(args[0]);
-            this.appendLine(new 
StringBuffer(rawLine.substring(args[0].length()+1)));
+            this.appendLine(new 
StringBuilder(rawLine.substring(args[0].length()+1)));
         } else {
             throw new IllegalArgumentException("Invalid SMTPResponse format. 
Format should be [SMTPCode SMTPReply]");
         }
@@ -87,21 +75,14 @@
      * 
      * @param line the responseLine to append
      */
-    public void appendLine(String line) {
+    public void appendLine(CharSequence line) {
         if (lines == null) {
-            lines = new LinkedList<String>();
+            lines = new LinkedList<CharSequence>();
         }
         lines.add(line);
     }
     
     /**
-     * @see #appendLine(String)
-     */
-    public void appendLine(StringBuffer line) {
-        appendLine(line.toString());
-    }
-    
-    /**
      * Return the SMTPCode 
      * 
      * @return the SMTPCode
@@ -124,7 +105,7 @@
      * 
      * @return all responseLines
      */
-    public List<String> getLines() {
+    public List<CharSequence> getLines() {
         return lines;
     }
 

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/HeloCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/HeloCmdHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/HeloCmdHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/HeloCmdHandler.java
 Mon Sep  7 18:26:03 2009
@@ -59,7 +59,7 @@
             String parameters) {
         session.getConnectionState().put(SMTPSession.CURRENT_HELO_MODE,
                 COMMAND_NAME);
-        StringBuffer response = new StringBuffer();
+        StringBuilder response = new StringBuilder();
         response.append(session.getHelloName()).append(
                 " Hello ").append(parameters).append(" (").append(
                 session.getRemoteHost()).append(" [").append(

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/MailCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/MailCmdHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/MailCmdHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/MailCmdHandler.java
 Mon Sep  7 18:26:03 2009
@@ -94,7 +94,7 @@
      *            the argument passed in with the command by the SMTP client
      */
     private SMTPResponse doMAIL(SMTPSession session, String argument) {
-        StringBuffer responseBuffer = new StringBuffer();
+        StringBuilder responseBuffer = new StringBuilder();
         MailAddress sender = (MailAddress) session.getState().get(
                 SMTPSession.SENDER);
         responseBuffer.append(

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/QuitCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/QuitCmdHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/QuitCmdHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/QuitCmdHandler.java
 Mon Sep  7 18:26:03 2009
@@ -51,7 +51,7 @@
     private SMTPResponse doQUIT(SMTPSession session, String argument) {
         SMTPResponse ret;
         if ((argument == null) || (argument.length() == 0)) {
-            StringBuffer response = new StringBuffer();
+            StringBuilder response = new StringBuilder();
             response.append(
                     DSNStatus.getStatus(DSNStatus.SUCCESS,
                             DSNStatus.UNDEFINED_STATUS)).append(" ").append(

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/RcptCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/RcptCmdHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/RcptCmdHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/RcptCmdHandler.java
 Mon Sep  7 18:26:03 2009
@@ -85,7 +85,7 @@
                 CURRENT_RECIPIENT);
         rcptColl.add(recipientAddress);
         session.getState().put(SMTPSession.RCPT_LIST, rcptColl);
-        StringBuffer response = new StringBuffer();
+        StringBuilder response = new StringBuilder();
         response
                 .append(
                         DSNStatus.getStatus(DSNStatus.SUCCESS,

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/UnknownCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/UnknownCmdHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/UnknownCmdHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/UnknownCmdHandler.java
 Mon Sep  7 18:26:03 2009
@@ -47,7 +47,7 @@
      * @see 
org.apache.james.smtpserver.CommandHandler#onCommand(org.apache.james.smtpserver.SMTPSession,
 java.lang.String, java.lang.String) 
     **/
     public SMTPResponse onCommand(SMTPSession session, String command, String 
parameters) {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         result.append(DSNStatus.getStatus(DSNStatus.PERMANENT, 
DSNStatus.DELIVERY_INVALID_CMD))
                       .append(" Command ")
                       .append(command)

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/WelcomeMessageHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/WelcomeMessageHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/WelcomeMessageHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/WelcomeMessageHandler.java
 Mon Sep  7 18:26:03 2009
@@ -57,7 +57,7 @@
             // Initially greet the connector
             // Format is:  Sat, 24 Jan 1998 13:16:09 -0500
             welcomeResponse = new SMTPResponse(SMTPRetCode.SERVICE_READY,
-                          new StringBuffer(256)
+                          new StringBuilder(256)
                           .append(session.getHelloName())
                           .append(" SMTP Server (")
                           .append(SOFTWARE_TYPE)

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/esmtp/EhloCmdHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/esmtp/EhloCmdHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/esmtp/EhloCmdHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/esmtp/EhloCmdHandler.java
 Mon Sep  7 18:26:03 2009
@@ -62,7 +62,7 @@
         session.getConnectionState().put(SMTPSession.CURRENT_HELO_MODE,
                 COMMAND_NAME);
 
-        resp.appendLine(new StringBuffer(session.getHelloName()).append(" 
Hello ").append(argument)
+        resp.appendLine(new StringBuilder(session.getHelloName()).append(" 
Hello ").append(argument)
                 .append(" (").append(session.getRemoteHost()).append(" [")
                 .append(session.getRemoteIPAddress()).append("])"));
 

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
 Mon Sep  7 18:26:03 2009
@@ -209,7 +209,7 @@
                     String responseString = e.getMessage();
                     getLogger().info("Rejected message. Reject Message: " + 
responseString);
                     SMTPResponse resp = new SMTPResponse(responseString);
-                    return new 
HookResult(HookReturnCode.DENY,resp.getRetCode(),(String) 
resp.getLines().get(0));
+                    return new 
HookResult(HookReturnCode.DENY,resp.getRetCode(),resp.getLines().get(0));
                 }
             }
             

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/hook/HookResult.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/hook/HookResult.java?rev=812245&r1=812244&r2=812245&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/hook/HookResult.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/hook/HookResult.java
 Mon Sep  7 18:26:03 2009
@@ -36,10 +36,10 @@
      * @param smtpRetCode 
      * @param smtpDescription
      */
-    public HookResult(int result, String smtpRetCode, String smtpDescription) {
+    public HookResult(int result, String smtpRetCode, CharSequence 
smtpDescription) {
         this.result = result;
         this.smtpRetCode = smtpRetCode;
-        this.smtpDescription = smtpDescription;
+        this.smtpDescription = (smtpDescription == null) ? null : 
smtpDescription.toString();
     }
     
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to