Author: norman
Date: Mon Jan 17 19:11:01 2011
New Revision: 1060047

URL: http://svn.apache.org/viewvc?rev=1060047&view=rev
Log:
Add support for IMAP COMPRESS extension. See IMAP-247

Modified:
    james/server/trunk/container-spring/src/main/config/james/imapserver.xml
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
    
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapStreamChannelUpstreamHandler.java

Modified: 
james/server/trunk/container-spring/src/main/config/james/imapserver.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/container-spring/src/main/config/james/imapserver.xml?rev=1060047&r1=1060046&r2=1060047&view=diff
==============================================================================
--- james/server/trunk/container-spring/src/main/config/james/imapserver.xml 
(original)
+++ james/server/trunk/container-spring/src/main/config/james/imapserver.xml 
Mon Jan 17 19:11:01 2011
@@ -25,6 +25,8 @@
   <connectionBacklog>200</connectionBacklog>
   <tls socketTLS="false" startTLS="false">
   </tls>
+  <!-- COMPRESS extension -->
+  <compress>false</compress>
   <handler>
       <connectionLimit> 0 </connectionLimit>
       <connectionLimitPerIP> 0 </connectionLimitPerIP>

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java?rev=1060047&r1=1060046&r2=1060047&view=diff
==============================================================================
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
 Mon Jan 17 19:11:01 2011
@@ -57,6 +57,8 @@ public class IMAPServer extends Abstract
 
     private ImapDecoder decoder;
 
+    private boolean compress;
+
     @Resource(name="imapDecoder")
     public void setImapDecoder(ImapDecoder decoder) {
         this.decoder = decoder;
@@ -76,6 +78,7 @@ public class IMAPServer extends Abstract
     public void doConfigure( final HierarchicalConfiguration configuration ) 
throws ConfigurationException {
         super.doConfigure(configuration);
         hello  = softwaretype + " Server " + getHelloName() + " is ready.";
+        compress = configuration.getBoolean("compress", false);
     }
     
     
@@ -133,9 +136,9 @@ public class IMAPServer extends Abstract
                 final ImapRequestStreamHandler handler = new 
ImapRequestStreamHandler(decoder, processor, encoder);
                 
                 if (isStartTLSSupported())  {
-                    pipeline.addLast("coreHandler",  new 
ImapStreamChannelUpstreamHandler(hello, handler, getLogger(), timer, 
IMAPServer.this.getTimeout(), getSSLContext(), getEnabledCipherSuites()));
+                    pipeline.addLast("coreHandler",  new 
ImapStreamChannelUpstreamHandler(hello, handler, getLogger(), timer, 
IMAPServer.this.getTimeout(), compress, getSSLContext(), 
getEnabledCipherSuites()));
                 } else {
-                    pipeline.addLast("coreHandler",  new 
ImapStreamChannelUpstreamHandler(hello, handler, getLogger(), timer, 
IMAPServer.this.getTimeout()));
+                    pipeline.addLast("coreHandler",  new 
ImapStreamChannelUpstreamHandler(hello, handler, getLogger(), timer, 
IMAPServer.this.getTimeout(), compress));
                 }
                 
                 return pipeline;

Modified: 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapStreamChannelUpstreamHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapStreamChannelUpstreamHandler.java?rev=1060047&r1=1060046&r2=1060047&view=diff
==============================================================================
--- 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapStreamChannelUpstreamHandler.java
 (original)
+++ 
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/ImapStreamChannelUpstreamHandler.java
 Mon Jan 17 19:11:01 2011
@@ -61,21 +61,24 @@ public class ImapStreamChannelUpstreamHa
 
     private SSLContext context;
 
+    private boolean compress;
+
     private final static String IMAP_SESSION = "IMAP_SESSION"; 
     private final static String BUFFERED_OUT = "BUFFERED_OUT";
     
-    public ImapStreamChannelUpstreamHandler(final String hello, final 
ImapRequestStreamHandler handler, final Log logger, final Timer timer, final 
long readTimeout) {
-        this(hello, handler, logger, timer, readTimeout, null, null);
+    public ImapStreamChannelUpstreamHandler(final String hello, final 
ImapRequestStreamHandler handler, final Log logger, final Timer timer, final 
long readTimeout, boolean compress) {
+        this(hello, handler, logger, timer, readTimeout, compress, null, null);
     }
     
 
-    public ImapStreamChannelUpstreamHandler(final String hello, final 
ImapRequestStreamHandler handler, final Log logger, final Timer timer, final 
long readTimeout, SSLContext context, String[] enabledCipherSuites) {
+    public ImapStreamChannelUpstreamHandler(final String hello, final 
ImapRequestStreamHandler handler, final Log logger, final Timer timer, final 
long readTimeout, boolean compress, SSLContext context, String[] 
enabledCipherSuites) {
         super(timer, readTimeout, TimeUnit.SECONDS);
         this.logger = logger;
         this.hello = hello;
         this.handler = handler;
         this.context = context;
         this.enabledCipherSuites = enabledCipherSuites;
+        this.compress = compress;
     }
     
     private Log getLogger(Channel channel) {
@@ -145,8 +148,9 @@ public class ImapStreamChannelUpstreamHa
                  return context != null;
             }
 
+            @Override
             public boolean isCompressionSupported() {
-                return true;
+                return compress;
             }
 
             @Override



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

Reply via email to