You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ma...@apache.org on 2008/01/11 23:40:55 UTC

svn commit: r611323 - in /mina/trunk: core/src/main/java/org/apache/mina/filter/ssl/ core/src/test/java/org/apache/mina/filter/ssl/ example/src/main/java/org/apache/mina/example/chat/ example/src/main/resources/org/apache/mina/example/chat/ example/src...

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 {@link 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 {@link 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 {@link 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