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/16 12:56:31 UTC

svn commit: r815718 - in /james/server/trunk: avalon-socket-library/src/main/java/org/apache/james/socket/ imapserver-function/src/main/java/org/apache/james/imapserver/ nntpserver-function/src/main/java/org/apache/james/nntpserver/ pop3server-function...

Author: rdonkin
Date: Wed Sep 16 10:56:30 2009
New Revision: 815718

URL: http://svn.apache.org/viewvc?rev=815718&view=rev
Log:
JAMES-920 Add context to method signature and replace use of helper field with passed in context. https://issues.apache.org/jira/browse/JAMES-920

Modified:
    james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java
    james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java
    james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java
    james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java
    james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java
    james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/SMTPHandler.java

Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java?rev=815718&r1=815717&r2=815718&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/JamesConnectionBridge.java Wed Sep 16 10:56:30 2009
@@ -435,7 +435,7 @@
      * @throws IOException get thrown if an IO error is detected
      */
     public void handleProtocol() throws IOException {
-        protocolHandler.handleProtocol();
+        protocolHandler.handleProtocol(this);
     }
 
    /**

Modified: james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java?rev=815718&r1=815717&r2=815718&view=diff
==============================================================================
--- james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java (original)
+++ james/server/trunk/avalon-socket-library/src/main/java/org/apache/james/socket/ProtocolHandler.java Wed Sep 16 10:56:30 2009
@@ -25,10 +25,11 @@
 
     /**
      * Handle the protocol
+     * @param context not null
      * 
      * @throws IOException get thrown if an IO error is detected
      */
-    public abstract void handleProtocol() throws IOException;
+    public abstract void handleProtocol(ProtocolContext context) throws IOException;
 
     /**
      * Resets the handler data to a basic state.

Modified: james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java?rev=815718&r1=815717&r2=815718&view=diff
==============================================================================
--- james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java (original)
+++ james/server/trunk/imapserver-function/src/main/java/org/apache/james/imapserver/ImapHandler.java Wed Sep 16 10:56:30 2009
@@ -20,9 +20,7 @@
 package org.apache.james.imapserver;
 
 import java.io.IOException;
-import java.net.Socket;
 
-import org.apache.avalon.cornerstone.services.connection.ConnectionHandler;
 import org.apache.commons.logging.Log;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.encode.ImapResponseComposer;
@@ -30,8 +28,8 @@
 import org.apache.james.imap.main.ImapRequestHandler;
 import org.apache.james.imap.main.ImapSessionImpl;
 import org.apache.james.imap.main.OutputStreamImapResponseWriter;
-import org.apache.james.socket.ProtocolHandler;
 import org.apache.james.socket.ProtocolContext;
+import org.apache.james.socket.ProtocolHandler;
 
 /**
  * Handles IMAP connections.
@@ -72,46 +70,47 @@
     }
 
     /**
-     * @see ConnectionHandler#handleConnection(Socket)
+     * @see ProtocolHandler#handleProtocol(ProtocolContext)
      */
-    public void handleProtocol() throws IOException {
+    public void handleProtocol(final ProtocolContext context) throws IOException {
             getLogger().debug(
-                "Connection from " + helper.getRemoteHost() + " (" + helper.getRemoteIP()
+                "Connection from " + context.getRemoteHost() + " (" + context.getRemoteIP()
                         + ") opened.");
-            final OutputStreamImapResponseWriter writer = new OutputStreamImapResponseWriter( helper.getOutputStream() );
+            final OutputStreamImapResponseWriter writer = new OutputStreamImapResponseWriter( context.getOutputStream() );
             ImapResponseComposer response = new ImapResponseComposerImpl( writer);
 
             // Write welcome message
                  
             response.hello(hello);
 
-            setUpSession();
+            setUpSession(context);
             
-            helper.getWatchdog().start();
-            while ( handleRequest() ) {
-                helper.getWatchdog().reset();
+            context.getWatchdog().start();
+            while ( handleRequest(context) ) {
+                context.getWatchdog().reset();
             }
-            helper.getWatchdog().stop();
+            context.getWatchdog().stop();
             if (session != null) {
                 session.logout();
             }
             
             getLogger().info(
-                    "Connection from " + helper.getRemoteHost() + " (" + helper.getRemoteIP()
+                    "Connection from " + context.getRemoteHost() + " (" + context.getRemoteIP()
                             + ") closed.");
     }
 
     /**
      * Sets up a session.
+     * @param context not null
      */
-    private void setUpSession() {
+    private void setUpSession(ProtocolContext context) {
         final ImapSessionImpl session = new ImapSessionImpl();
-        session.setLog(helper.getLogger());
+        session.setLog(context.getLogger());
         this.session = session;
     }
 
-    private boolean handleRequest() {
-        final boolean result = requestHandler.handleRequest( helper.getInputStream(), helper.getOutputStream(), session );
+    private boolean handleRequest(ProtocolContext context) {
+        final boolean result = requestHandler.handleRequest( context.getInputStream(), context.getOutputStream(), session );
         return result;
     }
     

Modified: james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java?rev=815718&r1=815717&r2=815718&view=diff
==============================================================================
--- james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java (original)
+++ james/server/trunk/nntpserver-function/src/main/java/org/apache/james/nntpserver/NNTPHandler.java Wed Sep 16 10:56:30 2009
@@ -256,9 +256,9 @@
     }
     
     /**
-     * @see org.apache.james.socket.AbstractJamesHandler#handleProtocol()
+     * @see org.apache.james.socket.ProtocolHandler#handleProtocol(ProtocolContext)
      */
-    public void handleProtocol() throws IOException {
+    public void handleProtocol(ProtocolContext context) throws IOException {
         // section 7.1
         if ( theConfigData.getNNTPRepository().isReadOnly() ) {
             StringBuilder respBuffer =
@@ -266,27 +266,27 @@
                     .append("201 ")
                     .append(theConfigData.getHelloName())
                     .append(" NNTP Service Ready, posting prohibited");
-            helper.writeLoggedFlushedResponse(respBuffer.toString());
+            context.writeLoggedFlushedResponse(respBuffer.toString());
         } else {
             StringBuilder respBuffer =
                 new StringBuilder(128)
                         .append("200 ")
                         .append(theConfigData.getHelloName())
                         .append(" NNTP Service Ready, posting permitted");
-            helper.writeLoggedFlushedResponse(respBuffer.toString());
+            context.writeLoggedFlushedResponse(respBuffer.toString());
         }
 
-        helper.getWatchdog().start();
-        while (parseCommand(helper.getInputReader().readLine())) {
-            helper.getWatchdog().reset();
+        context.getWatchdog().start();
+        while (parseCommand(context.getInputReader().readLine())) {
+            context.getWatchdog().reset();
         }
-        helper.getWatchdog().stop();
+        context.getWatchdog().stop();
 
-        helper.getLogger().info("Connection closed");
+        context.getLogger().info("Connection closed");
     }
     
     /**
-     * @see org.apache.james.socket.AbstractJamesHandler#fatalFailure(java.lang.RuntimeException, ProtocolContext)
+     * @see org.apache.james.socket.ProtocolHandler#fatalFailure(java.lang.RuntimeException, ProtocolContext)
      */
     public void fatalFailure(final RuntimeException e, final ProtocolContext context) {
         // If the connection has been idled out, the

Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java?rev=815718&r1=815717&r2=815718&view=diff
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java (original)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java Wed Sep 16 10:56:30 2009
@@ -161,9 +161,9 @@
     }
     
     /**
-     * @see org.apache.james.socket.AbstractJamesHandler#handleProtocol()
+     * @see org.apache.james.socket.AbstractJamesHandler#handleProtocol(ProtocolContext)
      */
-    public void handleProtocol() throws IOException {
+    public void handleProtocol(ProtocolContext context) throws IOException {
         handlerState = AUTHENTICATION_READY;
         authenticatedUser = "unknown";
 
@@ -179,7 +179,7 @@
                     .append(POP3Handler.softwaretype)
                     .append(") ready ");
         String responseString = clearResponseBuffer();
-        helper.writeLoggedFlushedResponse(responseString);
+        context.writeLoggedFlushedResponse(responseString);
 
         //Session started - RUN all connect handlers
         List connectHandlers = handlerChain.getConnectHandlers();
@@ -194,7 +194,7 @@
         }
 
         
-        helper.getWatchdog().start();
+        context.getWatchdog().start();
         while(!sessionEnded) {
           //Reset the current command values
           curCommandName = null;
@@ -215,12 +215,12 @@
           }
           curCommandName = curCommandName.toUpperCase(Locale.US);
 
-          if (helper.getLogger().isDebugEnabled()) {
+          if (context.getLogger().isDebugEnabled()) {
               // Don't display password in logger
               if (!curCommandName.equals("PASS")) {
-                  helper.getLogger().debug("Command received: " + cmdString);
+                  context.getLogger().debug("Command received: " + cmdString);
               } else {
-                  helper.getLogger().debug("Command received: PASS <password omitted>");
+                  context.getLogger().debug("Command received: PASS <password omitted>");
               }
           }
 
@@ -233,7 +233,7 @@
               int count = commandHandlers.size();
               for(int i = 0; i < count; i++) {
                   ((CommandHandler)commandHandlers.get(i)).onCommand(this);
-                  helper.getWatchdog().reset();
+                  context.getWatchdog().reset();
                   //if the response is received, stop processing of command handlers
                   if(mode != COMMAND_MODE) {
                       break;
@@ -242,18 +242,18 @@
 
           }
         }
-        helper.getWatchdog().stop();
-        if (helper.getLogger().isInfoEnabled()) {
+        context.getWatchdog().stop();
+        if (context.getLogger().isInfoEnabled()) {
             StringBuilder logBuffer =
                 new StringBuilder(128)
                     .append("Connection for ")
                     .append(getUser())
                     .append(" from ")
-                    .append(helper.getRemoteHost())
+                    .append(context.getRemoteHost())
                     .append(" (")
-                    .append(helper.getRemoteIP())
+                    .append(context.getRemoteIP())
                     .append(") closed.");
-            helper.getLogger().info(logBuffer.toString());
+            context.getLogger().info(logBuffer.toString());
         }
     }
     

Modified: james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java?rev=815718&r1=815717&r2=815718&view=diff
==============================================================================
--- james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java (original)
+++ james/server/trunk/remotemanager-function/src/main/java/org/apache/james/remotemanager/RemoteManagerHandler.java Wed Sep 16 10:56:30 2009
@@ -137,20 +137,20 @@
     /**
      * @see org.apache.avalon.cornerstone.services.connection.ConnectionHandler#handleConnection(Socket)
      */
-    public void handleProtocol() throws IOException {
-        helper.writeLoggedResponse("JAMES Remote Administration Tool " + Constants.SOFTWARE_VERSION );
-        helper.writeLoggedResponse("Please enter your login and password");
+    public void handleProtocol(ProtocolContext context) throws IOException {
+        context.writeLoggedResponse("JAMES Remote Administration Tool " + Constants.SOFTWARE_VERSION );
+        context.writeLoggedResponse("Please enter your login and password");
         String login = null;
         String password = null;
         do {
             if (login != null) {
                 final String message = "Login failed for " + login;
-                helper.writeLoggedFlushedResponse(message);
+                context.writeLoggedFlushedResponse(message);
             }
-            helper.writeLoggedFlushedResponse("Login id:");
-            login = helper.getInputReader().readLine().trim();
-            helper.writeLoggedFlushedResponse("Password:");
-            password = helper.getInputReader().readLine().trim();
+            context.writeLoggedFlushedResponse("Login id:");
+            login = context.getInputReader().readLine().trim();
+            context.writeLoggedFlushedResponse("Password:");
+            password = context.getInputReader().readLine().trim();
         } while (!password.equals(theConfigData.getAdministrativeAccountData().get(login)) || password.length() == 0);
 
         StringBuilder messageBuffer =
@@ -158,39 +158,39 @@
                     .append("Welcome ")
                     .append(login)
                     .append(". HELP for a list of commands");
-        helper.getOutputWriter().println( messageBuffer.toString() );
-        helper.getOutputWriter().flush();
-        if (helper.getLogger().isInfoEnabled()) {
+        context.getOutputWriter().println( messageBuffer.toString() );
+        context.getOutputWriter().flush();
+        if (context.getLogger().isInfoEnabled()) {
             StringBuilder infoBuffer =
                 new StringBuilder(128)
                         .append("Login for ")
                         .append(login)
                         .append(" successful");
-            helper.getLogger().info(infoBuffer.toString());
+            context.getLogger().info(infoBuffer.toString());
         }
 
         try {
-            helper.getOutputWriter().print(theConfigData.getPrompt());
-            helper.getOutputWriter().flush();
-            helper.getWatchdog().start();
-            while (parseCommand(helper.getInputReader().readLine())) {
-                helper.getWatchdog().reset();
-                helper.getOutputWriter().print(theConfigData.getPrompt());
-                helper.getOutputWriter().flush();
+            context.getOutputWriter().print(theConfigData.getPrompt());
+            context.getOutputWriter().flush();
+            context.getWatchdog().start();
+            while (parseCommand(context.getInputReader().readLine())) {
+                context.getWatchdog().reset();
+                context.getOutputWriter().print(theConfigData.getPrompt());
+                context.getOutputWriter().flush();
             }
-            helper.getWatchdog().stop();
+            context.getWatchdog().stop();
         } catch (IOException ioe) {
             //We can cleanly ignore this as it's probably a socket timeout
         } catch (Throwable thr) {
             System.out.println("Exception: " + thr.getMessage());
-            helper.getLogger().error("Encountered exception in handling the remote manager connection.", thr);
+            context.getLogger().error("Encountered exception in handling the remote manager connection.", thr);
         }
         StringBuilder infoBuffer =
             new StringBuilder(64)
                     .append("Logout for ")
                     .append(login)
                     .append(".");
-        helper.getLogger().info(infoBuffer.toString());
+        context.getLogger().info(infoBuffer.toString());
 
     }
 

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=815718&r1=815717&r2=815718&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 Wed Sep 16 10:56:30 2009
@@ -94,12 +94,12 @@
 	}
     
     /**
-     * @see org.apache.james.socket.ProtocolHandler#handleProtocol()
+     * @see org.apache.james.socket.ProtocolHandler#handleProtocol(ProtocolContext)
      */
-    public void handleProtocol() throws IOException {
+    public void handleProtocol(ProtocolContext context) throws IOException {
         smtpID = Integer.toString(random.nextInt(1024));
-        relayingAllowed = theConfigData.isRelayingAllowed(helper.getRemoteIP());
-        authSupported = theConfigData.isAuthRequired(helper.getRemoteIP());
+        relayingAllowed = theConfigData.isRelayingAllowed(context.getRemoteIP());
+        authSupported = theConfigData.isAuthRequired(context.getRemoteIP());
 
         // Both called in resetHandler, we don't need to call them again here.
         // sessionEnded = false;
@@ -142,8 +142,8 @@
             }
         }
 
-        CRLFDelimitedByteBuffer bytebufferHandler = new CRLFDelimitedByteBuffer(helper.getInputStream());
-        helper.getWatchdog().start();
+        CRLFDelimitedByteBuffer bytebufferHandler = new CRLFDelimitedByteBuffer(context.getInputStream());
+        context.getWatchdog().start();
         while(!sessionEnded) {
           //parse the command
           byte[] line =  null;
@@ -163,11 +163,11 @@
           } else {
               sessionEnded = true;
           }
-          helper.getWatchdog().reset();
+          context.getWatchdog().reset();
           
         }
-        helper.getWatchdog().stop();
-        helper.getLogger().debug("Closing socket.");
+        context.getWatchdog().stop();
+        context.getLogger().debug("Closing socket.");
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org