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