Author: elecharny
Date: Tue Dec  6 11:16:00 2011
New Revision: 1210864

URL: http://svn.apache.org/viewvc?rev=1210864&view=rev
Log:
Added the SSLContext instance in IoService, to handle secured connections. This 
is an optional parameter.

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

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=1210864&r1=1210863&r2=1210864&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 Tue Dec  6 
11:16:00 2011
@@ -21,6 +21,8 @@ package org.apache.mina.api;
 
 import java.util.Map;
 
+import javax.net.ssl.SSLContext;
+
 import org.apache.mina.service.IoHandler;
 
 /**
@@ -90,4 +92,18 @@ public interface IoService {
      * @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.
+     * @param sslContext The configured {@link SSLContex}.
+     */
+    void addSslContext(SSLContext sslContext);
+    
+    /**
+     * @return The {@link SSLContext} instance stored in the service.
+     */
+    SSLContext getSslContext();
 }

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=1210864&r1=1210863&r2=1210864&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 
Tue Dec  6 11:16:00 2011
@@ -24,6 +24,8 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
+import javax.net.ssl.SSLContext;
+
 import org.apache.mina.api.IoFilter;
 import org.apache.mina.api.IoService;
 import org.apache.mina.api.IoServiceListener;
@@ -45,6 +47,9 @@ public abstract class AbstractIoService 
     
     /** The service mode : secured or not */
     private ServiceMode mode;
+    
+    /** The SSLContext instance */
+    private SSLContext sslContext;
 
     private final Map<Long, IoSession> managedSessions = new 
ConcurrentHashMap<Long, IoSession>();
 
@@ -282,8 +287,7 @@ public abstract class AbstractIoService 
     }
     
     /**
-     * Set the mode to use, either secured or not secured
-     * @param secured The mode to use
+     * {@inheritDoc}
      */
     public void setSecured(boolean secured) {
         if (secured) {
@@ -292,4 +296,15 @@ public abstract class AbstractIoService 
             mode = ServiceMode.NOT_SECURED;
         }
     }
+    
+    public void addSslContext(SSLContext sslContext) {
+        this.sslContext = sslContext;
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public SSLContext getSslContext() {
+        return sslContext;
+    }
 }
\ No newline at end of file


Reply via email to