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" />