Author: maarten
Date: Fri Jan 11 14:40:46 2008
New Revision: 611323

URL: http://svn.apache.org/viewvc?rev=611323&view=rev
Log:
fixed DIRMINA-510 : Spring version of chat example breaks + added junit test

Added:
    mina/trunk/example/src/test/java/org/apache/mina/example/chat/
    
mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java
   (with props)
Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/KeyStoreFactory.java
    
mina/trunk/core/src/test/java/org/apache/mina/filter/ssl/KeyStoreFactoryTest.java
    
mina/trunk/example/src/main/java/org/apache/mina/example/chat/SpringMain.java
    
mina/trunk/example/src/main/resources/org/apache/mina/example/chat/serverContext.xml

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/KeyStoreFactory.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/KeyStoreFactory.java?rev=611323&r1=611322&r2=611323&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/KeyStoreFactory.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/ssl/KeyStoreFactory.java 
Fri Jan 11 14:40:46 2008
@@ -57,7 +57,7 @@
             throw new IllegalStateException("data property is not set.");
         }
 
-        KeyStore ks = null;
+        KeyStore ks;
         if (provider == null) {
             ks = KeyStore.getInstance(type);
         } else {
@@ -133,7 +133,7 @@
      *
      * @param dataStream the [EMAIL PROTECTED] InputStream} that contains the 
key store
      */
-    public void setData(InputStream dataStream) throws IOException {
+    private void setData(InputStream dataStream) throws IOException {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         try {
             for (;;) {
@@ -141,10 +141,8 @@
                 if (data < 0) {
                     break;
                 }
-                
                 out.write(data);
             }
-            
             setData(out.toByteArray());
         } finally {
             try {
@@ -160,7 +158,7 @@
      *
      * @param dataFile the [EMAIL PROTECTED] File} that contains the key store
      */
-    public void setData(File dataFile) throws IOException {
+    public void setDataFile(File dataFile) throws IOException {
         setData(new BufferedInputStream(new FileInputStream(dataFile)));
     }
     
@@ -169,7 +167,7 @@
      *
      * @param dataUrl the [EMAIL PROTECTED] URL} that contains the key store.
      */
-    public void setData(URL dataUrl) throws IOException {
+    public void setDataUrl(URL dataUrl) throws IOException {
         setData(dataUrl.openStream());
     }
 }

Modified: 
mina/trunk/core/src/test/java/org/apache/mina/filter/ssl/KeyStoreFactoryTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/ssl/KeyStoreFactoryTest.java?rev=611323&r1=611322&r2=611323&view=diff
==============================================================================
--- 
mina/trunk/core/src/test/java/org/apache/mina/filter/ssl/KeyStoreFactoryTest.java
 (original)
+++ 
mina/trunk/core/src/test/java/org/apache/mina/filter/ssl/KeyStoreFactoryTest.java
 Fri Jan 11 14:40:46 2008
@@ -37,7 +37,7 @@
     public void testCreateInstanceFromResource() throws Exception {
         // Test using default for now.
         KeyStoreFactory factory = new KeyStoreFactory();
-        factory.setData(getClass().getResource("keystore.cert"));
+        factory.setDataUrl(getClass().getResource("keystore.cert"));
         factory.setPassword("boguspw");
 
         KeyStore ks = factory.newInstance();
@@ -61,7 +61,7 @@
 
         // Test using default for now.
         KeyStoreFactory factory = new KeyStoreFactory();
-        factory.setData(file);
+        factory.setDataFile(file);
         factory.setPassword("boguspw");
 
         KeyStore ks = factory.newInstance();

Modified: 
mina/trunk/example/src/main/java/org/apache/mina/example/chat/SpringMain.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/chat/SpringMain.java?rev=611323&r1=611322&r2=611323&view=diff
==============================================================================
--- 
mina/trunk/example/src/main/java/org/apache/mina/example/chat/SpringMain.java 
(original)
+++ 
mina/trunk/example/src/main/java/org/apache/mina/example/chat/SpringMain.java 
Fri Jan 11 14:40:46 2008
@@ -20,6 +20,7 @@
 package org.apache.mina.example.chat;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.context.ConfigurableApplicationContext;
 
 /**
  * (<b>Entry point</b>) Chat server which uses Spring and the serverContext.xml
@@ -38,11 +39,11 @@
                     .println("JMX disabled. Please set the "
                             + "'com.sun.management.jmxremote' system property 
to enable JMX.");
         }
-        new ClassPathXmlApplicationContext(getApplicationContext());
+        getApplicationContext();
         System.out.println("Listening ...");
     }
 
-    public static String getApplicationContext() {
-        return "org/apache/mina/example/chat/serverContext.xml";
+    public static ConfigurableApplicationContext getApplicationContext() {
+        return new 
ClassPathXmlApplicationContext("org/apache/mina/example/chat/serverContext.xml");
     }
 }

Modified: 
mina/trunk/example/src/main/resources/org/apache/mina/example/chat/serverContext.xml
URL: 
http://svn.apache.org/viewvc/mina/trunk/example/src/main/resources/org/apache/mina/example/chat/serverContext.xml?rev=611323&r1=611322&r2=611323&view=diff
==============================================================================
--- 
mina/trunk/example/src/main/resources/org/apache/mina/example/chat/serverContext.xml
 (original)
+++ 
mina/trunk/example/src/main/resources/org/apache/mina/example/chat/serverContext.xml
 Fri Jan 11 14:40:46 2008
@@ -19,62 +19,74 @@
   <bean id="chatHandler" 
class="org.apache.mina.example.chat.ChatProtocolHandler" />
 
   <!-- The SSL configuration -->
-  <bean id="keyStore" 
class="org.apache.mina.integration.spring.ssl.KeyStoreFactoryBean">
-    <property name="resource" 
value="classpath:org/apache/mina/example/echoserver/ssl/bogus.cert"/>
+  <bean id="keystoreFactory" 
class="org.apache.mina.filter.ssl.KeyStoreFactory">
     <property name="password" value="boguspw"/>
+    <property name="dataUrl" 
value="classpath:org/apache/mina/example/echoserver/ssl/bogus.cert"/>
   </bean>
-  
-  <bean id="bogusTrustManagerFactory" 
class="org.apache.mina.integration.spring.ssl.BogusTrustManagerFactory"/>
+
+  <bean id="keyStore" factory-bean="keystoreFactory" 
factory-method="newInstance"/>
+
+  <bean id="bogusTrustManagerFactory" 
class="org.apache.mina.filter.ssl.BogusTrustManagerFactory"/>
   
   <!-- SSLContext to be used -->
-  <bean id="sslContext"  
class="org.apache.mina.integration.spring.ssl.SslContextFactoryBean">
+  <bean id="sslContextFactory"  
class="org.apache.mina.filter.ssl.SslContextFactory">
     <property name="protocol" value="TLS"/>
     <property name="keyManagerFactoryAlgorithm" value="SunX509"/>
     <property name="keyManagerFactoryKeyStore"><ref 
local="keyStore"/></property>
     <property name="keyManagerFactoryKeyStorePassword" value="boguspw"/>
     <property name="trustManagerFactory"><ref 
local="bogusTrustManagerFactory"/></property>
   </bean>
-  
-  <!-- The non-SSL filter chain. Adds a TextLineCodec and a LoggingFilter -->
-  <bean id="filterChainBuilder" 
class="org.apache.mina.integration.spring.DefaultIoFilterChainBuilderFactoryBean">
+
+  <bean id="sslContext" factory-bean="sslContextFactory" 
factory-method="newInstance"/>
+
+  <!-- the IoFilters -->
+
+  <bean id="executorFilter" 
class="org.apache.mina.filter.executor.ExecutorFilter"/>
+
+  <bean id="mdcInjectionFilter" 
class="org.apache.mina.filter.logging.MdcInjectionFilter">
+      <constructor-arg value="remoteAddress"/>
+  </bean>
+
+  <bean id="codecFilter" 
class="org.apache.mina.filter.codec.ProtocolCodecFilter">
+    <constructor-arg>
+      <bean class="org.apache.mina.filter.codec.textline.TextLineCodecFactory" 
/>
+    </constructor-arg>
+  </bean>
+
+  <bean id="loggingFilter" 
class="org.apache.mina.filter.logging.LoggingFilter" />
+
+  <bean id="sslFilter" class="org.apache.mina.filter.ssl.SslFilter">
+    <constructor-arg ref="sslContext"/>
+  </bean>
+
+  <!-- The non-SSL filter chain. -->
+  <bean id="filterChainBuilder" 
class="org.apache.mina.common.DefaultIoFilterChainBuilder">
     <property name="filters">
-      <list>
-        <bean class="org.apache.mina.filter.executor.ExecutorFilter"/>
-        <bean class="org.apache.mina.filter.logging.MdcInjectionFilter">
-            <constructor-arg value="remoteAddress"/>
-        </bean>
-        <bean class="org.apache.mina.filter.codec.ProtocolCodecFilter">
-          <constructor-arg>
-            <bean 
class="org.apache.mina.filter.codec.textline.TextLineCodecFactory" />
-          </constructor-arg>
-        </bean>
-        <bean class="org.apache.mina.filter.logging.LoggingFilter" />
-      </list>
+      <map>
+        <entry key="executor" value-ref="executorFilter"/>
+        <entry key="mdcInjectionFilter" value-ref="mdcInjectionFilter"/>
+        <entry key="codecFilter" value-ref="codecFilter"/>
+        <entry key="loggingFilter" value-ref="loggingFilter"/>
+      </map>
     </property>
   </bean>
-  
-  <!-- The SSL filter chain. Adds an SSLFilter, a TextLineCodec and a 
LoggingFilter -->
-  <bean id="sslFilterChainBuilder" 
class="org.apache.mina.integration.spring.DefaultIoFilterChainBuilderFactoryBean">
+
+  <!-- The SSL filter chain. -->
+  <bean id="sslFilterChainBuilder" 
class="org.apache.mina.common.DefaultIoFilterChainBuilder">
     <property name="filters">
-      <list>
-        <bean class="org.apache.mina.filter.executor.ExecutorFilter"/>
-        <bean class="org.apache.mina.filter.logging.MdcInjectionFilter"/>
-        <bean class="org.apache.mina.filter.ssl.SslFilter">
-          <constructor-arg ref="sslContext"/>
-        </bean>      
-        <bean class="org.apache.mina.filter.codec.ProtocolCodecFilter">
-          <constructor-arg>
-            <bean 
class="org.apache.mina.filter.codec.textline.TextLineCodecFactory" />
-          </constructor-arg>
-        </bean>
-        <bean class="org.apache.mina.filter.logging.LoggingFilter" />
-      </list>
+      <map>
+        <entry key="executor" value-ref="executorFilter"/>
+        <entry key="mdcInjectionFilter" value-ref="mdcInjectionFilter"/>
+        <entry key="sslFilter" value-ref="sslFilter"/>
+        <entry key="codecFilter" value-ref="codecFilter"/>
+        <entry key="loggingFilter" value-ref="loggingFilter"/>
+      </map>
     </property>
   </bean>
 
   <!-- The IoAcceptor which binds to port 1234 -->
   <bean id="ioAcceptor" 
class="org.apache.mina.transport.socket.nio.NioSocketAcceptor" 
init-method="bind" destroy-method="unbind">
-    <property name="localAddress" value=":1234" />
+    <property name="defaultLocalAddress" value=":1234" />
     <property name="handler" ref="chatHandler" />
     <property name="reuseAddress" value="true" />
     <property name="filterChainBuilder" ref="filterChainBuilder" />
@@ -82,7 +94,7 @@
   
   <!-- The SSL enabled IoAcceptor which binds to port 1235 -->
   <bean id="ioAcceptorWithSSL" 
class="org.apache.mina.transport.socket.nio.NioSocketAcceptor" 
init-method="bind" destroy-method="unbind">
-    <property name="localAddress" value=":1235" />
+    <property name="defaultLocalAddress" value=":1235" />
     <property name="handler" ref="chatHandler" />
     <property name="reuseAddress" value="true" />
     <property name="filterChainBuilder" ref="sslFilterChainBuilder" />

Added: 
mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java?rev=611323&view=auto
==============================================================================
--- 
mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java
 (added)
+++ 
mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java
 Fri Jan 11 14:40:46 2008
@@ -0,0 +1,21 @@
+package org.apache.mina.example.chat;
+
+import junit.framework.TestCase;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.apache.mina.common.IoService;
+
+/**
+ */
+public class SpringMainTest extends TestCase {
+
+  public void testContext() {
+    ConfigurableApplicationContext appContext = 
SpringMain.getApplicationContext();
+    IoService service = (IoService) appContext.getBean("ioAcceptor");
+    IoService ioAcceptorWithSSL = (IoService) 
appContext.getBean("ioAcceptorWithSSL");
+    assertTrue(service.isActive());
+    assertTrue(ioAcceptorWithSSL.isActive());
+    appContext.close();
+    assertFalse(service.isActive());    
+    assertFalse(ioAcceptorWithSSL.isActive());
+  }
+}

Propchange: 
mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
mina/trunk/example/src/test/java/org/apache/mina/example/chat/SpringMainTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date


Reply via email to