Author: trustin
Date: Fri Aug 17 19:27:05 2007
New Revision: 567208
URL: http://svn.apache.org/viewvc?view=rev&rev=567208
Log:
Resolved issue: DIRMINA-417 (Move idleTime and writeTimeout property to
IoSessionConfig (from IoSession).)
* Moved idleTime and writeTimeout property to IoSessionConfig
* Added IoSessionConfig.setAll() and added its default implementation to
AbstractIoSessionConfig
* Removed SerialSessionConfig.timeout because it can be replaced with
IoService.connectTimeout
Added:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java
(with props)
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java
(with props)
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSessionConfig.java
mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionConfig.java
mina/trunk/core/src/main/java/org/apache/mina/handler/stream/StreamIoHandler.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSessionImpl.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java
mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java
mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/httpserver/codec/ServerHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/netcat/NetCatProtocolHandler.java
mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManagerMBean.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
Fri Aug 17 19:27:05 2007
@@ -52,15 +52,6 @@
private boolean closing;
- // Configuration variables
- private int idleTimeForRead;
-
- private int idleTimeForWrite;
-
- private int idleTimeForBoth;
-
- private int writeTimeout;
-
private TrafficMask trafficMask = TrafficMask.ALL;
// Status variables
@@ -315,58 +306,6 @@
synchronized (attributes) {
return new HashSet<String>(attributes.keySet());
}
- }
-
- public int getIdleTime(IdleStatus status) {
- if (status == IdleStatus.BOTH_IDLE) {
- return idleTimeForBoth;
- }
-
- if (status == IdleStatus.READER_IDLE) {
- return idleTimeForRead;
- }
-
- if (status == IdleStatus.WRITER_IDLE) {
- return idleTimeForWrite;
- }
-
- throw new IllegalArgumentException("Unknown idle status: " + status);
- }
-
- public long getIdleTimeInMillis(IdleStatus status) {
- return getIdleTime(status) * 1000L;
- }
-
- public void setIdleTime(IdleStatus status, int idleTime) {
- if (idleTime < 0) {
- throw new IllegalArgumentException("Illegal idle time: " +
idleTime);
- }
-
- if (status == IdleStatus.BOTH_IDLE) {
- idleTimeForBoth = idleTime;
- } else if (status == IdleStatus.READER_IDLE) {
- idleTimeForRead = idleTime;
- } else if (status == IdleStatus.WRITER_IDLE) {
- idleTimeForWrite = idleTime;
- } else {
- throw new IllegalArgumentException("Unknown idle status: " +
status);
- }
- }
-
- public int getWriteTimeout() {
- return writeTimeout;
- }
-
- public long getWriteTimeoutInMillis() {
- return writeTimeout * 1000L;
- }
-
- public void setWriteTimeout(int writeTimeout) {
- if (writeTimeout < 0) {
- throw new IllegalArgumentException("Illegal write timeout: "
- + writeTimeout);
- }
- this.writeTimeout = writeTimeout;
}
public TrafficMask getTrafficMask() {
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSessionConfig.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -27,6 +27,83 @@
* @version $Rev$, $Date$
*/
public abstract class AbstractIoSessionConfig implements IoSessionConfig {
+
+ private int idleTimeForRead;
+ private int idleTimeForWrite;
+ private int idleTimeForBoth;
+ private int writeTimeout;
+
protected AbstractIoSessionConfig() {
+ }
+
+ public final void setAll(IoSessionConfig config) {
+ if (config == null) {
+ throw new NullPointerException("config");
+ }
+
+ setIdleTime(IdleStatus.BOTH_IDLE,
config.getIdleTime(IdleStatus.BOTH_IDLE));
+ setIdleTime(IdleStatus.READER_IDLE,
config.getIdleTime(IdleStatus.READER_IDLE));
+ setIdleTime(IdleStatus.WRITER_IDLE,
config.getIdleTime(IdleStatus.WRITER_IDLE));
+ setWriteTimeout(config.getWriteTimeout());
+
+ doSetAll(config);
+ }
+
+ /**
+ * Implement this method to set all transport-specific configuration
+ * properties retrieved from the specified <tt>config</tt>.
+ */
+ protected abstract void doSetAll(IoSessionConfig config);
+
+ public int getIdleTime(IdleStatus status) {
+ if (status == IdleStatus.BOTH_IDLE) {
+ return idleTimeForBoth;
+ }
+
+ if (status == IdleStatus.READER_IDLE) {
+ return idleTimeForRead;
+ }
+
+ if (status == IdleStatus.WRITER_IDLE) {
+ return idleTimeForWrite;
+ }
+
+ throw new IllegalArgumentException("Unknown idle status: " + status);
+ }
+
+ public long getIdleTimeInMillis(IdleStatus status) {
+ return getIdleTime(status) * 1000L;
+ }
+
+ public void setIdleTime(IdleStatus status, int idleTime) {
+ if (idleTime < 0) {
+ throw new IllegalArgumentException("Illegal idle time: " +
idleTime);
+ }
+
+ if (status == IdleStatus.BOTH_IDLE) {
+ idleTimeForBoth = idleTime;
+ } else if (status == IdleStatus.READER_IDLE) {
+ idleTimeForRead = idleTime;
+ } else if (status == IdleStatus.WRITER_IDLE) {
+ idleTimeForWrite = idleTime;
+ } else {
+ throw new IllegalArgumentException("Unknown idle status: " +
status);
+ }
+ }
+
+ public int getWriteTimeout() {
+ return writeTimeout;
+ }
+
+ public long getWriteTimeoutInMillis() {
+ return writeTimeout * 1000L;
+ }
+
+ public void setWriteTimeout(int writeTimeout) {
+ if (writeTimeout < 0) {
+ throw new IllegalArgumentException("Illegal write timeout: "
+ + writeTimeout);
+ }
+ this.writeTimeout = writeTimeout;
}
}
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IdleStatusChecker.java
Fri Aug 17 19:27:05 2007
@@ -84,15 +84,15 @@
private void notifyIdleSession(AbstractIoSession session, long
currentTime) {
notifyIdleSession0(session, currentTime, session
- .getIdleTimeInMillis(IdleStatus.BOTH_IDLE),
+ .getConfig().getIdleTimeInMillis(IdleStatus.BOTH_IDLE),
IdleStatus.BOTH_IDLE, Math.max(session.getLastIoTime(), session
.getLastIdleTime(IdleStatus.BOTH_IDLE)));
notifyIdleSession0(session, currentTime, session
- .getIdleTimeInMillis(IdleStatus.READER_IDLE),
+ .getConfig().getIdleTimeInMillis(IdleStatus.READER_IDLE),
IdleStatus.READER_IDLE, Math.max(session.getLastReadTime(),
session.getLastIdleTime(IdleStatus.READER_IDLE)));
notifyIdleSession0(session, currentTime, session
- .getIdleTimeInMillis(IdleStatus.WRITER_IDLE),
+ .getConfig().getIdleTimeInMillis(IdleStatus.WRITER_IDLE),
IdleStatus.WRITER_IDLE, Math.max(session.getLastWriteTime(),
session.getLastIdleTime(IdleStatus.WRITER_IDLE)));
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoSession.java Fri Aug
17 19:27:05 2007
@@ -251,36 +251,6 @@
SocketAddress getServiceAddress();
/**
- * Returns idle time for the specified type of idleness in seconds.
- */
- int getIdleTime(IdleStatus status);
-
- /**
- * Returns idle time for the specified type of idleness in milliseconds.
- */
- long getIdleTimeInMillis(IdleStatus status);
-
- /**
- * Sets idle time for the specified type of idleness in seconds.
- */
- void setIdleTime(IdleStatus status, int idleTime);
-
- /**
- * Returns write timeout in seconds.
- */
- int getWriteTimeout();
-
- /**
- * Returns write timeout in milliseconds.
- */
- long getWriteTimeoutInMillis();
-
- /**
- * Sets write timeout in seconds.
- */
- void setWriteTimeout(int writeTimeout);
-
- /**
* Returns the current [EMAIL PROTECTED] TrafficMask} of this session.
*/
TrafficMask getTrafficMask();
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionConfig.java
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -26,4 +26,39 @@
* @version $Rev$, $Date$
*/
public interface IoSessionConfig {
+ /**
+ * Returns idle time for the specified type of idleness in seconds.
+ */
+ int getIdleTime(IdleStatus status);
+
+ /**
+ * Returns idle time for the specified type of idleness in milliseconds.
+ */
+ long getIdleTimeInMillis(IdleStatus status);
+
+ /**
+ * Sets idle time for the specified type of idleness in seconds.
+ */
+ void setIdleTime(IdleStatus status, int idleTime);
+
+ /**
+ * Returns write timeout in seconds.
+ */
+ int getWriteTimeout();
+
+ /**
+ * Returns write timeout in milliseconds.
+ */
+ long getWriteTimeoutInMillis();
+
+ /**
+ * Sets write timeout in seconds.
+ */
+ void setWriteTimeout(int writeTimeout);
+
+ /**
+ * Sets all configuration properties retrieved from the specified
+ * <tt>config</tt>.
+ */
+ void setAll(IoSessionConfig config);
}
Modified:
mina/trunk/core/src/main/java/org/apache/mina/handler/stream/StreamIoHandler.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/handler/stream/StreamIoHandler.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/handler/stream/StreamIoHandler.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/handler/stream/StreamIoHandler.java
Fri Aug 17 19:27:05 2007
@@ -102,8 +102,8 @@
@Override
public void sessionOpened(IoSession session) {
// Set timeouts
- session.setWriteTimeout(writeTimeout);
- session.setIdleTime(IdleStatus.READER_IDLE, readTimeout);
+ session.getConfig().setWriteTimeout(writeTimeout);
+ session.getConfig().setIdleTime(IdleStatus.READER_IDLE, readTimeout);
// Create streams
InputStream in = new IoSessionInputStream();
Added:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java?view=auto&rev=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java
(added)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -0,0 +1,49 @@
+/*
+ * 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.transport.socket.nio;
+
+import org.apache.mina.common.AbstractIoSessionConfig;
+import org.apache.mina.common.IoSessionConfig;
+
+/**
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
+abstract class AbstractDatagramSessionConfig extends
+ AbstractIoSessionConfig implements DatagramSessionConfig {
+
+ protected AbstractDatagramSessionConfig() {
+ }
+
+ protected void doSetAll(IoSessionConfig config) {
+ if (config instanceof DatagramSessionConfig) {
+ DatagramSessionConfig cfg = (DatagramSessionConfig) config;
+ setBroadcast(cfg.isBroadcast());
+ setReceiveBufferSize(cfg.getReceiveBufferSize());
+ setReuseAddress(cfg.isReuseAddress());
+ setSendBufferSize(cfg.getSendBufferSize());
+
+ if (getTrafficClass() != cfg.getTrafficClass()) {
+ setTrafficClass(cfg.getTrafficClass());
+ }
+ }
+ }
+
+}
\ No newline at end of file
Propchange:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractDatagramSessionConfig.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java?view=auto&rev=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java
(added)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -0,0 +1,52 @@
+/*
+ * 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.transport.socket.nio;
+
+import org.apache.mina.common.AbstractIoSessionConfig;
+import org.apache.mina.common.IoSessionConfig;
+
+/**
+ * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * @version $Rev$, $Date$
+ */
+abstract class AbstractSocketSessionConfig extends AbstractIoSessionConfig
+ implements SocketSessionConfig {
+
+ protected AbstractSocketSessionConfig() {
+ }
+
+ protected final void doSetAll(IoSessionConfig config) {
+ if (config instanceof SocketSessionConfig) {
+ SocketSessionConfig cfg = (SocketSessionConfig) config;
+ setKeepAlive(cfg.isKeepAlive());
+ setOobInline(cfg.isOobInline());
+ setReceiveBufferSize(cfg.getReceiveBufferSize());
+ setReuseAddress(cfg.isReuseAddress());
+ setSendBufferSize(cfg.getSendBufferSize());
+ setSoLinger(cfg.getSoLinger());
+ setTcpNoDelay(cfg.isTcpNoDelay());
+
+ if (getTrafficClass() != cfg.getTrafficClass()) {
+ setTrafficClass(cfg.getTrafficClass());
+ }
+ }
+ }
+
+}
\ No newline at end of file
Propchange:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/AbstractSocketSessionConfig.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSessionImpl.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSessionImpl.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSessionImpl.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSessionImpl.java
Fri Aug 17 19:27:05 2007
@@ -36,7 +36,6 @@
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoServiceMetadata;
import org.apache.mina.common.IoSession;
-import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.RuntimeIOException;
import org.apache.mina.common.WriteFuture;
import org.apache.mina.common.WriteRequest;
@@ -93,7 +92,7 @@
// serviceAddress represents the same address in IPv4.
this.localAddress = service.getLocalAddress();
- applySettings();
+ this.config.setAll(service.getSessionConfig());
}
/**
@@ -109,23 +108,7 @@
this.localAddress = (InetSocketAddress) ch.socket()
.getLocalSocketAddress();
- applySettings();
- }
-
- private void applySettings() {
- // Apply the initial session settings
- IoSessionConfig sessionConfig = getService().getSessionConfig();
- if (sessionConfig instanceof DatagramSessionConfig) {
- DatagramSessionConfig cfg = (DatagramSessionConfig) sessionConfig;
- this.config.setBroadcast(cfg.isBroadcast());
- this.config.setReceiveBufferSize(cfg.getReceiveBufferSize());
- this.config.setReuseAddress(cfg.isReuseAddress());
- this.config.setSendBufferSize(cfg.getSendBufferSize());
-
- if (this.config.getTrafficClass() != cfg.getTrafficClass()) {
- this.config.setTrafficClass(cfg.getTrafficClass());
- }
- }
+ this.config.setAll(service.getSessionConfig());
}
public IoService getService() {
@@ -238,9 +221,8 @@
return readBufferSize;
}
- private class SessionConfigImpl extends DefaultDatagramSessionConfig
- implements DatagramSessionConfig {
- @Override
+ private class SessionConfigImpl extends AbstractDatagramSessionConfig {
+
public int getReceiveBufferSize() {
try {
return ch.socket().getReceiveBufferSize();
@@ -249,7 +231,6 @@
}
}
- @Override
public void setReceiveBufferSize(int receiveBufferSize) {
if
(DefaultDatagramSessionConfig.isSetReceiveBufferSizeAvailable()) {
try {
@@ -263,7 +244,6 @@
}
}
- @Override
public boolean isBroadcast() {
try {
return ch.socket().getBroadcast();
@@ -272,7 +252,6 @@
}
}
- @Override
public void setBroadcast(boolean broadcast) {
try {
ch.socket().setBroadcast(broadcast);
@@ -281,7 +260,6 @@
}
}
- @Override
public int getSendBufferSize() {
try {
return ch.socket().getSendBufferSize();
@@ -290,7 +268,6 @@
}
}
- @Override
public void setSendBufferSize(int sendBufferSize) {
if (DefaultDatagramSessionConfig.isSetSendBufferSizeAvailable()) {
try {
@@ -301,7 +278,6 @@
}
}
- @Override
public boolean isReuseAddress() {
try {
return ch.socket().getReuseAddress();
@@ -310,7 +286,6 @@
}
}
- @Override
public void setReuseAddress(boolean reuseAddress) {
try {
ch.socket().setReuseAddress(reuseAddress);
@@ -319,7 +294,6 @@
}
}
- @Override
public int getTrafficClass() {
if (DefaultDatagramSessionConfig.isGetTrafficClassAvailable()) {
try {
@@ -332,7 +306,6 @@
}
}
- @Override
public void setTrafficClass(int trafficClass) {
if (DefaultDatagramSessionConfig.isSetTrafficClassAvailable()) {
try {
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -22,7 +22,6 @@
import java.net.DatagramSocket;
import java.net.SocketException;
-import org.apache.mina.common.AbstractIoSessionConfig;
import org.apache.mina.common.ExceptionMonitor;
/**
@@ -31,8 +30,8 @@
* @author The Apache MINA Project ([EMAIL PROTECTED])
* @version $Rev: 439913 $, $Date: 2006-09-04 05:12:43 +0200 (mån, 04 sep
2006) $
*/
-class DefaultDatagramSessionConfig extends AbstractIoSessionConfig implements
- DatagramSessionConfig {
+class DefaultDatagramSessionConfig extends AbstractDatagramSessionConfig {
+
private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
private static boolean SET_SEND_BUFFER_SIZE_AVAILABLE = false;
@@ -129,7 +128,7 @@
*/
DefaultDatagramSessionConfig() {
}
-
+
/**
* @see DatagramSocket#getBroadcast()
*/
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -30,7 +30,6 @@
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.mina.common.AbstractIoSessionConfig;
import org.apache.mina.common.ExceptionMonitor;
/**
@@ -39,8 +38,8 @@
* @author The Apache MINA Project ([EMAIL PROTECTED])
* @version $Rev$, $Date$
*/
-class DefaultSocketSessionConfig extends AbstractIoSessionConfig implements
- SocketSessionConfig {
+class DefaultSocketSessionConfig extends AbstractSocketSessionConfig {
+
private static Map<InetSocketAddress, InetAddress> TEST_ADDRESSES = new
LinkedHashMap<InetSocketAddress, InetAddress>();
private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketIoProcessor.java
Fri Aug 17 19:27:05 2007
@@ -279,20 +279,20 @@
private void notifyIdleness(SocketSessionImpl session, long currentTime) {
notifyIdleness0(session, currentTime, session
- .getIdleTimeInMillis(IdleStatus.BOTH_IDLE),
+ .getConfig().getIdleTimeInMillis(IdleStatus.BOTH_IDLE),
IdleStatus.BOTH_IDLE, Math.max(session.getLastIoTime(), session
.getLastIdleTime(IdleStatus.BOTH_IDLE)));
notifyIdleness0(session, currentTime, session
- .getIdleTimeInMillis(IdleStatus.READER_IDLE),
+ .getConfig().getIdleTimeInMillis(IdleStatus.READER_IDLE),
IdleStatus.READER_IDLE, Math.max(session.getLastReadTime(),
session.getLastIdleTime(IdleStatus.READER_IDLE)));
notifyIdleness0(session, currentTime, session
- .getIdleTimeInMillis(IdleStatus.WRITER_IDLE),
+ .getConfig().getIdleTimeInMillis(IdleStatus.WRITER_IDLE),
IdleStatus.WRITER_IDLE, Math.max(session.getLastWriteTime(),
session.getLastIdleTime(IdleStatus.WRITER_IDLE)));
notifyWriteTimeout(session, currentTime, session
- .getWriteTimeoutInMillis(), session.getLastWriteTime());
+ .getConfig().getWriteTimeoutInMillis(),
session.getLastWriteTime());
}
private void notifyIdleness0(SocketSessionImpl session, long currentTime,
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java
Fri Aug 17 19:27:05 2007
@@ -27,7 +27,6 @@
import java.util.Queue;
import org.apache.mina.common.AbstractIoSession;
-import org.apache.mina.common.AbstractIoSessionConfig;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.DefaultIoServiceMetadata;
import org.apache.mina.common.FileRegion;
@@ -36,7 +35,6 @@
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoServiceMetadata;
import org.apache.mina.common.IoSession;
-import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.RuntimeIOException;
import org.apache.mina.common.WriteRequest;
@@ -84,23 +82,7 @@
this.ch = ch;
this.writeRequestQueue = new LinkedList<WriteRequest>();
this.handler = service.getHandler();
-
- // Apply the initial session settings
- IoSessionConfig sessionConfig = service.getSessionConfig();
- if (sessionConfig instanceof SocketSessionConfig) {
- SocketSessionConfig cfg = (SocketSessionConfig) sessionConfig;
- this.config.setKeepAlive(cfg.isKeepAlive());
- this.config.setOobInline(cfg.isOobInline());
- this.config.setReceiveBufferSize(cfg.getReceiveBufferSize());
- this.config.setReuseAddress(cfg.isReuseAddress());
- this.config.setSendBufferSize(cfg.getSendBufferSize());
- this.config.setSoLinger(cfg.getSoLinger());
- this.config.setTcpNoDelay(cfg.isTcpNoDelay());
-
- if (this.config.getTrafficClass() != cfg.getTrafficClass()) {
- this.config.setTrafficClass(cfg.getTrafficClass());
- }
- }
+ this.config.setAll(service.getSessionConfig());
}
public IoService getService() {
@@ -206,8 +188,7 @@
this.readBufferSize = readBufferSize;
}
- private class SessionConfigImpl extends AbstractIoSessionConfig implements
- SocketSessionConfig {
+ private class SessionConfigImpl extends AbstractSocketSessionConfig {
public boolean isKeepAlive() {
try {
return ch.socket().getKeepAlive();
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -20,6 +20,7 @@
package org.apache.mina.transport.vmpipe;
import org.apache.mina.common.AbstractIoSessionConfig;
+import org.apache.mina.common.IoSessionConfig;
/**
* A default implementation of [EMAIL PROTECTED] VmPipeSessionConfig}.
@@ -30,5 +31,9 @@
class DefaultVmPipeSessionConfig extends AbstractIoSessionConfig implements
VmPipeSessionConfig {
DefaultVmPipeSessionConfig() {
+ }
+
+ @Override
+ protected void doSetAll(IoSessionConfig config) {
}
}
Modified:
mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
(original)
+++
mina/trunk/core/src/test/java/org/apache/mina/filter/stream/StreamWriteFilterTest.java
Fri Aug 17 19:27:05 2007
@@ -488,7 +488,7 @@
public void sessionCreated(IoSession session) throws Exception {
super.sessionCreated(session);
- session.setIdleTime(IdleStatus.READER_IDLE, 5);
+ session.getConfig().setIdleTime(IdleStatus.READER_IDLE, 5);
}
@Override
Modified:
mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java
(original)
+++
mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java
Fri Aug 17 19:27:05 2007
@@ -178,7 +178,7 @@
.setReceiveBufferSize(2048);
}
- session.setIdleTime(IdleStatus.BOTH_IDLE, 10);
+ session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
}
@Override
Modified:
mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
URL:
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
(original)
+++
mina/trunk/example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
Fri Aug 17 19:27:05 2007
@@ -47,7 +47,7 @@
config.setReceiveBufferSize(2048);
}
- session.setIdleTime(IdleStatus.BOTH_IDLE, 10);
+ session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
// We're going to use SSL negotiation notification.
session.setAttribute(SSLFilter.USE_NOTIFICATION);
Modified:
mina/trunk/example/src/main/java/org/apache/mina/example/httpserver/codec/ServerHandler.java
URL:
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/httpserver/codec/ServerHandler.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/example/src/main/java/org/apache/mina/example/httpserver/codec/ServerHandler.java
(original)
+++
mina/trunk/example/src/main/java/org/apache/mina/example/httpserver/codec/ServerHandler.java
Fri Aug 17 19:27:05 2007
@@ -36,7 +36,7 @@
@Override
public void sessionOpened(IoSession session) {
// set idle time to 60 seconds
- session.setIdleTime(IdleStatus.BOTH_IDLE, 60);
+ session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 60);
}
@Override
Modified:
mina/trunk/example/src/main/java/org/apache/mina/example/netcat/NetCatProtocolHandler.java
URL:
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/netcat/NetCatProtocolHandler.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/example/src/main/java/org/apache/mina/example/netcat/NetCatProtocolHandler.java
(original)
+++
mina/trunk/example/src/main/java/org/apache/mina/example/netcat/NetCatProtocolHandler.java
Fri Aug 17 19:27:05 2007
@@ -38,7 +38,7 @@
// Set reader idle time to 10 seconds.
// sessionIdle(...) method will be invoked when no data is read
// for 10 seconds.
- session.setIdleTime(IdleStatus.READER_IDLE, 10);
+ session.getConfig().setIdleTime(IdleStatus.READER_IDLE, 10);
}
@Override
Modified:
mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
URL:
http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
(original)
+++
mina/trunk/example/src/main/java/org/apache/mina/example/sumup/ServerSessionHandler.java
Fri Aug 17 19:27:05 2007
@@ -37,7 +37,7 @@
@Override
public void sessionOpened(IoSession session) {
// set idle time to 60 seconds
- session.setIdleTime(IdleStatus.BOTH_IDLE, 60);
+ session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 60);
// initial sum is zero
session.setAttachment(new Integer(0));
Modified:
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java
URL:
http://svn.apache.org/viewvc/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java
(original)
+++
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java
Fri Aug 17 19:27:05 2007
@@ -151,29 +151,6 @@
session.getFilterChain().remove("LoggerFirst");
}
- // IDLE monitoring
-
- /**
- * @see archean.util.mina.IoSessionManagerMBean#getReadIdleTime()
- */
- public long getReadIdleTime() {
- return session.getIdleTimeInMillis(IdleStatus.READER_IDLE);
- }
-
- /**
- * @see archean.util.mina.IoSessionManagerMBean#getWriteIdleTime()
- */
- public long getWriteIdleTime() {
- return session.getIdleTimeInMillis(IdleStatus.WRITER_IDLE);
- }
-
- /**
- * @see archean.util.mina.IoSessionManagerMBean#getBothIdleTime()
- */
- public long getBothIdleTime() {
- return session.getIdleTimeInMillis(IdleStatus.BOTH_IDLE);
- }
-
public float getByteReadThroughtput() {
IoSessionStat stats = (IoSessionStat) session
.getAttribute(StatCollector.KEY);
Modified:
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManagerMBean.java
URL:
http://svn.apache.org/viewvc/mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManagerMBean.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManagerMBean.java
(original)
+++
mina/trunk/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManagerMBean.java
Fri Aug 17 19:27:05 2007
@@ -22,7 +22,8 @@
import java.util.Date;
/**
- * MBean interface for the session manager, it's used for instrumenting
IoSession
+ * MBean interface for the session manager, it's used for instrumenting
IoSession
+ *
* @author The Apache MINA Project ([EMAIL PROTECTED])
* @version $Rev$, $Date$
*/
@@ -111,24 +112,6 @@
* remove the logging filter at begining of the chain
*/
public void removeFirstLoggingFilter();
-
- /**
- * read and write IDLE time
- * @return idle time in milli-seconds
- */
- public long getBothIdleTime();
-
- /**
- * read IDLE time
- * @return read idle time in milli-seconds
- */
- public long getReadIdleTime();
-
- /**
- * write IDLE time
- * @return write idle time in milli-seconds
- */
- public long getWriteIdleTime();
/**
* get the read bytes per second throughput
Modified:
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java
(original)
+++
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -20,6 +20,7 @@
package org.apache.mina.transport.serial;
import org.apache.mina.common.AbstractIoSessionConfig;
+import org.apache.mina.common.IoSessionConfig;
/**
* The default configuration for a serial session [EMAIL PROTECTED]
SerialSessionConfig}.
@@ -29,8 +30,6 @@
*/
public class DefaultSerialSessionConfig extends AbstractIoSessionConfig
implements SerialSessionConfig {
- private int timeout = 2000;
-
private int receiveThreshold = -1;
private int inputBufferSize = 8;
@@ -40,6 +39,14 @@
public DefaultSerialSessionConfig() {
}
+
+ protected void doSetAll(IoSessionConfig config) {
+ if (config instanceof SerialSessionConfig) {
+ SerialSessionConfig cfg = (SerialSessionConfig) config;
+ setInputBufferSize(cfg.getInputBufferSize());
+ setReceiveThreshold(cfg.getReceiveThreshold());
+ }
+ }
public int getInputBufferSize() {
return inputBufferSize;
@@ -63,13 +70,5 @@
public void setReceiveThreshold(int bytes) {
receiveThreshold = bytes;
- }
-
- public int getTimeout() {
- return timeout;
- }
-
- public void setTimeout(int timeout) {
- this.timeout = timeout;
}
}
Modified:
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java
URL:
http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java
(original)
+++
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java
Fri Aug 17 19:27:05 2007
@@ -130,8 +130,13 @@
SerialSessionConfig config = (SerialSessionConfig) getSessionConfig();
- SerialPort serialPort = (SerialPort) portId.open(user, config
- .getTimeout());
+ long connectTimeout = getConnectTimeoutMillis();
+ if (connectTimeout > Integer.MAX_VALUE) {
+ connectTimeout = Integer.MAX_VALUE;
+ }
+
+ SerialPort serialPort = (SerialPort) portId.open(
+ user, (int) connectTimeout);
serialPort.setSerialPortParams(portAddress.getBauds(), portAddress
.getDataBitsForRXTX(), portAddress.getStopBitsForRXTX(),
Modified:
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java
URL:
http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java?view=diff&rev=567208&r1=567207&r2=567208
==============================================================================
---
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java
(original)
+++
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java
Fri Aug 17 19:27:05 2007
@@ -31,18 +31,6 @@
public interface SerialSessionConfig extends IoSessionConfig {
/**
- * Gets the timeout for port opening in milliseconds.
- * @return timeout for port opening in milliseconds
- */
- int getTimeout();
-
- /**
- * Sets the timeout for opening the port. Value in milliseconds.
- * @param timeout the timeout value in millseconds
- */
- public void setTimeout(int timeout);
-
- /**
* Gets the input buffer size. Note that this method is advisory and the
underlying OS
* may choose not to report correct values for the buffer size.
* @return input buffer size in bytes