Fix integration tests and always activate their modules
diff --git a/pom.xml b/pom.xml
index 575a92b..e1ca8a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,7 +108,7 @@
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
- <version>2.0.21</version>
+ <version>2.1.3</version>
</dependency>
<dependency>
diff --git a/server/core-inttest/src/main/config/bogus_mina_tls.cert b/server/core-inttest/src/main/config/bogus_mina_tls.cert
index d34502d..5a8e025 100644
--- a/server/core-inttest/src/main/config/bogus_mina_tls.cert
+++ b/server/core-inttest/src/main/config/bogus_mina_tls.cert
Binary files differ
diff --git a/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java b/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
index 3d07c3b..23e1cbe 100644
--- a/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
+++ b/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
@@ -25,6 +25,8 @@
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.core.write.WriteToClosedSessionException;
+import org.apache.mina.filter.FilterEvent;
+import org.apache.mina.filter.ssl.SslEvent;
import org.apache.mina.filter.ssl.SslFilter;
import org.apache.vysper.xml.fragment.XMLText;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
@@ -58,6 +60,7 @@
this.serverRuntimeContext = serverRuntimeContext;
}
+ @Override
public void messageReceived(IoSession ioSession, Object message) throws Exception {
if (!(message instanceof Stanza)) {
if (message instanceof XMLText) {
@@ -67,8 +70,8 @@
return;
}
- messageReceivedNoStanza(ioSession, message);
- return;
+ throw new IllegalArgumentException("xmpp handler only accepts Stanza-typed messages, but received type "
+ + message.getClass());
}
Stanza stanza = (Stanza) message;
@@ -79,27 +82,11 @@
serverRuntimeContext.getStanzaProcessor().processStanza(serverRuntimeContext, session, stanza, stateHolder);
}
- private void messageReceivedNoStanza(IoSession ioSession, Object message) {
- 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) {
- // TODO
- return;
- // throw new IllegalStateException("server must close session!");
- }
-
- throw new IllegalArgumentException("xmpp handler only accepts Stanza-typed messages, but received type "
- + message.getClass());
- }
-
private SessionContext extractSession(IoSession ioSession) {
return (SessionContext) ioSession.getAttribute(ATTRIBUTE_VYSPER_SESSION);
}
+ @Override
public void messageSent(IoSession ioSession, Object o) throws Exception {
// TODO implement
}
@@ -109,6 +96,19 @@
ioSession.closeNow();
}
+ @Override
+ public void event(IoSession ioSession, FilterEvent event) throws Exception {
+ if (event == SslEvent.SECURED) {
+ SessionContext session = extractSession(ioSession);
+ SessionStateHolder stateHolder = (SessionStateHolder) ioSession
+ .getAttribute(ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER);
+ serverRuntimeContext.getStanzaProcessor().processTLSEstablished(session, stateHolder);
+ } else if (event == SslEvent.UNSECURED) {
+ // TODO
+ }
+ }
+
+ @Override
public void sessionCreated(IoSession ioSession) throws Exception {
SessionStateHolder stateHolder = new SessionStateHolder();
SessionContext sessionContext = new MinaBackedSessionContext(serverRuntimeContext, stateHolder, ioSession);
@@ -117,10 +117,12 @@
ioSession.setAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON, SessionTerminationCause.CLIENT_BYEBYE);
}
+ @Override
public void sessionOpened(IoSession ioSession) throws Exception {
logger.info("new session from {} has been opened", ioSession.getRemoteAddress());
}
+ @Override
public void sessionClosed(IoSession ioSession) throws Exception {
SessionContext sessionContext = extractSession(ioSession);
SessionTerminationCause cause = (SessionTerminationCause) ioSession.getAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON);
@@ -132,11 +134,13 @@
logger.info("session {} has been closed", sessionId);
}
+ @Override
public void sessionIdle(IoSession ioSession, IdleStatus idleStatus) throws Exception {
logger.debug("session {} is idle", ((SessionContext) ioSession.getAttribute(ATTRIBUTE_VYSPER_SESSION))
.getSessionId());
}
+ @Override
public void exceptionCaught(IoSession ioSession, Throwable throwable) throws Exception {
SessionContext sessionContext = extractSession(ioSession);
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/ServerConnectorIoHandler.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/ServerConnectorIoHandler.java
index e1ed160..f6299ee 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/ServerConnectorIoHandler.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/ServerConnectorIoHandler.java
@@ -1,23 +1,24 @@
package org.apache.vysper.xmpp.server.s2s;
+import java.io.IOException;
+
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
-import org.apache.mina.filter.ssl.SslFilter;
+import org.apache.mina.filter.ssl.SslEvent;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-
/**
* handler for server-to-server connections
-*/
+ */
public class ServerConnectorIoHandler extends IoHandlerAdapter {
-
+
private static final Logger LOG = LoggerFactory.getLogger(ServerConnectorIoHandler.class);
-
+
protected final Entity remoteServer;
+
protected final XMPPServerConnector serverConnector;
ServerConnectorIoHandler(Entity remoteServer, XMPPServerConnector serverConnector) {
@@ -40,7 +41,8 @@
}
serverConnector.close();
} else {
- LOG.warn("Exception {} thrown by XMPP server connector to " + remoteServer + ", probably a bug in Vysper: {}", cause.getClass().getName(), cause.getMessage());
+ LOG.warn("Exception {} thrown by XMPP server connector to " + remoteServer
+ + ", probably a bug in Vysper: {}", cause.getClass().getName(), cause.getMessage());
}
}
@@ -49,12 +51,12 @@
*/
@Override
public void messageReceived(IoSession session, Object message) {
- if(message == SslFilter.SESSION_SECURED) {
+ if (message == SslEvent.SECURED) {
serverConnector.handleSessionSecured();
- } else if(message == SslFilter.SESSION_UNSECURED) {
+ } else if (message == SslEvent.UNSECURED) {
// unsecured, closing
serverConnector.close();
- } else if(message instanceof Stanza) {
+ } else if (message instanceof Stanza) {
Stanza stanza = (Stanza) message;
serverConnector.handleReceivedStanza(stanza);
} else {
diff --git a/server/extensions/pom.xml b/server/extensions/pom.xml
index ecc6513..f785d50 100644
--- a/server/extensions/pom.xml
+++ b/server/extensions/pom.xml
@@ -33,23 +33,10 @@
<modules>
<module>xep0060-pubsub</module>
<module>xep0045-muc</module>
+ <module>xep0045-muc-inttest</module>
<module>xep0065-socks</module>
<module>xep0124-xep0206-bosh</module>
<module>websockets</module>
</modules>
- <profiles>
- <profile>
- <id>inttest</id>
- <modules>
- <module>xep0060-pubsub</module>
- <module>xep0045-muc</module>
- <module>xep0045-muc-inttest</module>
- <module>xep0124-xep0206-bosh</module>
- <module>xep0065-socks</module>
- <module>websockets</module>
- </modules>
- </profile>
- </profiles>
-
</project>
diff --git a/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert b/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert
index d34502d..5a8e025 100644
--- a/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert
+++ b/server/extensions/xep0045-muc-inttest/src/main/config/bogus_mina_tls.cert
Binary files differ
diff --git a/server/pom.xml b/server/pom.xml
index baea78c..1b4ea2f 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -32,22 +32,12 @@
<modules>
<module>core</module>
+ <module>core-inttest</module>
<module>extensions</module>
<module>storage</module>
<module>admin-console</module>
</modules>
- <profiles>
- <profile>
- <id>inttest</id>
- <modules>
- <module>core</module>
- <module>core-inttest</module>
- <module>extensions</module>
- </modules>
- </profile>
- </profiles>
-
<properties>
<maven.compile.source>1.8</maven.compile.source>
<maven.compile.target>1.8</maven.compile.target>