You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ak...@apache.org on 2008/08/27 23:32:32 UTC
svn commit: r689628 - in /mina/trunk/integration-xbean/src:
main/java/org/apache/mina/integration/xbean/
test/java/org/apache/mina/integration/xbean/
test/resources/org/apache/mina/integration/xbean/
Author: akarasulu
Date: Wed Aug 27 14:32:31 2008
New Revision: 689628
URL: http://svn.apache.org/viewvc?rev=689628&view=rev
Log:
[XBean] Adding work around to deal with list of SocketAddresses in the defaultLocalAddresses property
Added:
mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/SocketAddressFactory.java
Modified:
mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/MinaPropertyEditorRegistrar.java
mina/trunk/integration-xbean/src/test/java/org/apache/mina/integration/xbean/SpringXBeanTest.java
mina/trunk/integration-xbean/src/test/resources/org/apache/mina/integration/xbean/datagramAcceptor.xml
Modified: mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/MinaPropertyEditorRegistrar.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/MinaPropertyEditorRegistrar.java?rev=689628&r1=689627&r2=689628&view=diff
==============================================================================
--- mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/MinaPropertyEditorRegistrar.java (original)
+++ mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/MinaPropertyEditorRegistrar.java Wed Aug 27 14:32:31 2008
@@ -26,6 +26,7 @@
import java.net.SocketAddress;
import org.apache.mina.core.session.TrafficMask;
+import org.apache.mina.integration.beans.BooleanEditor;
import org.apache.mina.integration.beans.InetAddressEditor;
import org.apache.mina.integration.beans.InetSocketAddressEditor;
import org.apache.mina.integration.beans.TrafficMaskEditor;
@@ -73,5 +74,6 @@
registry.registerCustomEditor( SocketAddress.class, new InetSocketAddressEditor() );
registry.registerCustomEditor( TrafficMask.class, new TrafficMaskEditor() );
registry.registerCustomEditor( VmPipeAddress.class, new VmPipeAddressEditor() );
+ // registry.registerCustomEditor( Boolean.class, new BooleanEditor() );
}
}
Added: mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/SocketAddressFactory.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/SocketAddressFactory.java?rev=689628&view=auto
==============================================================================
--- mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/SocketAddressFactory.java (added)
+++ mina/trunk/integration-xbean/src/main/java/org/apache/mina/integration/xbean/SocketAddressFactory.java Wed Aug 27 14:32:31 2008
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.integration.xbean;
+
+
+import java.net.SocketAddress;
+
+import org.apache.mina.integration.beans.InetSocketAddressEditor;
+
+
+/**
+ * Workaround for dealing with inability to annotate java docs of JDK
+ * socket address classes.
+ *
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA Project</a>
+ * @version $Rev$, $Date$
+ * @org.apache.xbean.XBean element="socketAddress" contentProperty="value"
+ */
+public class SocketAddressFactory
+{
+ /**
+ * @org.apache.xbean.FactoryMethod
+ */
+ public static SocketAddress create( String value )
+ {
+ InetSocketAddressEditor editor = new InetSocketAddressEditor();
+ editor.setAsText( value );
+ return ( SocketAddress ) editor.getValue();
+ }
+}
Modified: mina/trunk/integration-xbean/src/test/java/org/apache/mina/integration/xbean/SpringXBeanTest.java
URL: http://svn.apache.org/viewvc/mina/trunk/integration-xbean/src/test/java/org/apache/mina/integration/xbean/SpringXBeanTest.java?rev=689628&r1=689627&r2=689628&view=diff
==============================================================================
--- mina/trunk/integration-xbean/src/test/java/org/apache/mina/integration/xbean/SpringXBeanTest.java (original)
+++ mina/trunk/integration-xbean/src/test/java/org/apache/mina/integration/xbean/SpringXBeanTest.java Wed Aug 27 14:32:31 2008
@@ -20,7 +20,9 @@
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
import org.apache.xbean.spring.context.FileSystemXmlApplicationContext;
@@ -28,6 +30,7 @@
import org.springframework.context.ApplicationContext;
import java.io.File;
+import java.net.InetSocketAddress;
import java.net.URL;
@@ -52,17 +55,42 @@
// test default without any properties
NioDatagramAcceptor acceptor0 = ( NioDatagramAcceptor ) factory.getBean( "datagramAcceptor0" );
- assertNotNull( acceptor0 );
+ assertNotNull( "acceptor0 should not be null", acceptor0 );
+ assertTrue(
+ "Default constructor for NioDatagramAcceptor should have true value for closeOnDeactivation property",
+ acceptor0.isCloseOnDeactivation() );
// test setting the port and IP for the acceptor
NioDatagramAcceptor acceptor1 = ( NioDatagramAcceptor ) factory.getBean( "datagramAcceptor1" );
- assertNotNull( acceptor1 );
+ assertNotNull( "acceptor1 should not be null", acceptor1 );
assertEquals( "192.168.0.1", acceptor1.getDefaultLocalAddress().getAddress().getHostAddress() );
assertEquals( 110, acceptor1.getDefaultLocalAddress().getPort() );
- // test creating with executor
+ // test creating with executor and some primitive properties
NioDatagramAcceptor acceptor2 = ( NioDatagramAcceptor ) factory.getBean( "datagramAcceptor2" );
assertNotNull( acceptor2 );
+ assertFalse( acceptor2.isCloseOnDeactivation() );
+ assertFalse(
+ "NioDatagramAcceptor should have false value for closeOnDeactivation property",
+ acceptor2.isCloseOnDeactivation() );
+
+ // test creating with multiple addresses
+ NioDatagramAcceptor acceptor3 = ( NioDatagramAcceptor ) factory.getBean( "datagramAcceptor3" );
+ assertNotNull( acceptor3 );
+ assertEquals( 3, acceptor3.getDefaultLocalAddresses().size() );
+
+ InetSocketAddress address1 = ( InetSocketAddress ) acceptor3.getDefaultLocalAddresses().get( 0 );
+ assertEquals( "192.168.0.1", address1.getAddress().getHostAddress() );
+ assertEquals( 10001, address1.getPort() );
+
+ InetSocketAddress address2 = ( InetSocketAddress ) acceptor3.getDefaultLocalAddresses().get( 1 );
+ assertEquals( "192.168.0.2", address2.getAddress().getHostAddress() );
+ assertEquals( 10002, address2.getPort() );
+
+ InetSocketAddress address3 = ( InetSocketAddress ) acceptor3.getDefaultLocalAddresses().get( 2 );
+ assertEquals( "192.168.0.3", address3.getAddress().getHostAddress() );
+ assertEquals( 10003, address3.getPort() );
+
// test with multiple default addresses
// NioDatagramAcceptor acceptor3 = ( NioDatagramAcceptor ) factory.getBean( "datagramAcceptor3" );
Modified: mina/trunk/integration-xbean/src/test/resources/org/apache/mina/integration/xbean/datagramAcceptor.xml
URL: http://svn.apache.org/viewvc/mina/trunk/integration-xbean/src/test/resources/org/apache/mina/integration/xbean/datagramAcceptor.xml?rev=689628&r1=689627&r2=689628&view=diff
==============================================================================
--- mina/trunk/integration-xbean/src/test/resources/org/apache/mina/integration/xbean/datagramAcceptor.xml (original)
+++ mina/trunk/integration-xbean/src/test/resources/org/apache/mina/integration/xbean/datagramAcceptor.xml Wed Aug 27 14:32:31 2008
@@ -27,9 +27,15 @@
<nioDatagramAcceptor id="datagramAcceptor1" defaultLocalAddress="192.168.0.1:110" />
- <nioDatagramAcceptor id="datagramAcceptor2" executor="#threadPoolExecutor" />
+ <nioDatagramAcceptor id="datagramAcceptor2" executor="#threadPoolExecutor" closeOnDeactivation="false" />
- <nioDatagramAcceptor id="datagramAcceptor3"/>
+ <nioDatagramAcceptor id="datagramAcceptor3">
+ <defaultLocalAddresses>
+ <socketAddress>192.168.0.1:10001</socketAddress>
+ <socketAddress>192.168.0.2:10002</socketAddress>
+ <socketAddress>192.168.0.3:10003</socketAddress>
+ </defaultLocalAddresses>
+ </nioDatagramAcceptor>
<nioDatagramAcceptor id="datagramAcceptor4" />