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/08/18 03:50:00 UTC
svn commit: r567200 - in /mina/trunk:
core/src/main/java/org/apache/mina/common/
core/src/main/java/org/apache/mina/transport/socket/nio/
core/src/main/java/org/apache/mina/transport/vmpipe/
transport-serial/src/main/java/org/apache/mina/transport/serial/
Author: trustin
Date: Fri Aug 17 18:49:59 2007
New Revision: 567200
URL: http://svn.apache.org/viewvc?view=rev&rev=567200
Log:
* Moved IoServiceMetadata instances to session implementation classes like Julien did. (I didn't like subclassing anyway :)
* IoServiceMetadata.envelopeType has been replaced with IoServiceMetadata.envelopeTypes (java.util.Set)
Removed:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramServiceMetadata.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketServiceMetadata.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeServiceMetadata.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoServiceMetadata.java
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceMetadata.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.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/SocketAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.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/VmPipeAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoServiceMetadata.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoServiceMetadata.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoServiceMetadata.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoServiceMetadata.java Fri Aug 17 18:49:59 2007
@@ -20,6 +20,10 @@
package org.apache.mina.common;
import java.net.SocketAddress;
+import java.util.Collections;
+import java.util.Set;
+
+import org.apache.mina.util.IdentityHashSet;
/**
@@ -34,16 +38,16 @@
private final boolean connectionless;
private final boolean fragmentation;
private final Class<? extends SocketAddress> addressType;
- private final Class<? extends Object> envelopeType;
private final Class<? extends IoSessionConfig> sessionConfigType;
+ private final Set<Class<? extends Object>> envelopeTypes;
public DefaultIoServiceMetadata(
String name,
boolean connectionless,
boolean fragmentation,
Class<? extends SocketAddress> addressType,
- Class<? extends Object> envelopeType,
- Class<? extends IoSessionConfig> sessionConfigType) {
+ Class<? extends IoSessionConfig> sessionConfigType,
+ Class<?>... envelopeTypes) {
if (name == null) {
throw new NullPointerException("name");
@@ -59,8 +63,12 @@
throw new NullPointerException("addressType");
}
- if (envelopeType == null) {
- throw new NullPointerException("envelopeType");
+ if (envelopeTypes == null) {
+ throw new NullPointerException("envelopeTypes");
+ }
+
+ if (envelopeTypes.length == 0) {
+ throw new NullPointerException("envelopeTypes is empty.");
}
if (sessionConfigType == null) {
@@ -71,16 +79,22 @@
this.connectionless = connectionless;
this.fragmentation = fragmentation;
this.addressType = addressType;
- this.envelopeType = envelopeType;
this.sessionConfigType = sessionConfigType;
+
+ Set<Class<? extends Object>> newEnvelopeTypes =
+ new IdentityHashSet<Class<? extends Object>>();
+ for (Class<? extends Object> c: envelopeTypes) {
+ newEnvelopeTypes.add(c);
+ }
+ this.envelopeTypes = Collections.unmodifiableSet(newEnvelopeTypes);
}
public Class<? extends SocketAddress> getAddressType() {
return addressType;
}
- public Class<? extends Object> getEnvelopeType() {
- return envelopeType;
+ public Set<Class<? extends Object>> getEnvelopeTypes() {
+ return envelopeTypes;
}
public Class<? extends IoSessionConfig> getSessionConfigType() {
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceMetadata.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceMetadata.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceMetadata.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceMetadata.java Fri Aug 17 18:49:59 2007
@@ -20,6 +20,7 @@
package org.apache.mina.common;
import java.net.SocketAddress;
+import java.util.Set;
/**
* Provides meta-information that describes an {@link IoService}.
@@ -53,10 +54,10 @@
Class<? extends SocketAddress> getAddressType();
/**
- * Returns the allowed message type when you write to an
+ * Returns the set of the allowed message type when you write to an
* {@link IoSession} that is managed by the service.
*/
- Class<? extends Object> getEnvelopeType();
+ Set<Class<? extends Object>> getEnvelopeTypes();
/**
* Returns the type of the {@link IoSessionConfig} of the service
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java Fri Aug 17 18:49:59 2007
@@ -111,7 +111,7 @@
}
public IoServiceMetadata getMetadata() {
- return DatagramServiceMetadata.INSTANCE;
+ return DatagramSessionImpl.METADATA;
}
@Override
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java Fri Aug 17 18:49:59 2007
@@ -102,7 +102,7 @@
}
public IoServiceMetadata getMetadata() {
- return DatagramServiceMetadata.INSTANCE;
+ return DatagramSessionImpl.METADATA;
}
@Override
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=567200&r1=567199&r2=567200
==============================================================================
--- 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 18:49:59 2007
@@ -29,10 +29,12 @@
import org.apache.mina.common.AbstractIoSession;
import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.common.DefaultIoServiceMetadata;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.IoFilterChain;
import org.apache.mina.common.IoHandler;
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;
@@ -46,6 +48,13 @@
* @version $Rev$, $Date$
*/
class DatagramSessionImpl extends AbstractIoSession implements DatagramSession {
+
+ static final IoServiceMetadata METADATA =
+ new DefaultIoServiceMetadata(
+ "datagram", true, false,
+ InetSocketAddress.class,
+ DatagramSessionConfig.class, ByteBuffer.class);
+
private final IoService service;
private final DatagramSessionConfig config = new SessionConfigImpl();
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Fri Aug 17 18:49:59 2007
@@ -170,7 +170,7 @@
* @see org.apache.mina.common.IoService#getMetadata()
*/
public IoServiceMetadata getMetadata() {
- return SocketServiceMetadata.INSTANCE;
+ return SocketSessionImpl.METADATA;
}
/**
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java Fri Aug 17 18:49:59 2007
@@ -124,7 +124,7 @@
}
public IoServiceMetadata getMetadata() {
- return SocketServiceMetadata.INSTANCE;
+ return SocketSessionImpl.METADATA;
}
@Override
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=567200&r1=567199&r2=567200
==============================================================================
--- 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 18:49:59 2007
@@ -29,9 +29,11 @@
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.IoFilterChain;
import org.apache.mina.common.IoHandler;
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;
@@ -44,6 +46,14 @@
* @version $Rev$, $Date$
*/
class SocketSessionImpl extends AbstractIoSession implements SocketSession {
+
+ static final IoServiceMetadata METADATA =
+ new DefaultIoServiceMetadata(
+ "socket", false, true,
+ InetSocketAddress.class,
+ SocketSessionConfig.class,
+ ByteBuffer.class);
+
private final IoService service;
private final SocketSessionConfig config = new SessionConfigImpl();
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java Fri Aug 17 18:49:59 2007
@@ -47,7 +47,7 @@
}
public IoServiceMetadata getMetadata() {
- return VmPipeServiceMetadata.INSTANCE;
+ return VmPipeSessionImpl.METADATA;
}
@Override
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Fri Aug 17 18:49:59 2007
@@ -53,7 +53,7 @@
}
public IoServiceMetadata getMetadata() {
- return VmPipeServiceMetadata.INSTANCE;
+ return VmPipeSessionImpl.METADATA;
}
@Override
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java Fri Aug 17 18:49:59 2007
@@ -25,10 +25,12 @@
import java.util.concurrent.LinkedBlockingQueue;
import org.apache.mina.common.AbstractIoSession;
+import org.apache.mina.common.DefaultIoServiceMetadata;
import org.apache.mina.common.IoFilterChain;
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoServiceListenerSupport;
+import org.apache.mina.common.IoServiceMetadata;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteRequest;
@@ -39,6 +41,14 @@
* @version $Rev$, $Date$
*/
class VmPipeSessionImpl extends AbstractIoSession implements VmPipeSession {
+
+ static final IoServiceMetadata METADATA =
+ new DefaultIoServiceMetadata(
+ "vmpipe", false, false,
+ VmPipeAddress.class,
+ VmPipeSessionConfig.class,
+ Object.class);
+
private static final VmPipeSessionConfig CONFIG = new DefaultVmPipeSessionConfig();
private final IoService service;
Modified: mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java?view=diff&rev=567200&r1=567199&r2=567200
==============================================================================
--- mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java (original)
+++ mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java Fri Aug 17 18:49:59 2007
@@ -78,7 +78,7 @@
static final IoServiceMetadata METADATA =
new DefaultIoServiceMetadata(
"serial", false, true, SerialAddress.class,
- ByteBuffer.class, SerialSessionConfig.class);
+ SerialSessionConfig.class, ByteBuffer.class);
SerialSession(IoService service, SerialAddress address, SerialPort port) {
this.service = service;