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