You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2010/03/09 13:09:51 UTC
svn commit: r920821 - in /mina/sandbox/vysper/trunk: ./ dist/
nbxml/src/main/java/org/apache/vysper/xml/decoder/
nbxml/src/test/java/org/apache/vysper/xml/decoder/ server/core/
server/core/src/main/java/org/apache/vysper/mina/
server/core/src/main/java...
Author: ngn
Date: Tue Mar 9 12:09:50 2010
New Revision: 920821
URL: http://svn.apache.org/viewvc?rev=920821&view=rev
Log:
Merge MINA 2.0 branch
Modified:
mina/sandbox/vysper/trunk/dist/pom.xml
mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/ParticleDecoder.java
mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLStreamTokenizer.java
mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/decoder/ParticleDecoderTestCase.java
mina/sandbox/vysper/trunk/pom.xml
mina/sandbox/vysper/trunk/server/core/pom.xml
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/StanzaLoggingFilter.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/StanzaWriterProtocolEncoder.java
mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/XMPPProtocolCodecFactory.java
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/MockIoSession.java
mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/XMLStreamTokenizerTestCase.java
Modified: mina/sandbox/vysper/trunk/dist/pom.xml
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/dist/pom.xml?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/dist/pom.xml (original)
+++ mina/sandbox/vysper/trunk/dist/pom.xml Tue Mar 9 12:09:50 2010
@@ -68,17 +68,6 @@
</dependency>
<dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-filter-ssl</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-integration-spring</artifactId>
- <optional>true</optional>
- </dependency>
-
- <dependency>
<groupId>org.cyberneko.pull</groupId>
<artifactId>nekopull</artifactId>
<optional>true</optional>
Modified: mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/ParticleDecoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/ParticleDecoder.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/ParticleDecoder.java (original)
+++ mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/ParticleDecoder.java Tue Mar 9 12:09:50 2010
@@ -19,10 +19,10 @@
*/
package org.apache.vysper.xml.decoder;
-import org.apache.mina.common.ByteBuffer;
-
import java.nio.charset.CharsetDecoder;
+import org.apache.mina.core.buffer.IoBuffer;
+
/**
* partitions the incoming byte stream in particles of XML. either those enclosed by '<' and '>', or the text inbetween.
*
@@ -49,7 +49,7 @@ public class ParticleDecoder {
* @return the new particle or NULL, if the buffer was exhausted before the particle was completed
* @throws Exception
*/
- public static XMLParticle decodeParticle(ByteBuffer byteBuffer, CharsetDecoder charsetDecoder) throws Exception {
+ public static XMLParticle decodeParticle(IoBuffer byteBuffer, CharsetDecoder charsetDecoder) throws Exception {
int startPosition = byteBuffer.position();
State state = State.START;
@@ -89,7 +89,7 @@ public class ParticleDecoder {
int endPosition = byteBuffer.position();
if (state == State.END_TEXT) endPosition--;
int limit = byteBuffer.limit();
- ByteBuffer stanzaBuffer = null;
+ IoBuffer stanzaBuffer = null;
try {
// prepare correct slicing
byteBuffer.position(startPosition);
Modified: mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLStreamTokenizer.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLStreamTokenizer.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLStreamTokenizer.java (original)
+++ mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xml/decoder/XMLStreamTokenizer.java Tue Mar 9 12:09:50 2010
@@ -22,8 +22,8 @@ package org.apache.vysper.xml.decoder;
import java.util.ArrayList;
import java.util.List;
-import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.common.IoSession;
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.vysper.charset.CharsetUtil;
@@ -52,7 +52,7 @@ public class XMLStreamTokenizer extends
@Override
- public boolean doDecode(IoSession ioSession, ByteBuffer byteBuffer, ProtocolDecoderOutput protocolDecoderOutput) throws Exception {
+ public boolean doDecode(IoSession ioSession, IoBuffer byteBuffer, ProtocolDecoderOutput protocolDecoderOutput) throws Exception {
XMLParticle xmlParticle = ParticleDecoder.decodeParticle(byteBuffer, CharsetUtil.UTF8_DECODER);
Modified: mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/decoder/ParticleDecoderTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/decoder/ParticleDecoderTestCase.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/decoder/ParticleDecoderTestCase.java (original)
+++ mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xml/decoder/ParticleDecoderTestCase.java Tue Mar 9 12:09:50 2010
@@ -24,10 +24,8 @@ import java.util.List;
import junit.framework.TestCase;
-import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.core.buffer.IoBuffer;
import org.apache.vysper.charset.CharsetUtil;
-import org.apache.vysper.xml.decoder.ParticleDecoder;
-import org.apache.vysper.xml.decoder.XMLParticle;
/**
*/
@@ -104,20 +102,20 @@ public class ParticleDecoderTestCase ext
}
- private ByteBuffer wrap(String xml) throws Exception {
- return ByteBuffer.wrap(xml.getBytes("UTF-8"));
+ private IoBuffer wrap(String xml) throws Exception {
+ return IoBuffer.wrap(xml.getBytes("UTF-8"));
}
private XMLParticle decode(String xml) throws Exception {
return decode(wrap(xml));
}
- private XMLParticle decode(ByteBuffer bb) throws Exception {
+ private XMLParticle decode(IoBuffer bb) throws Exception {
return ParticleDecoder.decodeParticle(bb, CharsetUtil.UTF8_DECODER);
}
private List<XMLParticle> decodeAll(String xml) throws Exception {
- ByteBuffer bb = wrap(xml);
+ IoBuffer bb = wrap(xml);
List<XMLParticle> particles = new ArrayList<XMLParticle>();
XMLParticle particle = decode(bb);
Modified: mina/sandbox/vysper/trunk/pom.xml
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/pom.xml?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/pom.xml (original)
+++ mina/sandbox/vysper/trunk/pom.xml Tue Mar 9 12:09:50 2010
@@ -103,35 +103,13 @@
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
- <version>1.1.7</version>
+ <version>2.0.0-RC1</version>
</dependency>
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-integration-jmx</artifactId>
- <version>1.1.7</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-filter-ssl</artifactId>
- <version>1.1.7</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-integration-spring</artifactId>
- <version>1.1.7</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- </exclusions>
+ <version>2.0.0-RC1</version>
</dependency>
<dependency>
Modified: mina/sandbox/vysper/trunk/server/core/pom.xml
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/pom.xml?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/pom.xml (original)
+++ mina/sandbox/vysper/trunk/server/core/pom.xml Tue Mar 9 12:09:50 2010
@@ -53,17 +53,6 @@
</dependency>
<dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-filter-ssl</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-integration-spring</artifactId>
- <optional>true</optional>
- </dependency>
-
- <dependency>
<groupId>org.cyberneko.pull</groupId>
<artifactId>nekopull</artifactId>
<optional>true</optional>
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java Tue Mar 9 12:09:50 2010
@@ -19,12 +19,11 @@
*/
package org.apache.vysper.mina;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.common.TrafficMask;
-import org.apache.mina.common.CloseFuture;
-import org.apache.mina.common.IoFutureListener;
-import org.apache.mina.common.IoFuture;
-import org.apache.mina.filter.SSLFilter;
+import org.apache.mina.core.future.CloseFuture;
+import org.apache.mina.core.future.IoFuture;
+import org.apache.mina.core.future.IoFutureListener;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.ssl.SslFilter;
import org.apache.vysper.mina.codec.StanzaWriteInfo;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.AbstractSessionContext;
@@ -35,8 +34,9 @@ import org.apache.vysper.xmpp.writer.Sta
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
/**
- * connects MINA frontend to the vysper backend
+ * connects MINA 2 frontend to the vysper backend
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
@@ -73,15 +73,16 @@ public class MinaBackedSessionContext ex
}
public void write(Stanza stanza) {
-
if (switchToTLS) {
- minaSession.setTrafficMask(TrafficMask.WRITE);
- SSLFilter filter = new SSLFilter(getServerRuntimeContext().getSslContext());
+ minaSession.suspendRead();
+ minaSession.suspendWrite();
+ SslFilter filter = new SslFilter(getServerRuntimeContext().getSslContext());
filter.setUseClientMode(false);
minaSession.getFilterChain().addFirst("sslFilter", filter);
- minaSession.setAttribute(SSLFilter.DISABLE_ENCRYPTION_ONCE, Boolean.TRUE);
- minaSession.setAttribute(SSLFilter.USE_NOTIFICATION, Boolean.TRUE);
- minaSession.setTrafficMask(TrafficMask.ALL);
+ minaSession.setAttribute(SslFilter.DISABLE_ENCRYPTION_ONCE, Boolean.TRUE);
+ minaSession.setAttribute(SslFilter.USE_NOTIFICATION, Boolean.TRUE);
+ minaSession.resumeWrite();
+ minaSession.resumeRead();
switchToTLS = false;
}
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/StanzaLoggingFilter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/StanzaLoggingFilter.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/StanzaLoggingFilter.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/StanzaLoggingFilter.java Tue Mar 9 12:09:50 2010
@@ -19,8 +19,10 @@
*/
package org.apache.vysper.mina;
-import org.apache.mina.common.IoFilterAdapter;
-import org.apache.mina.common.IoSession;
+import org.apache.mina.core.filterchain.IoFilterAdapter;
+import org.apache.mina.core.filterchain.IoFilter.NextFilter;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.core.write.WriteRequest;
import org.apache.vysper.mina.codec.StanzaWriteInfo;
import org.apache.vysper.xml.fragment.Renderer;
import org.apache.vysper.xml.fragment.XMLElement;
@@ -32,7 +34,7 @@ import org.slf4j.LoggerFactory;
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
-public class StanzaLoggingFilter extends IoFilterAdapter {
+public abstract class StanzaLoggingFilter extends IoFilterAdapter {
final Logger serverLogger = LoggerFactory.getLogger("stanza.server");
@@ -70,7 +72,8 @@ public class StanzaLoggingFilter extends
}
public void messageSent(NextFilter nextFilter, IoSession session,
- Object message) throws Exception {
+ WriteRequest request) throws Exception {
+ Object message = request.getMessage();
if (message instanceof StanzaWriteInfo) {
StanzaWriteInfo stanzaWriteInfo = (StanzaWriteInfo) message;
@@ -87,7 +90,7 @@ public class StanzaLoggingFilter extends
}
}
- nextFilter.messageSent(session, message);
+ nextFilter.messageSent(session, request);
}
private String toXml(XMLElement element, boolean openElement,
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java Tue Mar 9 12:09:50 2010
@@ -22,12 +22,11 @@ package org.apache.vysper.mina;
import java.io.IOException;
import java.net.InetSocketAddress;
-import org.apache.mina.common.DefaultIoFilterChainBuilder;
-import org.apache.mina.filter.LoggingFilter;
+import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
-import org.apache.mina.filter.executor.ExecutorFilter;
-import org.apache.mina.transport.socket.nio.SocketAcceptor;
-import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
+import org.apache.mina.filter.logging.LoggingFilter;
+import org.apache.mina.transport.socket.SocketAcceptor;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.vysper.mina.codec.XMPPProtocolCodecFactory;
import org.apache.vysper.xmpp.server.Endpoint;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
@@ -59,28 +58,25 @@ public class TCPEndpoint implements Endp
}
public void start() throws IOException {
+ NioSocketAcceptor acceptor = new NioSocketAcceptor();
+
+ DefaultIoFilterChainBuilder filterChainBuilder = new DefaultIoFilterChainBuilder();
+ //filterChainBuilder.addLast("executorFilter", new OrderedThreadPoolExecutor());
+ filterChainBuilder.addLast("xmppCodec", new ProtocolCodecFilter(new XMPPProtocolCodecFactory()));
+ filterChainBuilder.addLast("loggingFilter", new LoggingFilter());
+ acceptor.setFilterChainBuilder(filterChainBuilder);
+
XmppIoHandlerAdapter adapter = new XmppIoHandlerAdapter();
adapter.setServerRuntimeContext(serverRuntimeContext);
+ acceptor.setHandler(adapter);
+
+ acceptor.setReuseAddress(true);
+ acceptor.bind(new InetSocketAddress(port));
- XMPPProtocolCodecFactory xmppCodec = new XMPPProtocolCodecFactory();
-
- filterChainBuilder = new DefaultIoFilterChainBuilder();
- filterChainBuilder.addLast("executorFilter", new ExecutorFilter());
- filterChainBuilder.addLast("xmppCodec", new ProtocolCodecFilter(xmppCodec));
- filterChainBuilder.addLast("loggingFilter", new LoggingFilter());
- filterChainBuilder.addLast("stanzaLoggingFilter", new StanzaLoggingFilter());
-
- SocketAcceptorConfig socketAcceptorConfig = new SocketAcceptorConfig();
- socketAcceptorConfig.setFilterChainBuilder(filterChainBuilder);
- socketAcceptorConfig.setReuseAddress(true);
-
- SocketAcceptor acceptor = new SocketAcceptor();
- acceptor.setDefaultConfig(socketAcceptorConfig);
- acceptor.bind(new InetSocketAddress(port), adapter);
this.acceptor = acceptor;
}
public void stop() {
- acceptor.unbindAll();
+ acceptor.unbind();
}
}
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java Tue Mar 9 12:09:50 2010
@@ -19,10 +19,10 @@
*/
package org.apache.vysper.mina;
-import org.apache.mina.common.IdleStatus;
-import org.apache.mina.common.IoHandler;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.SSLFilter;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.session.IdleStatus;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.ssl.SslFilter;
import org.apache.vysper.xml.fragment.XMLText;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
@@ -68,12 +68,12 @@ public class XmppIoHandlerAdapter implem
}
private void messageReceivedNoStanza(IoSession ioSession, Object message) {
- if (message == SSLFilter.SESSION_SECURED) {
+ if (message == SslFilter.SESSION_SECURED) {
SessionContext session = extractSession(ioSession);
SessionStateHolder stateHolder = (SessionStateHolder) ioSession.getAttribute(ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER);
serverRuntimeContext.getStanzaProcessor().processTLSEstablished(session, stateHolder);
return;
- } else if (message == SSLFilter.SESSION_UNSECURED) {
+ } else if (message == SslFilter.SESSION_UNSECURED) {
// TODO
return;
// throw new IllegalStateException("server must close session!");
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/StanzaWriterProtocolEncoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/StanzaWriterProtocolEncoder.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/StanzaWriterProtocolEncoder.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/StanzaWriterProtocolEncoder.java Tue Mar 9 12:09:50 2010
@@ -21,8 +21,9 @@ package org.apache.vysper.mina.codec;
import java.nio.charset.CharsetEncoder;
-import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.common.IoSession;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolEncoder;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
import org.apache.vysper.charset.CharsetUtil;
@@ -50,7 +51,7 @@ public class StanzaWriterProtocolEncoder
Stanza element = stanzaWriteInfo.getStanza();
Renderer renderer = new Renderer(element);
- ByteBuffer byteBuffer = ByteBuffer.allocate(16).setAutoExpand(true);
+ IoBuffer byteBuffer = IoBuffer.allocate(16).setAutoExpand(true);
if (stanzaWriteInfo.isWriteProlog()) byteBuffer.putString(StanzaWriter.XML_PROLOG, getSessionEncoder());
if (stanzaWriteInfo.isWriteOpeningElement()) byteBuffer.putString(renderer.getOpeningElement(), getSessionEncoder());
if (stanzaWriteInfo.isWriteContent()) byteBuffer.putString(renderer.getElementContent(), getSessionEncoder());
Modified: mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/XMPPProtocolCodecFactory.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/XMPPProtocolCodecFactory.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/XMPPProtocolCodecFactory.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/main/java/org/apache/vysper/mina/codec/XMPPProtocolCodecFactory.java Tue Mar 9 12:09:50 2010
@@ -19,6 +19,7 @@
*/
package org.apache.vysper.mina.codec;
+import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFactory;
import org.apache.mina.filter.codec.ProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolEncoder;
@@ -31,11 +32,11 @@ import org.apache.vysper.xml.decoder.XML
*/
public class XMPPProtocolCodecFactory implements ProtocolCodecFactory {
- public ProtocolEncoder getEncoder() throws Exception {
+ public ProtocolEncoder getEncoder(IoSession s) throws Exception {
return new StanzaWriterProtocolEncoder();
}
- public ProtocolDecoder getDecoder() throws Exception {
+ public ProtocolDecoder getDecoder(IoSession s) throws Exception {
return new XMLStreamTokenizer(new StanzaBuilderFactory());
}
}
Modified: mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/MockIoSession.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/MockIoSession.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/MockIoSession.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/MockIoSession.java Tue Mar 9 12:09:50 2010
@@ -19,107 +19,20 @@
*/
package org.apache.vysper.mina.codec;
-import org.apache.mina.common.support.BaseIoSession;
-import org.apache.mina.common.IoSessionConfig;
-import org.apache.mina.common.IoFilterChain;
-import org.apache.mina.common.IoHandler;
-import org.apache.mina.common.IoService;
-import org.apache.mina.common.IoServiceConfig;
-import org.apache.mina.common.TransportType;
-
import java.net.SocketAddress;
-import java.util.Set;
-
-public class MockIoSession extends BaseIoSession
-{
-
- @Override
- protected void updateTrafficMask()
- {
- }
-
- public IoSessionConfig getConfig()
- {
- return null;
- }
- public IoFilterChain getFilterChain()
+import org.apache.mina.core.service.DefaultTransportMetadata;
+import org.apache.mina.core.session.DummySession;
+import org.apache.mina.core.session.IoSessionConfig;
+
+public class MockIoSession extends DummySession
{
- return null;
- }
- public IoHandler getHandler()
- {
- return null;
+ public MockIoSession() {
+ setTransportMetadata(
+ new DefaultTransportMetadata(
+ "mina", "dummy", false, true,
+ SocketAddress.class, IoSessionConfig.class, Object.class));
}
- public SocketAddress getLocalAddress()
- {
- return null;
- }
-
- public SocketAddress getRemoteAddress()
- {
- return null;
- }
-
- public int getScheduledWriteBytes()
- {
- return 0;
- }
-
- public int getScheduledWriteRequests()
- {
- return 0;
- }
-
- public IoService getService()
- {
- return null;
- }
-
- public SocketAddress getServiceAddress()
- {
- return null;
- }
-
- public IoServiceConfig getServiceConfig()
- {
- return null;
- }
-
- public TransportType getTransportType()
- {
- return null;
- }
-
- @Override
- public Object getAttribute(String s) {
- return super.getAttribute(s);
- }
-
- @Override
- public Object setAttribute(String s, Object o) {
- return super.setAttribute(s, o);
- }
-
- @Override
- public Object setAttribute(String s) {
- return super.setAttribute(s);
- }
-
- @Override
- public Object removeAttribute(String s) {
- return super.removeAttribute(s);
- }
-
- @Override
- public boolean containsAttribute(String s) {
- return super.containsAttribute(s);
- }
-
- @Override
- public Set<String> getAttributeKeys() {
- return super.getAttributeKeys();
- }
}
Modified: mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/XMLStreamTokenizerTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/XMLStreamTokenizerTestCase.java?rev=920821&r1=920820&r2=920821&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/XMLStreamTokenizerTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/core/src/test/java/org/apache/vysper/mina/codec/XMLStreamTokenizerTestCase.java Tue Mar 9 12:09:50 2010
@@ -26,7 +26,9 @@ import java.util.List;
import junit.framework.TestCase;
-import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.filterchain.IoFilter.NextFilter;
+import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.vysper.charset.CharsetUtil;
import org.apache.vysper.xml.decoder.XMLStreamTokenizer;
@@ -43,8 +45,8 @@ public class XMLStreamTokenizerTestCase
public void testDecoderSimple() throws Exception {
XMLStreamTokenizer decoder = new XMLStreamTokenizer();
MockIoSession session = new MockIoSession();
- ByteBuffer firstByteBuffer = createByteBuffer();
- ByteBuffer secondByteBuffer = createByteBuffer();
+ IoBuffer firstByteBuffer = createByteBuffer();
+ IoBuffer secondByteBuffer = createByteBuffer();
String stanza = StanzaWriter.XML_PROLOG + "\n\r" +
"<stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>" +
@@ -61,11 +63,11 @@ public class XMLStreamTokenizerTestCase
decoder.decode(session, secondByteBuffer, protocolDecoderOutput);
assertEquals(5, protocolDecoderOutput.size());
- ByteBuffer emptyBuffer = createByteBuffer().putString("eee", CHARSET_ENCODER_UTF8).flip();
+ IoBuffer emptyBuffer = createByteBuffer().putString("eee", CHARSET_ENCODER_UTF8).flip();
decoder.decode(session, emptyBuffer, protocolDecoderOutput);
assertEquals("plain must be terminated by <", 5, protocolDecoderOutput.size());
- ByteBuffer termBuffer = createByteBuffer().putString("<r>", CHARSET_ENCODER_UTF8).flip();
+ IoBuffer termBuffer = createByteBuffer().putString("<r>", CHARSET_ENCODER_UTF8).flip();
decoder.decode(session, termBuffer, protocolDecoderOutput);
// eee is now terminated, but r is not balanced yet
assertEquals("plain termination", 6, protocolDecoderOutput.size());
@@ -75,15 +77,15 @@ public class XMLStreamTokenizerTestCase
public void testDecoderPartial() throws Exception {
XMLStreamTokenizer decoder = new XMLStreamTokenizer();
MockIoSession session = new MockIoSession();
- ByteBuffer firstByteBuffer = createByteBuffer();
- ByteBuffer secondByteBuffer = createByteBuffer();
+ IoBuffer firstByteBuffer = createByteBuffer();
+ IoBuffer secondByteBuffer = createByteBuffer();
String stanzaPart1 = "<stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='ht";
String stanzaPart2 = "tp://etherx.jabber.org/streams' version='1.0'>";
MockProtocolDecoderOutput protocolDecoderOutput = new MockProtocolDecoderOutput();
- ByteBuffer prolog = createByteBuffer();
+ IoBuffer prolog = createByteBuffer();
prolog.putString(StanzaWriter.XML_PROLOG + "\n\r", CHARSET_ENCODER_UTF8).flip();
decoder.decode(session, prolog, protocolDecoderOutput);
assertEquals(1, protocolDecoderOutput.size());
@@ -103,7 +105,7 @@ public class XMLStreamTokenizerTestCase
public void testCRLFInElement() throws Exception {
XMLStreamTokenizer decoder = new XMLStreamTokenizer();
MockIoSession session = new MockIoSession();
- ByteBuffer byteBuffer = createByteBuffer();
+ IoBuffer byteBuffer = createByteBuffer();
String stanza =
"<stream:stream\n" +
@@ -130,17 +132,14 @@ public class XMLStreamTokenizerTestCase
assertEquals("stream", stanzaNSPrefix);
}
- private ByteBuffer createByteBuffer() {
- return ByteBuffer.allocate(0, false).setAutoExpand(true).clear();
+ private IoBuffer createByteBuffer() {
+ return IoBuffer.allocate(0, false).setAutoExpand(true).clear();
}
protected class MockProtocolDecoderOutput implements ProtocolDecoderOutput
{
private List<XMLFragment> result = new ArrayList<XMLFragment>();
- public void flush()
- {
- }
public void write( Object message )
{
@@ -158,6 +157,9 @@ public class XMLStreamTokenizerTestCase
public int size() {
return result.size();
}
+
+ public void flush(NextFilter nextFilter, IoSession session) {
+ }
}
}