Author: elecharny
Date: Wed May  2 23:47:08 2012
New Revision: 1333259

URL: http://svn.apache.org/viewvc?rev=1333259&view=rev
Log:
o Moved the SslContext field to the TcpClient/Server classes (UDP does not 
support SSL)
o Added some missing Javadoc
o Added a initSecured(session) method to initialize the SL layer if needed.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/api/IoService.java
    mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpClient.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpClient.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpServer.java
    mina/trunk/core/src/test/java/org/apache/mina/util/AbstractIoFutureTest.java
    mina/trunk/core/src/test/java/org/apache/mina/util/IoBufferTest.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/api/IoService.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/api/IoService.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/api/IoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/api/IoService.java Wed May  2 
23:47:08 2012
@@ -21,7 +21,7 @@ package org.apache.mina.api;
 
 import java.util.Map;
 
-import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
 
 import org.apache.mina.service.IoHandler;
 
@@ -32,7 +32,6 @@ import org.apache.mina.service.IoHandler
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public interface IoService {
-
     /**
      * Returns the map of all sessions which are currently managed by this 
service. The key of map is the
      * {@link IoSession#getId() ID} of the session.
@@ -66,7 +65,7 @@ public interface IoService {
     /**
      * Get the list of filters installed on this service
      * 
-     * @return
+     * @return The list of installed filters
      */
     IoFilter[] getFilters();
 
@@ -88,23 +87,8 @@ public interface IoService {
     boolean isSecured();
 
     /**
-     * Set the mode to use, either secured or not secured
-     * @param secured The mode to use
-     */
-    void setSecured(boolean secured);
-
-    /**
-     * Inject a {@link SSLContex} valid for the service. This {@link 
SSLContex} will be used
-     * by the SSLEngine to handle secured connections.<br/>
-     * The {@link SSLContex} must have been created and initialized before 
being injected in
-     * the service.<br/>
-     * By setting a {@link SSLContext}, the service switch to secured.
-     * @param sslContext The configured {@link SSLContex}.
-     */
-    void setSslContext(SSLContext sslContext);
-
-    /**
-     * @return The {@link SSLContext} instance stored in the service.
+     * Initialize the service in secured mode for the given session
+     * @param session The {@link IoSession} to secure
      */
-    SSLContext getSslContext();
+    void initSecured(IoSession session) throws SSLException;
 }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java 
Wed May  2 23:47:08 2012
@@ -24,7 +24,7 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
 
 import org.apache.mina.api.IoFilter;
 import org.apache.mina.api.IoService;
@@ -46,10 +46,7 @@ public abstract class AbstractIoService 
     private ServiceState state;
 
     /** The service mode : secured or not */
-    private ServiceMode mode;
-
-    /** The SSLContext instance */
-    private SSLContext sslContext;
+    protected ServiceMode mode;
 
     private final Map<Long, IoSession> managedSessions = new 
ConcurrentHashMap<Long, IoSession>();
 
@@ -289,6 +286,11 @@ public abstract class AbstractIoService 
     /**
      * {@inheritDoc}
      */
+    public abstract void initSecured(IoSession session) throws SSLException;
+
+    /**
+     * {@inheritDoc}
+     */
     public void setSecured(boolean secured) {
         if (secured) {
             mode = ServiceMode.SECURED;
@@ -296,19 +298,4 @@ public abstract class AbstractIoService 
             mode = ServiceMode.NOT_SECURED;
         }
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    public void setSslContext(SSLContext sslContext) {
-        this.sslContext = sslContext;
-        mode = ServiceMode.SECURED;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public SSLContext getSslContext() {
-        return sslContext;
-    }
 }
\ No newline at end of file

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpClient.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpClient.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpClient.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpClient.java
 Wed May  2 23:47:08 2012
@@ -19,18 +19,54 @@
  */
 package org.apache.mina.transport.tcp;
 
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
+
+import org.apache.mina.api.IoSession;
 import org.apache.mina.service.client.AbstractIoClient;
 
 /**
- * TODO
+ * Base class for UDP based Clients
  * 
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public abstract class AbstractTcpClient extends AbstractIoClient {
+    /** The SSLContext instance */
+    private SSLContext sslContext;
+
     /**
      * Create an new AbsractTcpClient instance
      */
     protected AbstractTcpClient() {
         super();
     }
+
+    /**
+     * Inject a {@link SSLContex} valid for the service. This {@link 
SSLContex} will be used
+     * by the SSLEngine to handle secured connections.<br/>
+     * The {@link SSLContex} must have been created and initialized before 
being injected in
+     * the service.<br/>
+     * By setting a {@link SSLContext}, the service switch to secured.
+     * @param sslContext The configured {@link SSLContex}.
+     */
+    public void setSslContext(SSLContext sslContext) {
+        this.sslContext = sslContext;
+        mode = ServiceMode.SECURED;
+    }
+
+    /**
+     * @return The {@link SSLContext} instance stored in the service.
+     */
+    public SSLContext getSslContext() {
+        return sslContext;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void initSecured(IoSession session) throws SSLException {
+        if (mode == ServiceMode.SECURED) {
+            session.initSecure(sslContext);
+        }
+    }
 }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java
 Wed May  2 23:47:08 2012
@@ -19,6 +19,10 @@
  */
 package org.apache.mina.transport.tcp;
 
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
+
+import org.apache.mina.api.IoSession;
 import org.apache.mina.service.server.AbstractIoServer;
 
 /**
@@ -27,6 +31,9 @@ import org.apache.mina.service.server.Ab
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>
  */
 public abstract class AbstractTcpServer extends AbstractIoServer {
+    /** The SSLContext instance */
+    private SSLContext sslContext;
+
     /**
      * Create an new AbsractTcpServer instance
      */
@@ -45,4 +52,33 @@ public abstract class AbstractTcpServer 
      * @return
      */
     public abstract boolean isReuseAddress();
+
+    /**
+     * Inject a {@link SSLContex} valid for the service. This {@link 
SSLContex} will be used
+     * by the SSLEngine to handle secured connections.<br/>
+     * The {@link SSLContex} must have been created and initialized before 
being injected in
+     * the service.<br/>
+     * By setting a {@link SSLContext}, the service switch to secured.
+     * @param sslContext The configured {@link SSLContex}.
+     */
+    public void setSslContext(SSLContext sslContext) {
+        this.sslContext = sslContext;
+        mode = ServiceMode.SECURED;
+    }
+
+    /**
+     * @return The {@link SSLContext} instance stored in the service.
+     */
+    public SSLContext getSslContext() {
+        return sslContext;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void initSecured(IoSession session) throws SSLException {
+        if (mode == ServiceMode.SECURED) {
+            session.initSecure(sslContext);
+        }
+    }
 }
\ No newline at end of file

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
 Wed May  2 23:47:08 2012
@@ -248,7 +248,7 @@ public class NioSelectorProcessor implem
 
         // Set the secured flag if the service is to be used over SSL/TLS
         if (service.isSecured()) {
-            session.initSecure(service.getSslContext());
+            service.initSecured(session);
         }
 
         // event session created

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpClient.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpClient.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpClient.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpClient.java
 Wed May  2 23:47:08 2012
@@ -19,6 +19,9 @@
  */
 package org.apache.mina.transport.udp;
 
+import javax.net.ssl.SSLException;
+
+import org.apache.mina.api.IoSession;
 import org.apache.mina.service.client.AbstractIoClient;
 
 /**
@@ -33,4 +36,11 @@ public abstract class AbstractUdpClient 
     protected AbstractUdpClient() {
         super();
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void initSecured(IoSession session) throws SSLException {
+        // Do nothing : UDP does not support SSL
+    }
 }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpServer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpServer.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpServer.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/udp/AbstractUdpServer.java
 Wed May  2 23:47:08 2012
@@ -23,6 +23,9 @@ import java.io.IOException;
 import java.net.SocketAddress;
 import java.util.Set;
 
+import javax.net.ssl.SSLException;
+
+import org.apache.mina.api.IoSession;
 import org.apache.mina.service.server.AbstractIoServer;
 
 /**
@@ -62,4 +65,10 @@ public abstract class AbstractUdpServer 
 
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    public void initSecured(IoSession session) throws SSLException {
+        // Do nothing : UDP does not support SSL
+    }
 }

Modified: 
mina/trunk/core/src/test/java/org/apache/mina/util/AbstractIoFutureTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/util/AbstractIoFutureTest.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- 
mina/trunk/core/src/test/java/org/apache/mina/util/AbstractIoFutureTest.java 
(original)
+++ 
mina/trunk/core/src/test/java/org/apache/mina/util/AbstractIoFutureTest.java 
Wed May  2 23:47:08 2012
@@ -18,16 +18,6 @@
  */
 package org.apache.mina.util;
 
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.Matcher;
-import org.junit.Test;
-import org.mockito.Matchers;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -39,7 +29,17 @@ import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
 import org.apache.mina.api.IoFutureListener;
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.junit.Test;
+import org.mockito.Matchers;
 
 /**
  * @author <a href="http://mina.apache.org";>Apache MINA Project</a>

Modified: mina/trunk/core/src/test/java/org/apache/mina/util/IoBufferTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/util/IoBufferTest.java?rev=1333259&r1=1333258&r2=1333259&view=diff
==============================================================================
--- mina/trunk/core/src/test/java/org/apache/mina/util/IoBufferTest.java 
(original)
+++ mina/trunk/core/src/test/java/org/apache/mina/util/IoBufferTest.java Wed 
May  2 23:47:08 2012
@@ -1,9 +1,9 @@
 package org.apache.mina.util;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.nio.BufferUnderflowException;


Reply via email to