You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/14 02:21:13 UTC

svn commit: r594735 - in /mina/trunk/core/src/main/java/org/apache/mina/common: AbstractIoConnector.java IoConnector.java

Author: trustin
Date: Tue Nov 13 17:21:12 2007
New Revision: 594735

URL: http://svn.apache.org/viewvc?rev=594735&view=rev
Log:
* Added IoConnector.defaultRemoteAddress
* Added IoConnector.connect() which uses defaultRemoteAddress as an endpoint.
** This is very useful when a user want to initiate connection attempt from an IoC container, by setting defaultRemoteAddress property and setting connect() method as an initializer.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java
    mina/trunk/core/src/main/java/org/apache/mina/common/IoConnector.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java?rev=594735&r1=594734&r2=594735&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoConnector.java Tue Nov 13 17:21:12 2007
@@ -28,9 +28,11 @@
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-public abstract class AbstractIoConnector extends AbstractIoService implements
-        IoConnector {
+public abstract class AbstractIoConnector 
+        extends AbstractIoService implements IoConnector {
+    
     private int connectTimeout = 60; // 1 minute
+    private SocketAddress defaultRemoteAddress;
 
     protected AbstractIoConnector(IoSessionConfig sessionConfig) {
         super(sessionConfig);
@@ -50,6 +52,33 @@
                     + connectTimeout);
         }
         this.connectTimeout = connectTimeout;
+    }
+
+    public SocketAddress getDefaultRemoteAddress() {
+        return defaultRemoteAddress;
+    }
+
+    public void setDefaultRemoteAddress(SocketAddress defaultRemoteAddress) {
+        if (defaultRemoteAddress == null) {
+            throw new NullPointerException("defaultRemoteAddress");
+        }
+        
+        if (!getTransportMetadata().getAddressType().isAssignableFrom(
+                defaultRemoteAddress.getClass())) {
+            throw new IllegalArgumentException("defaultRemoteAddress type: "
+                    + defaultRemoteAddress.getClass() + " (expected: "
+                    + getTransportMetadata().getAddressType() + ")");
+        }
+        this.defaultRemoteAddress = defaultRemoteAddress;
+    }
+    
+    public final ConnectFuture connect() {
+        SocketAddress defaultRemoteAddress = getDefaultRemoteAddress();
+        if (defaultRemoteAddress == null) {
+            throw new IllegalStateException("defaultRemoteAddress is not set.");
+        }
+        
+        return connect(defaultRemoteAddress, null);
     }
 
     public final ConnectFuture connect(SocketAddress remoteAddress) {

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoConnector.java?rev=594735&r1=594734&r2=594735&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoConnector.java Tue Nov 13 17:21:12 2007
@@ -57,6 +57,25 @@
     void setConnectTimeout(int connectTimeout);
 
     /**
+     * Returns the default remote address to connect to when no argument
+     * is specified in {@link #connect()} method.
+     */
+    SocketAddress getDefaultRemoteAddress();
+    
+    /**
+     * Sets the default remote address to connect to when no argument is
+     * specified in {@link #connect()} method.
+     */
+    void setDefaultRemoteAddress(SocketAddress defaultRemoteAddress);
+
+    /**
+     * Connects to the {@link #setDefaultRemoteAddress(SocketAddress) default remote address}.
+     * 
+     * @throws IllegalStateException if no default remoted address is set.
+     */
+    ConnectFuture connect();
+    
+    /**
      * Connects to the specified remote address.
      *
      * @return the {@link ConnectFuture} instance which is completed when the