You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ra...@apache.org on 2019/09/01 10:53:02 UTC
[mina-vysper] branch master updated: Hide session stanza writer in
a StanzaReceivingSessionContext sub-interface
This is an automated email from the ASF dual-hosted git repository.
ralaoui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-vysper.git
The following commit(s) were added to refs/heads/master by this push:
new d6a9cb3 Hide session stanza writer in a StanzaReceivingSessionContext sub-interface
d6a9cb3 is described below
commit d6a9cb38ed9d184958109d5ac983f739cec06c9d
Author: Réda Housni Alaoui <re...@gmail.com>
AuthorDate: Sun Sep 1 12:52:54 2019 +0200
Hide session stanza writer in a StanzaReceivingSessionContext sub-interface
---
.../apache/vysper/mina/XmppIoHandlerAdapter.java | 44 ++++++++++++----------
.../vysper/xmpp/delivery/LocalDeliveryUtils.java | 19 ++++++----
.../vysper/xmpp/delivery/RecordingStanzaRelay.java | 4 +-
.../vysper/xmpp/delivery/StanzaReceiverRelay.java | 6 +--
.../apache/vysper/xmpp/delivery/StanzaRelay.java | 5 ++-
.../vysper/xmpp/delivery/StanzaRelayBroker.java | 4 +-
.../DeliveringExternalInboundStanzaRelay.java | 4 +-
.../DeliveringInternalInboundStanzaRelay.java | 22 +++++------
.../vysper/xmpp/protocol/ProtocolWorker.java | 22 +++++------
.../xmpp/protocol/QueuedStanzaProcessor.java | 15 ++++----
.../vysper/xmpp/protocol/ResponseWriter.java | 35 +++++------------
.../vysper/xmpp/protocol/SimpleStanzaBroker.java | 6 +--
.../xmpp/protocol/SimpleStanzaHandlerExecutor.java | 4 +-
.../xmpp/protocol/StanzaHandlerExecutor.java | 4 +-
.../vysper/xmpp/protocol/StanzaProcessor.java | 7 ++--
.../xmpp/protocol/StateAwareProtocolWorker.java | 6 +--
.../worker/AbstractStateAwareProtocolWorker.java | 13 ++++---
.../worker/AuthenticatedProtocolWorker.java | 6 +--
.../protocol/worker/EncryptedProtocolWorker.java | 6 +--
.../worker/EncryptionStartedProtocolWorker.java | 6 +--
.../protocol/worker/EndOrClosedProtocolWorker.java | 6 +--
.../protocol/worker/InitiatedProtocolWorker.java | 6 +--
.../protocol/worker/StartedProtocolWorker.java | 6 +--
.../protocol/worker/UnconnectedProtocolWorker.java | 6 +--
.../vysper/xmpp/server/AbstractSessionContext.java | 2 +-
.../apache/vysper/xmpp/server/SessionContext.java | 2 -
.../StanzaReceivingSessionContext.java} | 25 ++++--------
.../components/ComponentStanzaProcessor.java | 8 ++--
.../resourcebinding/DefaultResourceRegistry.java | 21 ++++++-----
.../state/resourcebinding/ResourceRegistry.java | 11 +++---
.../xmpp/delivery/StanzaRelayBrokerTestCase.java | 3 +-
...liveringExternalInboundStanzaRelayTestCase.java | 3 +-
...eliveringInteralInboundStanzaRelayTestCase.java | 3 +-
.../handler/DiscoInfoIQHandlerTestCase.java | 12 +++---
.../handler/ExtendedDiscoInfoTestCase.java | 4 +-
.../ComponentStanzaProcessorTestCase.java | 3 +-
.../resourcebinding/ResourceRegistryTestCase.java | 7 ++--
.../websockets/JettyXmppWebSocketTest.java | 3 +-
.../websockets/TomcatXmppWebSocketTest.java | 3 +-
.../xmpp/extension/xep0124/BoshHandlerTest.java | 11 +++---
40 files changed, 191 insertions(+), 192 deletions(-)
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 cffa8d4..3ae94a7 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
@@ -34,16 +34,16 @@ import org.apache.vysper.xmpp.protocol.StreamErrorCondition;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionContext.SessionTerminationCause;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXParseException;
-import static java.util.Objects.requireNonNull;
-
/**
* handler for client-to-server sessions
+ *
* @author The Apache MINA Project (dev@mina.apache.org)
*/
public class XmppIoHandlerAdapter implements IoHandler {
@@ -53,10 +53,11 @@ public class XmppIoHandlerAdapter implements IoHandler {
public static final String ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER = "vysperSessionStateHolder";
public static final String ATTRIBUTE_VYSPER_TERMINATE_REASON = "vysperTerminateReason";
-
+
final Logger logger = LoggerFactory.getLogger(XmppIoHandlerAdapter.class);
private final ServerRuntimeContext serverRuntimeContext;
+
private final StanzaProcessor stanzaProcessor;
public XmppIoHandlerAdapter(ServerRuntimeContext serverRuntimeContext, StanzaProcessor stanzaProcessor) {
@@ -74,20 +75,20 @@ public class XmppIoHandlerAdapter implements IoHandler {
return;
}
- throw new IllegalArgumentException("xmpp handler only accepts Stanza-typed messages, but received type "
- + message.getClass());
+ throw new IllegalArgumentException(
+ "xmpp handler only accepts Stanza-typed messages, but received type " + message.getClass());
}
Stanza stanza = (Stanza) message;
- SessionContext session = extractSession(ioSession);
+ StanzaReceivingSessionContext session = extractSession(ioSession);
SessionStateHolder stateHolder = (SessionStateHolder) ioSession
.getAttribute(ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER);
stanzaProcessor.processStanza(serverRuntimeContext, session, stanza, stateHolder);
}
- private SessionContext extractSession(IoSession ioSession) {
- return (SessionContext) ioSession.getAttribute(ATTRIBUTE_VYSPER_SESSION);
+ private StanzaReceivingSessionContext extractSession(IoSession ioSession) {
+ return (StanzaReceivingSessionContext) ioSession.getAttribute(ATTRIBUTE_VYSPER_SESSION);
}
@Override
@@ -103,7 +104,7 @@ public class XmppIoHandlerAdapter implements IoHandler {
@Override
public void event(IoSession ioSession, FilterEvent event) throws Exception {
if (event == SslEvent.SECURED) {
- SessionContext session = extractSession(ioSession);
+ StanzaReceivingSessionContext session = extractSession(ioSession);
SessionStateHolder stateHolder = (SessionStateHolder) ioSession
.getAttribute(ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER);
stanzaProcessor.processTLSEstablished(session, stateHolder);
@@ -115,7 +116,8 @@ public class XmppIoHandlerAdapter implements IoHandler {
@Override
public void sessionCreated(IoSession ioSession) throws Exception {
SessionStateHolder stateHolder = new SessionStateHolder();
- SessionContext sessionContext = new MinaBackedSessionContext(serverRuntimeContext, stanzaProcessor, stateHolder, ioSession);
+ SessionContext sessionContext = new MinaBackedSessionContext(serverRuntimeContext, stanzaProcessor, stateHolder,
+ ioSession);
ioSession.setAttribute(ATTRIBUTE_VYSPER_SESSION, sessionContext);
ioSession.setAttribute(ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER, stateHolder);
ioSession.setAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON, SessionTerminationCause.CLIENT_BYEBYE);
@@ -129,7 +131,8 @@ public class XmppIoHandlerAdapter implements IoHandler {
@Override
public void sessionClosed(IoSession ioSession) throws Exception {
SessionContext sessionContext = extractSession(ioSession);
- SessionTerminationCause cause = (SessionTerminationCause) ioSession.getAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON);
+ SessionTerminationCause cause = (SessionTerminationCause) ioSession
+ .getAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON);
String sessionId = "UNKNOWN";
if (sessionContext != null) {
sessionId = sessionContext.getSessionId();
@@ -140,28 +143,29 @@ public class XmppIoHandlerAdapter implements IoHandler {
@Override
public void sessionIdle(IoSession ioSession, IdleStatus idleStatus) throws Exception {
- logger.debug("session {} is idle", ((SessionContext) ioSession.getAttribute(ATTRIBUTE_VYSPER_SESSION))
- .getSessionId());
+ 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);
-
- // Assume that the connection was aborted for now. Might be different depending on
+ StanzaReceivingSessionContext sessionContext = extractSession(ioSession);
+
+ // Assume that the connection was aborted for now. Might be different depending
+ // on
// cause of exception determined below.
ioSession.setAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON, SessionTerminationCause.CONNECTION_ABORT);
-
+
Stanza errorStanza;
- if(throwable.getCause() != null && throwable.getCause() instanceof SAXParseException) {
+ if (throwable.getCause() != null && throwable.getCause() instanceof SAXParseException) {
logger.info("Client sent not well-formed XML, closing session", throwable);
errorStanza = ServerErrorResponses.getStreamError(StreamErrorCondition.XML_NOT_WELL_FORMED,
sessionContext.getXMLLang(), "Stanza not well-formed", null);
ioSession.setAttribute(ATTRIBUTE_VYSPER_TERMINATE_REASON, SessionTerminationCause.STREAM_ERROR);
- } else if(throwable instanceof WriteToClosedSessionException) {
+ } else if (throwable instanceof WriteToClosedSessionException) {
// ignore
return;
- } else if(throwable instanceof IOException) {
+ } else if (throwable instanceof IOException) {
logger.info("error caught on transportation layer", throwable);
return;
} else {
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/LocalDeliveryUtils.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/LocalDeliveryUtils.java
index 5ea8c76..bdff427 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/LocalDeliveryUtils.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/LocalDeliveryUtils.java
@@ -19,7 +19,7 @@
*/
package org.apache.vysper.xmpp.delivery;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.state.resourcebinding.ResourceRegistry;
import org.slf4j.Logger;
@@ -31,17 +31,22 @@ import org.slf4j.LoggerFactory;
*/
public class LocalDeliveryUtils {
- final static Logger logger = LoggerFactory.getLogger(LocalDeliveryUtils.class);
+ private static final Logger logger = LoggerFactory.getLogger(LocalDeliveryUtils.class);
/**
- * delivers a stanza to a server-local resource. used for sending a stanza to all resources of the same user.
- * @param registry registry to look up session by resource ID
- * @param resource receiving resource ID
- * @param push stanza to be pushed
+ * delivers a stanza to a server-local resource. used for sending a stanza to
+ * all resources of the same user.
+ *
+ * @param registry
+ * registry to look up session by resource ID
+ * @param resource
+ * receiving resource ID
+ * @param push
+ * stanza to be pushed
*/
public static void relayToResourceDirectly(ResourceRegistry registry, String resource, Stanza push) {
try {
- SessionContext targetContext = registry.getSessionContext(resource);
+ StanzaReceivingSessionContext targetContext = registry.getSessionContext(resource);
if (targetContext == null)
return;
targetContext.getResponseWriter().write(push);
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/RecordingStanzaRelay.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/RecordingStanzaRelay.java
index ab8ebf2..6030527 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/RecordingStanzaRelay.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/RecordingStanzaRelay.java
@@ -27,7 +27,7 @@ import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -43,7 +43,7 @@ public class RecordingStanzaRelay implements StanzaRelay {
protected final AtomicBoolean isRelaying = new AtomicBoolean(true);
- public void relay(SessionContext sessionContext, Entity receiver, Stanza stanza, DeliveryFailureStrategy deliveryFailureStrategy)
+ public void relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza, DeliveryFailureStrategy deliveryFailureStrategy)
throws DeliveryException {
if (!isRelaying()) throw new ServiceNotAvailableException("recording stanza relay is not relaying");
entityStanzaPairs.add(new Triple(receiver, stanza, deliveryFailureStrategy));
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaReceiverRelay.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaReceiverRelay.java
index 3a48938..0b89ef9 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaReceiverRelay.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaReceiverRelay.java
@@ -29,7 +29,7 @@ import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.delivery.failure.LocalRecipientOfflineException;
import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -60,8 +60,8 @@ public class StanzaReceiverRelay implements StanzaRelay {
receiverMap.put(receiverID, receiver);
}
- public void relay(SessionContext sessionContext, Entity receiver, Stanza stanza,
- DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException {
+ public void relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza,
+ DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException {
if (!isRelaying()) {
throw new ServiceNotAvailableException("relay is not relaying");
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelay.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelay.java
index fa719a2..72f54e9 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelay.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelay.java
@@ -24,6 +24,7 @@ import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -47,8 +48,8 @@ public interface StanzaRelay {
* @throws DeliveryException
* error while relaying
*/
- void relay(SessionContext sessionContext, Entity receiver, Stanza stanza,
- DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException;
+ void relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza,
+ DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException;
/**
* @return TRUE iff the relay is live (started and not stopped)
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
index d898fe8..a365467 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/StanzaRelayBroker.java
@@ -25,7 +25,7 @@ import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPool;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -68,7 +68,7 @@ public class StanzaRelayBroker implements StanzaRelay {
this.serverRuntimeContext = serverRuntimeContext;
}
- public void relay(SessionContext sessionContext, Entity receiver, Stanza stanza, DeliveryFailureStrategy deliveryFailureStrategy)
+ public void relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza, DeliveryFailureStrategy deliveryFailureStrategy)
throws DeliveryException {
if (!isRelaying()) {
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelay.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelay.java
index d6c50cb..95ef94b 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelay.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelay.java
@@ -39,7 +39,7 @@ import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPool;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPoolUtil;
import org.apache.vysper.xmpp.server.s2s.XMPPServerConnector;
@@ -137,7 +137,7 @@ public class DeliveringExternalInboundStanzaRelay implements StanzaRelay, Manage
lastCompleted = completedTaskCount;
}
- public void relay(SessionContext sessionContext, Entity receiver, Stanza stanza, DeliveryFailureStrategy deliveryFailureStrategy)
+ public void relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza, DeliveryFailureStrategy deliveryFailureStrategy)
throws DeliveryException {
if (!isRelaying()) {
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInternalInboundStanzaRelay.java b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInternalInboundStanzaRelay.java
index 5b20df1..7b53abc 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInternalInboundStanzaRelay.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInternalInboundStanzaRelay.java
@@ -26,7 +26,6 @@ import java.io.Writer;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
@@ -53,8 +52,8 @@ import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
import org.apache.vysper.xmpp.protocol.StanzaProcessor;
import org.apache.vysper.xmpp.protocol.worker.InboundStanzaProtocolWorker;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.components.ComponentRegistry;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPool;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPoolUtil;
@@ -194,14 +193,13 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
lastCompleted = completedTaskCount;
}
- public void relay(SessionContext sessionContext, Entity receiver, Stanza stanza,
+ public void relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza,
DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException {
if (!isRelaying()) {
throw new ServiceNotAvailableException("internal inbound relay is not relaying");
}
- executor
- .submit(new Relay(sessionContext, receiver, stanza, deliveryFailureStrategy));
+ executor.submit(new Relay(sessionContext, receiver, stanza, deliveryFailureStrategy));
if (this.logStorageProvider != null) {
this.logStorageProvider.logStanza(receiver, stanza);
}
@@ -216,7 +214,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
private class Relay implements Callable<RelayResult> {
- private final SessionContext sessionContext;
+ private final StanzaReceivingSessionContext sessionContext;
private final Entity receiver;
@@ -226,7 +224,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
protected final UnmodifyableSessionStateHolder sessionStateHolder = new UnmodifyableSessionStateHolder();
- Relay(SessionContext sessionContext, Entity receiver, Stanza stanza,
+ Relay(StanzaReceivingSessionContext sessionContext, Entity receiver, Stanza stanza,
DeliveryFailureStrategy deliveryFailureStrategy) {
this.sessionContext = sessionContext;
this.receiver = receiver;
@@ -393,7 +391,8 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
protected RelayResult relayToBestSessions(final boolean fallbackToBareJIDAllowed) {
- List<SessionContext> receivingSessions = resourceRegistry.getHighestPrioSessions(receiver, PRIO_THRESHOLD);
+ List<StanzaReceivingSessionContext> receivingSessions = resourceRegistry.getHighestPrioSessions(receiver,
+ PRIO_THRESHOLD);
if (receivingSessions.size() == 0 && receiver.isResourceSet() && fallbackToBareJIDAllowed) {
// no concrete session for this resource has been found
@@ -406,7 +405,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
RelayResult relayResult = new RelayResult();
- for (SessionContext receivingSession : receivingSessions) {
+ for (StanzaReceivingSessionContext receivingSession : receivingSessions) {
if (receivingSession.getState() != SessionState.AUTHENTICATED) {
relayResult.addProcessingError(new DeliveryException("no relay to non-authenticated sessions"));
continue;
@@ -430,7 +429,8 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
protected RelayResult relayToAllSessions(Integer prioThreshold) {
- List<SessionContext> receivingSessions = prioThreshold == null ? resourceRegistry.getSessions(receiver)
+ List<StanzaReceivingSessionContext> receivingSessions = prioThreshold == null
+ ? resourceRegistry.getSessions(receiver)
: resourceRegistry.getSessions(receiver, prioThreshold);
if (receivingSessions.size() == 0) {
@@ -443,7 +443,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
RelayResult relayResult = new RelayResult();
- for (SessionContext sessionContext : receivingSessions) {
+ for (StanzaReceivingSessionContext sessionContext : receivingSessions) {
if (sessionContext.getState() != SessionState.AUTHENTICATED) {
relayResult.addProcessingError(new DeliveryException("no relay to non-authenticated sessions"));
continue;
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java
index a10e185..51a7e60 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java
@@ -35,8 +35,8 @@ import org.apache.vysper.xmpp.protocol.worker.InitiatedProtocolWorker;
import org.apache.vysper.xmpp.protocol.worker.StartedProtocolWorker;
import org.apache.vysper.xmpp.protocol.worker.UnconnectedProtocolWorker;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -85,8 +85,8 @@ public class ProtocolWorker implements StanzaProcessor {
* @param stanza
* @param sessionStateHolder
*/
- public void processStanza(ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext, Stanza stanza,
- SessionStateHolder sessionStateHolder) {
+ public void processStanza(ServerRuntimeContext serverRuntimeContext, StanzaReceivingSessionContext sessionContext, Stanza stanza,
+ SessionStateHolder sessionStateHolder) {
if (stanza == null)
throw new RuntimeException("cannot process NULL stanzas");
@@ -124,15 +124,15 @@ public class ProtocolWorker implements StanzaProcessor {
if(from == null) {
Stanza errorStanza = ServerErrorResponses.getStanzaError(StanzaErrorCondition.UNKNOWN_SENDER,
coreStanza, StanzaErrorType.MODIFY, "Missing from attribute", null, null);
- ResponseWriter.writeResponse(sessionContext, errorStanza);
+ sessionContext.getResponseWriter().write(errorStanza);
return;
} else if(!EntityUtils.isAddressingServer(sessionContext.getInitiatingEntity(), from)) {
// make sure the from attribute refers to the correct remote server
Stanza errorStanza = ServerErrorResponses.getStanzaError(StanzaErrorCondition.UNKNOWN_SENDER,
coreStanza, StanzaErrorType.MODIFY, "Incorrect from attribute", null, null);
- ResponseWriter.writeResponse(sessionContext, errorStanza);
- return;
+ sessionContext.getResponseWriter().write(errorStanza);
+ return;
}
Entity to = stanza.getTo();
@@ -140,13 +140,13 @@ public class ProtocolWorker implements StanzaProcessor {
// TODO what's the appropriate error? StreamErrorCondition.IMPROPER_ADDRESSING?
Stanza errorStanza = ServerErrorResponses.getStanzaError(StanzaErrorCondition.BAD_REQUEST,
coreStanza, StanzaErrorType.MODIFY, "Missing to attribute", null, null);
- ResponseWriter.writeResponse(sessionContext, errorStanza);
+ sessionContext.getResponseWriter().write(errorStanza);
return;
} else if(!EntityUtils.isAddressingServer(serverRuntimeContext.getServerEntity(), to)) {
// TODO what's the appropriate error? StreamErrorCondition.IMPROPER_ADDRESSING?
Stanza errorStanza = ServerErrorResponses.getStanzaError(StanzaErrorCondition.BAD_REQUEST,
coreStanza, StanzaErrorType.MODIFY, "Invalid to attribute", null, null);
- ResponseWriter.writeResponse(sessionContext, errorStanza);
+ sessionContext.getResponseWriter().write(errorStanza);
return;
}
@@ -197,12 +197,12 @@ public class ProtocolWorker implements StanzaProcessor {
}
}
- public void processTLSEstablished(SessionContext sessionContext, SessionStateHolder sessionStateHolder) {
+ public void processTLSEstablished(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder) {
processTLSEstablishedInternal(sessionContext, sessionStateHolder, responseWriter);
}
- static void processTLSEstablishedInternal(SessionContext sessionContext, SessionStateHolder sessionStateHolder,
- ResponseWriter responseWriter) {
+ static void processTLSEstablishedInternal(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder,
+ ResponseWriter responseWriter) {
if (sessionContext.getState() != SessionState.ENCRYPTION_STARTED) {
responseWriter.handleProtocolError(new TLSException(), sessionContext, null);
return;
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/QueuedStanzaProcessor.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/QueuedStanzaProcessor.java
index bc24210..9739189 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/QueuedStanzaProcessor.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/QueuedStanzaProcessor.java
@@ -25,7 +25,7 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -48,28 +48,29 @@ public class QueuedStanzaProcessor implements StanzaProcessor {
int maxThreadCount = 20;
int threadTimeoutSeconds = 2 * 60 * 1000;
this.executor = new ThreadPoolExecutor(coreThreadCount, maxThreadCount, threadTimeoutSeconds, TimeUnit.SECONDS,
- new LinkedBlockingQueue<Runnable>());
+ new LinkedBlockingQueue<>());
this.stanzaProcessor = stanzaProcessor;
}
- public void processStanza(ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext, Stanza stanza,
- SessionStateHolder sessionStateHolder) {
+ public void processStanza(ServerRuntimeContext serverRuntimeContext, StanzaReceivingSessionContext sessionContext,
+ Stanza stanza, SessionStateHolder sessionStateHolder) {
executor.submit(new StanzaProcessorUnitOfWork(sessionContext, stanza, sessionStateHolder));
}
- public void processTLSEstablished(SessionContext sessionContext, SessionStateHolder sessionStateHolder) {
+ public void processTLSEstablished(StanzaReceivingSessionContext sessionContext,
+ SessionStateHolder sessionStateHolder) {
ProtocolWorker.processTLSEstablishedInternal(sessionContext, sessionStateHolder, responseWriter);
}
private class StanzaProcessorUnitOfWork implements Runnable {
- private SessionContext sessionContext;
+ private StanzaReceivingSessionContext sessionContext;
private Stanza stanza;
private SessionStateHolder sessionStateHolder;
- private StanzaProcessorUnitOfWork(SessionContext sessionContext, Stanza stanza,
+ private StanzaProcessorUnitOfWork(StanzaReceivingSessionContext sessionContext, Stanza stanza,
SessionStateHolder sessionStateHolder) {
this.sessionContext = sessionContext;
this.stanza = stanza;
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java
index 14ba14c..d47b230 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ResponseWriter.java
@@ -22,6 +22,7 @@ package org.apache.vysper.xmpp.protocol;
import org.apache.vysper.xmpp.parser.ParsingErrorCondition;
import org.apache.vysper.xmpp.parser.ParsingException;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.XMPPVersion;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.server.response.ServerResponses;
@@ -37,7 +38,7 @@ import org.apache.vysper.xmpp.stanza.XMPPCoreStanza;
*/
public class ResponseWriter {
- public static void writeUnsupportedStanzaError(SessionContext sessionContext) {
+ public static void writeUnsupportedStanzaError(StanzaReceivingSessionContext sessionContext) {
Stanza errorStanza = ServerErrorResponses.getStreamError(StreamErrorCondition.UNSUPPORTED_STANZA_TYPE,
sessionContext.getXMLLang(), "service unavailable at this session state", null);
@@ -47,15 +48,8 @@ public class ResponseWriter {
writeErrorAndClose(sessionContext, streamOpener);
}
- /**
- * writes a response in this context
- */
- public static void writeResponse(SessionContext sessionContext, Stanza responseStanza) {
- sessionContext.getResponseWriter().write(responseStanza);
- }
-
- public static void handleProtocolError(ProtocolException protocolException, SessionContext sessionContext,
- Stanza receivedStanza) {
+ public static void handleProtocolError(ProtocolException protocolException, StanzaReceivingSessionContext sessionContext,
+ Stanza receivedStanza) {
Stanza errorStanza = null;
if (protocolException != null)
errorStanza = protocolException.getErrorStanza();
@@ -67,19 +61,19 @@ public class ResponseWriter {
writeErrorAndClose(sessionContext, errorStanza);
}
- public void handleUnsupportedStanzaType(SessionContext sessionContext, Stanza receivedStanza) {
+ public void handleUnsupportedStanzaType(StanzaReceivingSessionContext sessionContext, Stanza receivedStanza) {
Stanza errorStanza = ServerErrorResponses.getStreamError(StreamErrorCondition.UNSUPPORTED_STANZA_TYPE,
sessionContext.getXMLLang(), "could not process incoming stanza", receivedStanza);
writeErrorAndClose(sessionContext, errorStanza);
}
- public void handleNotAuthorized(SessionContext sessionContext, Stanza receivedStanza) {
+ public void handleNotAuthorized(StanzaReceivingSessionContext sessionContext, Stanza receivedStanza) {
Stanza errorStanza = ServerErrorResponses.getStreamError(StreamErrorCondition.NOT_AUTHORIZED,
sessionContext.getXMLLang(), "could not process incoming stanza", receivedStanza);
writeErrorAndClose(sessionContext, errorStanza);
}
- public void handleWrongFromJID(SessionContext sessionContext, Stanza receivedStanza) {
+ public void handleWrongFromJID(StanzaReceivingSessionContext sessionContext, Stanza receivedStanza) {
XMPPCoreStanza receivedCoreStanza = XMPPCoreStanza.getWrapper(receivedStanza);
if (receivedCoreStanza == null) {
handleNotAuthorized(sessionContext, receivedStanza);
@@ -89,20 +83,11 @@ public class ResponseWriter {
Stanza errorStanza = ServerErrorResponses.getStanzaError(StanzaErrorCondition.UNKNOWN_SENDER,
receivedCoreStanza, StanzaErrorType.MODIFY, "from attribute does not match authorized entity", null,
null);
- writeResponse(sessionContext, errorStanza);
- }
-
- public void handleParsingException(SessionContext sessionContext, ParsingException e) {
- // TODO write the __right__ error response, not bad-format default only
- if (e.getErrorCondition() != ParsingErrorCondition.BAD_FORMAT)
- throw new RuntimeException("cannot handle this error condition yet");
- Stanza errorStanza = ServerErrorResponses.getStreamError(StreamErrorCondition.BAD_FORMAT,
- sessionContext.getXMLLang(), "could not parse incoming stanza", null);
- writeErrorAndClose(sessionContext, errorStanza);
+ sessionContext.getResponseWriter().write(errorStanza);
}
- public static void writeErrorAndClose(SessionContext sessionContext, Stanza errorStanza) {
- writeResponse(sessionContext, errorStanza);
+ public static void writeErrorAndClose(StanzaReceivingSessionContext sessionContext, Stanza errorStanza) {
+ sessionContext.getResponseWriter().write(errorStanza);
sessionContext.endSession(SessionContext.SessionTerminationCause.STREAM_ERROR);
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaBroker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaBroker.java
index 3398378..6404ba0 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaBroker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaBroker.java
@@ -25,7 +25,7 @@ import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -35,9 +35,9 @@ public class SimpleStanzaBroker implements StanzaBroker {
private final StanzaRelay stanzaRelay;
- private final SessionContext sessionContext;
+ private final StanzaReceivingSessionContext sessionContext;
- public SimpleStanzaBroker(StanzaRelay stanzaRelay, SessionContext sessionContext) {
+ public SimpleStanzaBroker(StanzaRelay stanzaRelay, StanzaReceivingSessionContext sessionContext) {
this.stanzaRelay = requireNonNull(stanzaRelay);
this.sessionContext = sessionContext;
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutor.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutor.java
index 062d8ae..5de77af 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutor.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutor.java
@@ -23,7 +23,7 @@ import static java.util.Objects.requireNonNull;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -42,7 +42,7 @@ class SimpleStanzaHandlerExecutor implements StanzaHandlerExecutor {
@Override
public void execute(Stanza stanza, ServerRuntimeContext serverRuntimeContext, boolean isOutboundStanza,
- SessionContext sessionContext, SessionStateHolder sessionStateHolder) throws ProtocolException {
+ StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder) throws ProtocolException {
stanzaHandler.execute(stanza, serverRuntimeContext, isOutboundStanza, sessionContext, sessionStateHolder,
new SimpleStanzaBroker(stanzaRelay, sessionContext));
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerExecutor.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerExecutor.java
index 4a19e64..18094bb 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerExecutor.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaHandlerExecutor.java
@@ -21,6 +21,7 @@ package org.apache.vysper.xmpp.protocol;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -38,5 +39,6 @@ import org.apache.vysper.xmpp.stanza.Stanza;
*/
public interface StanzaHandlerExecutor {
void execute(Stanza stanza, ServerRuntimeContext serverRuntimeContext, boolean isOutboundStanza,
- SessionContext sessionContext, SessionStateHolder sessionStateHolder) throws ProtocolException;
+ StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder)
+ throws ProtocolException;
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java
index e7b2952..8f910c3 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java
@@ -21,6 +21,7 @@ package org.apache.vysper.xmpp.protocol;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -33,8 +34,8 @@ public interface StanzaProcessor {
/**
* processes a stanza as received from a local session
*/
- void processStanza(ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext, Stanza stanza,
- SessionStateHolder sessionStateHolder);
+ void processStanza(ServerRuntimeContext serverRuntimeContext, StanzaReceivingSessionContext sessionContext,
+ Stanza stanza, SessionStateHolder sessionStateHolder);
- void processTLSEstablished(SessionContext sessionContext, SessionStateHolder sessionStateHolder);
+ void processTLSEstablished(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder);
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StateAwareProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StateAwareProtocolWorker.java
index 4036584..e33f4a2 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StateAwareProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StateAwareProtocolWorker.java
@@ -19,7 +19,7 @@
*/
package org.apache.vysper.xmpp.protocol;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -32,6 +32,6 @@ import org.apache.vysper.xmpp.stanza.Stanza;
*/
public interface StateAwareProtocolWorker {
- public void processStanza(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler);
+ void processStanza(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler);
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AbstractStateAwareProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AbstractStateAwareProtocolWorker.java
index edcd9a6..5e70fd7 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AbstractStateAwareProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AbstractStateAwareProtocolWorker.java
@@ -29,6 +29,7 @@ import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
import org.apache.vysper.xmpp.protocol.StateAwareProtocolWorker;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -46,8 +47,8 @@ public abstract class AbstractStateAwareProtocolWorker implements StateAwareProt
abstract public SessionState getHandledState();
- public void processStanza(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ public void processStanza(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
boolean proceed = checkState(sessionContext, sessionStateHolder, stanza, stanzaHandler);
if (!proceed)
return; // TODO close stream?
@@ -55,13 +56,13 @@ public abstract class AbstractStateAwareProtocolWorker implements StateAwareProt
executeHandler(sessionContext, sessionStateHolder, stanza, stanzaHandler);
}
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
return 0 == getHandledState().compareTo(sessionContext.getState());
}
- private void executeHandler(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ private void executeHandler(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
try {
stanzaHandlerExecutorFactory.build(stanzaHandler).execute(stanza, sessionContext.getServerRuntimeContext(),
isProcessingOutboundStanzas(), sessionContext, sessionStateHolder);
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AuthenticatedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AuthenticatedProtocolWorker.java
index 10d37f8..c96496d 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AuthenticatedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/AuthenticatedProtocolWorker.java
@@ -24,8 +24,8 @@ import org.apache.vysper.xmpp.protocol.ResponseWriter;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -39,8 +39,8 @@ public class AuthenticatedProtocolWorker extends AbstractStateAwareProtocolWorke
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
if (StreamStartHandler.class.isAssignableFrom(stanzaHandler.unwrapType()))
return true;
if (stanzaHandler.verify(stanza))
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
index 96623f9..af62742 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
@@ -29,8 +29,8 @@ import org.apache.vysper.xmpp.protocol.ResponseWriter;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -49,8 +49,8 @@ public class EncryptedProtocolWorker extends AbstractStateAwareProtocolWorker {
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
Class<?> handlerUnwrappedType = stanzaHandler.unwrapType();
if (StreamStartHandler.class.isAssignableFrom(handlerUnwrappedType)) {
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptionStartedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptionStartedProtocolWorker.java
index 20e84de..e99132e 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptionStartedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptionStartedProtocolWorker.java
@@ -22,8 +22,8 @@ package org.apache.vysper.xmpp.protocol.worker;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -41,8 +41,8 @@ public class EncryptionStartedProtocolWorker extends AbstractStateAwareProtocolW
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
// StartTLS is currently completely handled on the protocol side.
// anyway, there are no stanzas to be parsed between ENCRYPTION_STARTED and
// ENCRYPTED.
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EndOrClosedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EndOrClosedProtocolWorker.java
index dac84e3..1b58673 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EndOrClosedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EndOrClosedProtocolWorker.java
@@ -22,8 +22,8 @@ package org.apache.vysper.xmpp.protocol.worker;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -42,8 +42,8 @@ public class EndOrClosedProtocolWorker extends AbstractStateAwareProtocolWorker
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
throw new RuntimeException("session was terminated");
}
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/InitiatedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/InitiatedProtocolWorker.java
index cf0d9bd..d4ba8d9 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/InitiatedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/InitiatedProtocolWorker.java
@@ -25,8 +25,8 @@ import org.apache.vysper.xmpp.protocol.ResponseWriter;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -45,8 +45,8 @@ public class InitiatedProtocolWorker extends AbstractStateAwareProtocolWorker {
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
Class<?> handlerUnwrappedType = stanzaHandler.unwrapType();
if (XMLPrologHandler.class.isAssignableFrom(handlerUnwrappedType))
return true;
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
index 9887669..4bf4293 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
@@ -27,8 +27,8 @@ import org.apache.vysper.xmpp.protocol.ResponseWriter;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -47,8 +47,8 @@ public class StartedProtocolWorker extends AbstractStateAwareProtocolWorker {
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder,
+ Stanza stanza, StanzaHandler stanzaHandler) {
Class<?> handlerUnwrappedType = stanzaHandler.unwrapType();
if (StartTLSHandler.class.isAssignableFrom(handlerUnwrappedType)) {
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/UnconnectedProtocolWorker.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/UnconnectedProtocolWorker.java
index e5e5f4e..1295851 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/UnconnectedProtocolWorker.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/UnconnectedProtocolWorker.java
@@ -22,8 +22,8 @@ package org.apache.vysper.xmpp.protocol.worker;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -42,8 +42,8 @@ public class UnconnectedProtocolWorker extends AbstractStateAwareProtocolWorker
}
@Override
- protected boolean checkState(SessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
- StanzaHandler stanzaHandler) {
+ protected boolean checkState(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder, Stanza stanza,
+ StanzaHandler stanzaHandler) {
// TODO
return true;
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
index 848624e..3dc4ddf 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
@@ -38,7 +38,7 @@ import org.apache.vysper.xmpp.writer.StanzaWriter;
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
-public abstract class AbstractSessionContext implements SessionContext {
+public abstract class AbstractSessionContext implements StanzaReceivingSessionContext {
protected final ServerRuntimeContext serverRuntimeContext;
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
index f6d4b48..f0d14f9 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
@@ -130,8 +130,6 @@ public interface SessionContext {
*/
void setXMLLang(String languageCode);
- StanzaWriter getResponseWriter();
-
/**
* Ends this session and the underlying TCP connection.
*
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/StanzaReceivingSessionContext.java
similarity index 54%
copy from server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java
copy to server/core/src/main/java/org/apache/vysper/xmpp/server/StanzaReceivingSessionContext.java
index e7b2952..5901765 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/StanzaProcessor.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/StanzaReceivingSessionContext.java
@@ -6,35 +6,26 @@
* 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.vysper.xmpp.protocol;
+package org.apache.vysper.xmpp.server;
-import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
-import org.apache.vysper.xmpp.stanza.Stanza;
+import org.apache.vysper.xmpp.writer.StanzaWriter;
/**
- * processes stanzas emmitted from local sessions
- *
- * @author The Apache MINA Project (dev@mina.apache.org)
+ * @author Réda Housni Alaoui
*/
-public interface StanzaProcessor {
+public interface StanzaReceivingSessionContext extends SessionContext {
- /**
- * processes a stanza as received from a local session
- */
- void processStanza(ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext, Stanza stanza,
- SessionStateHolder sessionStateHolder);
+ StanzaWriter getResponseWriter();
- void processTLSEstablished(SessionContext sessionContext, SessionStateHolder sessionStateHolder);
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessor.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessor.java
index 7ed26f9..8176620 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessor.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessor.java
@@ -28,7 +28,7 @@ import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.protocol.StanzaHandlerExecutorFactory;
import org.apache.vysper.xmpp.protocol.StanzaProcessor;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.XMPPCoreStanza;
@@ -52,8 +52,8 @@ public class ComponentStanzaProcessor implements StanzaProcessor {
componentStanzaHandlerLookup.addDictionary(namespaceHandlerDictionary);
}
- public void processStanza(ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext, Stanza stanza,
- SessionStateHolder sessionStateHolder) {
+ public void processStanza(ServerRuntimeContext serverRuntimeContext, StanzaReceivingSessionContext sessionContext, Stanza stanza,
+ SessionStateHolder sessionStateHolder) {
if (stanza == null)
throw new RuntimeException("cannot process NULL stanzas");
@@ -77,7 +77,7 @@ public class ComponentStanzaProcessor implements StanzaProcessor {
}
- public void processTLSEstablished(SessionContext sessionContext, SessionStateHolder sessionStateHolder) {
+ public void processTLSEstablished(StanzaReceivingSessionContext sessionContext, SessionStateHolder sessionStateHolder) {
throw new RuntimeException("should not be called for components, which only acts as an established session");
}
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/DefaultResourceRegistry.java b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/DefaultResourceRegistry.java
index 00b0955..494aa7c 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/DefaultResourceRegistry.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/DefaultResourceRegistry.java
@@ -31,6 +31,7 @@ import java.util.Map;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.uuid.JVMBuiltinUUIDGenerator;
import org.apache.vysper.xmpp.uuid.UUIDGenerator;
import org.slf4j.Logger;
@@ -47,13 +48,13 @@ public class DefaultResourceRegistry implements ResourceRegistry {
private static class SessionData {
- private final SessionContext context;
+ private final StanzaReceivingSessionContext context;
private ResourceState state;
private Integer priority;
- SessionData(SessionContext context, ResourceState status, Integer priority) {
+ SessionData(StanzaReceivingSessionContext context, ResourceState status, Integer priority) {
this.context = context;
this.state = status;
this.priority = priority == null ? 0 : priority;
@@ -87,7 +88,7 @@ public class DefaultResourceRegistry implements ResourceRegistry {
* @param sessionContext
* @return newly allocated resource id
*/
- public String bindSession(SessionContext sessionContext) {
+ public String bindSession(StanzaReceivingSessionContext sessionContext) {
if (sessionContext == null) {
throw new IllegalArgumentException("session context cannot be NULL");
}
@@ -225,7 +226,7 @@ public class DefaultResourceRegistry implements ResourceRegistry {
return resourceList;
}
- public SessionContext getSessionContext(String resourceId) {
+ public StanzaReceivingSessionContext getSessionContext(String resourceId) {
SessionData data = boundResources.get(resourceId);
if (data == null)
return null;
@@ -277,8 +278,8 @@ public class DefaultResourceRegistry implements ResourceRegistry {
* session for the JID's resource part. if it's a bare JID, it will return all session for the JID.
* @param entity
*/
- public List<SessionContext> getSessions(Entity entity) {
- List<SessionContext> sessionContexts = new ArrayList<SessionContext>();
+ public List<StanzaReceivingSessionContext> getSessions(Entity entity) {
+ List<StanzaReceivingSessionContext> sessionContexts = new ArrayList<>();
List<String> boundResources = getBoundResources(entity, false);
for (String resourceId : boundResources) {
@@ -296,10 +297,10 @@ public class DefaultResourceRegistry implements ResourceRegistry {
* for the threshold is 0 (zero), which is also the default when param is NULL.
* @return returns the sessions matching the given JID (bare) with same or higher priority
*/
- public List<SessionContext> getSessions(Entity entity, Integer prioThreshold) {
+ public List<StanzaReceivingSessionContext> getSessions(Entity entity, Integer prioThreshold) {
if (prioThreshold == null)
prioThreshold = 0;
- List<SessionContext> results = new ArrayList<SessionContext>();
+ List<StanzaReceivingSessionContext> results = new ArrayList<>();
List<String> boundResourceIds = getBoundResources(entity, true);
for (String resourceId : boundResourceIds) {
@@ -333,9 +334,9 @@ public class DefaultResourceRegistry implements ResourceRegistry {
* @return for a bare JID, it will return the highest prioritized sessions. for a full JID, it will return the
* related session.
*/
- public List<SessionContext> getHighestPrioSessions(Entity entity, Integer prioThreshold) {
+ public List<StanzaReceivingSessionContext> getHighestPrioSessions(Entity entity, Integer prioThreshold) {
Integer currentPrio = prioThreshold == null ? Integer.MIN_VALUE : prioThreshold;
- List<SessionContext> results = new ArrayList<SessionContext>();
+ List<StanzaReceivingSessionContext> results = new ArrayList<>();
boolean isResourceSet = entity.isResourceSet();
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistry.java b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistry.java
index 05f0a28..27f3e93 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistry.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistry.java
@@ -2,13 +2,14 @@ package org.apache.vysper.xmpp.state.resourcebinding;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import java.util.List;
/**
*/
public interface ResourceRegistry {
- SessionContext getSessionContext(String resourceId);
+ StanzaReceivingSessionContext getSessionContext(String resourceId);
boolean setResourceState(String resourceId, ResourceState state);
@@ -20,17 +21,17 @@ public interface ResourceRegistry {
String getUniqueResourceForSession(SessionContext sessionContext);
- List<SessionContext> getSessions(Entity entity);
+ List<StanzaReceivingSessionContext> getSessions(Entity entity);
- List<SessionContext> getSessions(Entity entity, Integer prioThreshold);
+ List<StanzaReceivingSessionContext> getSessions(Entity entity, Integer prioThreshold);
- List<SessionContext> getHighestPrioSessions(Entity entity, Integer prioThreshold);
+ List<StanzaReceivingSessionContext> getHighestPrioSessions(Entity entity, Integer prioThreshold);
void setResourcePriority(String resourceId, int priority);
List<String> getAvailableResources(Entity entity);
- String bindSession(SessionContext sessionContext);
+ String bindSession(StanzaReceivingSessionContext sessionContext);
boolean unbindResource(String resourceId);
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/delivery/StanzaRelayBrokerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/delivery/StanzaRelayBrokerTestCase.java
index 1e12e11..ce9b904 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/delivery/StanzaRelayBrokerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/delivery/StanzaRelayBrokerTestCase.java
@@ -29,6 +29,7 @@ import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
import org.apache.vysper.xmpp.server.ServerFeatures;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.junit.Before;
@@ -53,7 +54,7 @@ public class StanzaRelayBrokerTestCase extends Mockito {
private StanzaRelay internalRelay = mock(StanzaRelay.class);
private StanzaRelay externalRelay = mock(StanzaRelay.class);
- private SessionContext sessionContext = mock(SessionContext.class);
+ private StanzaReceivingSessionContext sessionContext = mock(StanzaReceivingSessionContext.class);
private ServerRuntimeContext serverRuntimeContext = mock(ServerRuntimeContext.class);
private ServerFeatures serverFeatures = mock(ServerFeatures.class);
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelayTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelayTestCase.java
index c304823..8a49ad0 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelayTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringExternalInboundStanzaRelayTestCase.java
@@ -31,6 +31,7 @@ import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.s2s.XMPPServerConnector;
import org.apache.vysper.xmpp.server.s2s.XMPPServerConnectorRegistry;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -61,7 +62,7 @@ public class DeliveringExternalInboundStanzaRelayTestCase extends TestCase {
private static final Stanza STANZA = XMPPCoreStanza.getWrapper(StanzaBuilder.createMessageStanza(FROM, TO, LANG,
BODY).build());
- private SessionContext sessionContext = mock(SessionContext.class);
+ private StanzaReceivingSessionContext sessionContext = mock(StanzaReceivingSessionContext.class);
public void testRemoteServerError() throws Exception {
XMPPServerConnectorRegistry registry = mock(XMPPServerConnectorRegistry.class);
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java
index 4d44192..b70fc76 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/delivery/inbound/DeliveringInteralInboundStanzaRelayTestCase.java
@@ -38,6 +38,7 @@ import org.apache.vysper.xmpp.protocol.SimpleStanzaHandlerExecutorFactory;
import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.TestSessionContext;
import org.apache.vysper.xmpp.server.components.SimpleComponentRegistry;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -63,7 +64,7 @@ public class DeliveringInteralInboundStanzaRelayTestCase extends TestCase {
protected DeliveringInternalInboundStanzaRelay stanzaRelay;
- private SessionContext sessionContext = mock(SessionContext.class);
+ private StanzaReceivingSessionContext sessionContext = mock(StanzaReceivingSessionContext.class);
static class AccountVerificationMock implements AccountManagement {
public void addUser(Entity username, String password) throws AccountCreationException {
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandlerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandlerTestCase.java
index 39ff493..ce48988 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandlerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoInfoIQHandlerTestCase.java
@@ -19,6 +19,8 @@
*/
package org.apache.vysper.xmpp.modules.servicediscovery.handler;
+import static org.junit.Assert.assertTrue;
+
import java.util.Arrays;
import java.util.List;
@@ -36,7 +38,7 @@ import org.apache.vysper.xmpp.modules.servicediscovery.management.ServiceDiscove
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.StanzaBroker;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.IQStanza;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -50,8 +52,6 @@ import org.mockito.Mockito;
import junit.framework.Assert;
-import static org.junit.Assert.assertTrue;
-
/**
*/
public class DiscoInfoIQHandlerTestCase extends Mockito {
@@ -68,7 +68,7 @@ public class DiscoInfoIQHandlerTestCase extends Mockito {
private ServerRuntimeContext serverRuntimeContext = mock(ServerRuntimeContext.class);
- private SessionContext sessionContext = mock(SessionContext.class);
+ private StanzaReceivingSessionContext sessionContext = mock(StanzaReceivingSessionContext.class);
private ServiceCollector serviceCollector = mock(ServiceCollector.class);
@@ -316,7 +316,7 @@ public class DiscoInfoIQHandlerTestCase extends Mockito {
List<Stanza> responses = handler.handleResult(stanza, serverRuntimeContext, sessionContext, stanzaBroker);
assertTrue(responses.isEmpty());
-
+
verify(stanzaBroker).write(eq(USER), eq(stanza), any(DeliveryFailureStrategy.class));
}
@@ -329,7 +329,7 @@ public class DiscoInfoIQHandlerTestCase extends Mockito {
List<Stanza> responses = handler.handleResult(stanza, serverRuntimeContext, sessionContext, stanzaBroker);
assertTrue(responses.isEmpty());
-
+
verify(stanzaBroker).writeToSession(stanza);
}
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/ExtendedDiscoInfoTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/ExtendedDiscoInfoTestCase.java
index 494291d..472fd9d 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/ExtendedDiscoInfoTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/ExtendedDiscoInfoTestCase.java
@@ -41,7 +41,7 @@ import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.TestSessionContext;
import org.apache.vysper.xmpp.stanza.IQStanza;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
@@ -87,7 +87,7 @@ public class ExtendedDiscoInfoTestCase extends TestCase {
IQStanza finalStanza = (IQStanza) XMPPCoreStanza.getWrapper(request.build());
- SessionContext sessionContext = new TestSessionContext(runtimeContext, new SessionStateHolder(),
+ StanzaReceivingSessionContext sessionContext = new TestSessionContext(runtimeContext, new SessionStateHolder(),
runtimeContext.getStanzaRelay());
List<Stanza> resultStanzas = infoIQHandler.handleGet(finalStanza, runtimeContext, sessionContext,
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessorTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessorTestCase.java
index eb35444..00d556c 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessorTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/server/components/ComponentStanzaProcessorTestCase.java
@@ -34,6 +34,7 @@ import org.apache.vysper.xmpp.protocol.SimpleStanzaHandlerExecutorFactory;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.apache.vysper.xmpp.writer.StanzaWriter;
@@ -51,7 +52,7 @@ public class ComponentStanzaProcessorTestCase {
private ServerRuntimeContext serverRuntimeContext = mock(ServerRuntimeContext.class);
- private SessionContext sessionContext = mock(SessionContext.class);
+ private StanzaReceivingSessionContext sessionContext = mock(StanzaReceivingSessionContext.class);
private SessionStateHolder sessionStateHolder = new SessionStateHolder();
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistryTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistryTestCase.java
index 1f0ed77..84e85ac 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistryTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/state/resourcebinding/ResourceRegistryTestCase.java
@@ -26,6 +26,7 @@ import junit.framework.TestCase;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.server.TestSessionContext;
/**
@@ -90,12 +91,12 @@ public class ResourceRegistryTestCase extends TestCase {
assertTrue(resourceList.contains(resourceId1));
assertTrue(resourceList.contains(resourceId2));
- List<SessionContext> sessionList = resourceRegistry.getSessions(entity);
+ List<StanzaReceivingSessionContext> sessionList = resourceRegistry.getSessions(entity);
assertEquals(2, resourceList.size());
assertTrue(sessionList.contains(sessionContext1));
assertTrue(sessionList.contains(sessionContext2));
- List<SessionContext> highestPrioSessions = resourceRegistry.getHighestPrioSessions(entity, null);
+ List<StanzaReceivingSessionContext> highestPrioSessions = resourceRegistry.getHighestPrioSessions(entity, null);
assertEquals(1, highestPrioSessions.size());
SessionContext highestPrioSession = highestPrioSessions.get(0);
assertSame(resourceRegistry.getSessionContext(resourceId2), highestPrioSession);
@@ -145,7 +146,7 @@ public class ResourceRegistryTestCase extends TestCase {
assertTrue(resourceList.contains(resourceId1));
assertTrue(resourceList.contains(resourceId2));
- List<SessionContext> sessionList = resourceRegistry.getSessions(entity);
+ List<StanzaReceivingSessionContext> sessionList = resourceRegistry.getSessions(entity);
assertEquals(2, resourceList.size());
assertTrue(sessionList.contains(sessionContext1));
assertTrue(sessionList.contains(sessionContext2));
diff --git a/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/JettyXmppWebSocketTest.java b/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/JettyXmppWebSocketTest.java
index 868456c..d2f1d94 100644
--- a/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/JettyXmppWebSocketTest.java
+++ b/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/JettyXmppWebSocketTest.java
@@ -25,6 +25,7 @@ import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaProcessor;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.eclipse.jetty.websocket.WebSocket.Connection;
@@ -50,7 +51,7 @@ public class JettyXmppWebSocketTest {
Stanza expected = new StanzaBuilder("test").build();
Mockito.verify(stanzaProcessor).processStanza(Mockito.eq(serverRuntimeContext),
- Mockito.any(SessionContext.class), Mockito.eq(expected), Mockito.any(SessionStateHolder.class));
+ Mockito.any(StanzaReceivingSessionContext.class), Mockito.eq(expected), Mockito.any(SessionStateHolder.class));
}
@Test
diff --git a/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/TomcatXmppWebSocketTest.java b/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/TomcatXmppWebSocketTest.java
index ac19a8b..9a1c6c9 100644
--- a/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/TomcatXmppWebSocketTest.java
+++ b/server/extensions/websockets/src/test/java/org/apache/vysper/xmpp/extension/websockets/TomcatXmppWebSocketTest.java
@@ -27,6 +27,7 @@ import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.protocol.StanzaProcessor;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.junit.Test;
@@ -51,7 +52,7 @@ public class TomcatXmppWebSocketTest {
Stanza expected = new StanzaBuilder("test").build();
Mockito.verify(stanzaProcessor).processStanza(Mockito.eq(serverRuntimeContext),
- Mockito.any(SessionContext.class), Mockito.eq(expected), Mockito.any(SessionStateHolder.class));
+ Mockito.any(StanzaReceivingSessionContext.class), Mockito.eq(expected), Mockito.any(SessionStateHolder.class));
}
@Test
diff --git a/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/BoshHandlerTest.java b/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/BoshHandlerTest.java
index e01a829..9fd8c4a 100644
--- a/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/BoshHandlerTest.java
+++ b/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/BoshHandlerTest.java
@@ -43,6 +43,7 @@ import org.apache.vysper.xmpp.protocol.StanzaProcessor;
import org.apache.vysper.xmpp.server.ServerFeatures;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.easymock.Capture;
@@ -131,11 +132,11 @@ public class BoshHandlerTest {
expect(httpServletRequest.startAsync()).andReturn(asyncContext).atLeastOnce();
expect(httpServletRequest.getAsyncContext()).andReturn(asyncContext).anyTimes();
asyncContext.setTimeout(anyLong());
- httpServletRequest.setAttribute(eq(BOSH_REQUEST_ATTRIBUTE), EasyMock.<BoshRequest> capture(br));
- asyncContext.addListener(EasyMock.<AsyncListener> anyObject());
- Capture<Stanza> stanzaCaptured = new Capture<Stanza>();
- stanzaProcessor.processStanza(eq(serverRuntimeContext), EasyMock.<SessionContext> anyObject(),
- EasyMock.<Stanza> capture(stanzaCaptured), EasyMock.<SessionStateHolder> anyObject());
+ httpServletRequest.setAttribute(eq(BOSH_REQUEST_ATTRIBUTE), EasyMock.capture(br));
+ asyncContext.addListener(EasyMock.anyObject());
+ Capture<Stanza> stanzaCaptured = new Capture<>();
+ stanzaProcessor.processStanza(eq(serverRuntimeContext), EasyMock.anyObject(),
+ EasyMock.capture(stanzaCaptured), EasyMock.anyObject());
mocksControl.replay();
boshRequest = createSaslRequest();
boshHandler.process(httpServletRequest, boshRequest);