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 ([EMAIL PROTECTED])
* @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 [EMAIL PROTECTED] #connect()} method.
+ */
+ SocketAddress getDefaultRemoteAddress();
+
+ /**
+ * Sets the default remote address to connect to when no argument is
+ * specified in [EMAIL PROTECTED] #connect()} method.
+ */
+ void setDefaultRemoteAddress(SocketAddress defaultRemoteAddress);
+
+ /**
+ * Connects to the [EMAIL PROTECTED]
#setDefaultRemoteAddress(SocketAddress) default remote address}.
+ *
+ * @throws IllegalStateException if no default remoted address is set.
+ */
+ ConnectFuture connect();
+
+ /**
* Connects to the specified remote address.
*
* @return the [EMAIL PROTECTED] ConnectFuture} instance which is
completed when the