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/08 09:45:48 UTC
[mina-vysper] branch master updated: Move offline stanza receiver
to the default stanza broker
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 f791974 Move offline stanza receiver to the default stanza broker
f791974 is described below
commit f7919746764f44d389bf74e891162f11e5786a9b
Author: Réda Housni Alaoui <re...@gmail.com>
AuthorDate: Sun Sep 8 11:45:21 2019 +0200
Move offline stanza receiver to the default stanza broker
---
.../DeliveringInternalInboundStanzaRelay.java | 64 +++++++++++-----------
.../modules/core/base/handler/MessageHandler.java | 5 ++
.../modules/core/im/handler/PresenceHandler.java | 5 ++
...eStanzaBroker.java => DefaultStanzaBroker.java} | 31 ++++++++---
.../xmpp/protocol/SimpleStanzaHandlerExecutor.java | 9 ++-
.../SimpleStanzaHandlerExecutorFactory.java | 12 +++-
.../xmpp/server/DefaultServerRuntimeContext.java | 16 +++---
.../org/apache/vysper/xmpp/server/XMPPServer.java | 9 ++-
.../stanzasession/StanzaSessionTestCase.java | 2 +-
...eliveringInteralInboundStanzaRelayTestCase.java | 2 +-
.../base/handler/MessageHandlerRelayTestCase.java | 8 +--
.../base/handler/RelayingIQHandlerTestCase.java | 4 +-
.../handler/DirectedPresenceHandlerTestCase.java | 10 ++--
.../PresenceAvailInitialOutHandlerTestCase.java | 10 ++--
.../PresenceAvailUpdateOutHandlerTestCase.java | 6 +-
.../PresenceSubRequestOutHandlerTestCase.java | 8 +--
.../handler/ExtendedDiscoInfoTestCase.java | 4 +-
.../ComponentStanzaProcessorTestCase.java | 6 +-
.../AbstractMUCOccupantDiscoTestCase.java | 4 +-
.../handler/AbstractMUCHandlerTestCase.java | 4 +-
.../handler/AbstractMUCMessageHandlerTestCase.java | 4 +-
.../xep0045_muc/handler/ChangeNickTestCase.java | 4 +-
.../xep0045_muc/handler/ChangeStatusTestCase.java | 4 +-
.../xep0045_muc/handler/EnterRoomTestCase.java | 4 +-
.../xep0045_muc/handler/ExitRoomTestCase.java | 4 +-
.../org/apache/vysper/RecordingStanzaBroker.java | 3 -
.../AbstractPublishSubscribeTestCase.java | 4 +-
.../disco/PubSubDiscoItemsTestCase.java | 10 ++--
.../xep0313_mam/user/UserMessageStanzaBroker.java | 20 +++----
.../xep0313_mam/user/UserArchiveTest.java | 12 +++-
30 files changed, 163 insertions(+), 125 deletions(-)
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 c1172ff..7993ea4 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
@@ -39,21 +39,20 @@ import org.apache.vysper.xmpp.addressing.EntityUtils;
import org.apache.vysper.xmpp.authentication.AccountManagement;
import org.apache.vysper.xmpp.delivery.OfflineStanzaReceiver;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
-import org.apache.vysper.xmpp.delivery.failure.DeliveredToOfflineReceiverException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.delivery.failure.LocalRecipientOfflineException;
import org.apache.vysper.xmpp.delivery.failure.NoSuchLocalUserException;
import org.apache.vysper.xmpp.delivery.failure.ServiceNotAvailableException;
-import org.apache.vysper.xmpp.modules.extension.xep0160_offline_storage.OfflineStorageProvider;
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.protocol.StanzaProcessor;
import org.apache.vysper.xmpp.protocol.worker.InboundStanzaProtocolWorker;
+import org.apache.vysper.xmpp.protocol.worker.UnconnectedProtocolWorker;
+import org.apache.vysper.xmpp.server.InternalSessionContext;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionState;
-import org.apache.vysper.xmpp.server.InternalSessionContext;
import org.apache.vysper.xmpp.server.components.ComponentRegistry;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPool;
import org.apache.vysper.xmpp.server.resources.ManagedThreadPoolUtil;
@@ -77,7 +76,7 @@ import org.slf4j.LoggerFactory;
*/
public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, ManagedThreadPool {
- final Logger logger = LoggerFactory.getLogger(DeliveringInternalInboundStanzaRelay.class);
+ private static final Logger LOG = LoggerFactory.getLogger(DeliveringInternalInboundStanzaRelay.class);
private static class RejectedDeliveryHandler implements RejectedExecutionHandler {
@@ -97,6 +96,8 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
private InboundStanzaProtocolWorker inboundStanzaProtocolWorker;
+ private UnconnectedProtocolWorker unconnectedProtocolWorker;
+
private final ComponentRegistry componentRegistry;
private static final Integer PRIO_THRESHOLD = 0;
@@ -107,8 +108,6 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
protected AccountManagement accountVerification;
- protected OfflineStanzaReceiver offlineStanzaReceiver = null;
-
protected Entity serverEntity;
protected ServerRuntimeContext serverRuntimeContext = null;
@@ -120,25 +119,23 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
protected long lastDumpTimestamp = 0;
public DeliveringInternalInboundStanzaRelay(Entity serverEntity, InternalResourceRegistry resourceRegistry,
- StorageProviderRegistry storageProviderRegistry, ComponentRegistry componentRegistry) {
+ StorageProviderRegistry storageProviderRegistry, ComponentRegistry componentRegistry) {
this(serverEntity, resourceRegistry, componentRegistry,
- storageProviderRegistry.retrieve(AccountManagement.class),
- storageProviderRegistry.retrieve(OfflineStorageProvider.class));
+ storageProviderRegistry.retrieve(AccountManagement.class)
+ );
}
public DeliveringInternalInboundStanzaRelay(Entity serverEntity, InternalResourceRegistry resourceRegistry,
- ComponentRegistry componentRegistry, AccountManagement accountVerification,
- OfflineStanzaReceiver offlineStanzaReceiver) {
+ ComponentRegistry componentRegistry, AccountManagement accountVerification) {
this.serverEntity = serverEntity;
this.resourceRegistry = resourceRegistry;
this.componentRegistry = requireNonNull(componentRegistry);
this.accountVerification = accountVerification;
- this.offlineStanzaReceiver = offlineStanzaReceiver;
int coreThreadCount = 10;
int maxThreadCount = 20;
int threadTimeoutSeconds = 2 * 60;
this.executor = new ThreadPoolExecutor(coreThreadCount, maxThreadCount, threadTimeoutSeconds, TimeUnit.SECONDS,
- new LinkedBlockingQueue<Runnable>(), new RejectedDeliveryHandler(this, logger));
+ new LinkedBlockingQueue<>(), new RejectedDeliveryHandler(this, LOG));
}
/* package */ DeliveringInternalInboundStanzaRelay(ExecutorService executor) {
@@ -152,6 +149,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
public void setStanzaHandlerExecutorFactory(StanzaHandlerExecutorFactory stanzaHandlerExecutorFactory) {
this.inboundStanzaProtocolWorker = new InboundStanzaProtocolWorker(stanzaHandlerExecutorFactory);
+ this.unconnectedProtocolWorker = new UnconnectedProtocolWorker(stanzaHandlerExecutorFactory);
}
public final void setLogStorageProvider(final LogStorageProvider logStorageProvider) {
@@ -194,7 +192,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
public void relay(InternalSessionContext sessionContext, Entity receiver, Stanza stanza,
- DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException {
+ DeliveryFailureStrategy deliveryFailureStrategy) throws DeliveryException {
if (!isRelaying()) {
throw new ServiceNotAvailableException("internal inbound relay is not relaying");
}
@@ -225,7 +223,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
protected final UnmodifyableSessionStateHolder sessionStateHolder = new UnmodifyableSessionStateHolder();
Relay(InternalSessionContext sessionContext, Entity receiver, Stanza stanza,
- DeliveryFailureStrategy deliveryFailureStrategy) {
+ DeliveryFailureStrategy deliveryFailureStrategy) {
this.sessionContext = sessionContext;
this.receiver = receiver;
this.stanza = stanza;
@@ -340,7 +338,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
return relayToBestSessions(false);
}
- return relayNotPossible();
+ return new RelayResult(new ServiceNotAvailableException());
}
@SpecCompliant(spec = "draft-ietf-xmpp-3921bis-00", section = "8.2.", status = SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage = SpecCompliant.ComplianceCoverage.COMPLETE)
@@ -375,19 +373,21 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
return new RelayResult(new ServiceNotAvailableException());
}
- private RelayResult relayNotPossible() {
+ private RelayResult relayToOfflineReceiver() {
if (!accountVerification.verifyAccountExists(receiver)) {
- logger.warn("cannot relay to unexisting receiver {} stanza {}", receiver.getFullQualifiedName(),
- stanza.toString());
+ LOG.warn("cannot relay to unexisting receiver {} stanza {}", receiver.getFullQualifiedName(),
+ stanza);
return new RelayResult(new NoSuchLocalUserException());
- } else if (offlineStanzaReceiver != null) {
- offlineStanzaReceiver.receive(stanza);
- return new RelayResult(new DeliveredToOfflineReceiverException());
- } else {
- logger.warn("cannot relay to offline receiver {} stanza {}", receiver.getFullQualifiedName(),
- stanza.toString());
+ }
+
+ StanzaHandler stanzaHandler = serverRuntimeContext.getHandler(stanza);
+ if (stanzaHandler.isSessionRequired()) {
+ LOG.warn("cannot relay to offline receiver {} stanza {}", receiver.getFullQualifiedName(), stanza);
return new RelayResult(new LocalRecipientOfflineException());
}
+ unconnectedProtocolWorker.processStanza(serverRuntimeContext, null, sessionStateHolder, stanza,
+ stanzaHandler);
+ return new RelayResult().setProcessed();
}
protected RelayResult relayToBestSessions(final boolean fallbackToBareJIDAllowed) {
@@ -401,7 +401,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
if (receivingSessions.size() == 0) {
- return relayNotPossible();
+ return relayToOfflineReceiver();
}
RelayResult relayResult = new RelayResult();
@@ -412,8 +412,8 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
try {
StanzaHandler stanzaHandler = receivingSession.getServerRuntimeContext().getHandler(stanza);
- inboundStanzaProtocolWorker.processStanza(serverRuntimeContext, receivingSession, sessionStateHolder, stanza,
- stanzaHandler);
+ inboundStanzaProtocolWorker.processStanza(serverRuntimeContext, receivingSession,
+ sessionStateHolder, stanza, stanzaHandler);
} catch (Exception e) {
relayResult.addProcessingError(new DeliveryException("no relay to non-authenticated sessions"));
continue;
@@ -434,11 +434,11 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
: resourceRegistry.getSessions(receiver, prioThreshold);
if (receivingSessions.size() == 0) {
- return relayNotPossible();
+ return relayToOfflineReceiver();
}
if (receivingSessions.size() > 1) {
- logger.warn("multiplexing: {} sessions will be processing {} ", receivingSessions.size(), stanza);
+ LOG.warn("multiplexing: {} sessions will be processing {} ", receivingSessions.size(), stanza);
}
RelayResult relayResult = new RelayResult();
@@ -450,8 +450,8 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
}
try {
StanzaHandler stanzaHandler = sessionContext.getServerRuntimeContext().getHandler(stanza);
- inboundStanzaProtocolWorker.processStanza(serverRuntimeContext, sessionContext, sessionStateHolder, stanza,
- stanzaHandler);
+ inboundStanzaProtocolWorker.processStanza(serverRuntimeContext, sessionContext, sessionStateHolder,
+ stanza, stanzaHandler);
} catch (Exception e) {
relayResult.addProcessingError(new DeliveryException(e));
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandler.java b/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandler.java
index 75c127f..5f87f08 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandler.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandler.java
@@ -54,6 +54,11 @@ public class MessageHandler extends XMPPCoreStanzaHandler {
}
@Override
+ public boolean isSessionRequired() {
+ return false;
+ }
+
+ @Override
protected List<Stanza> executeCore(XMPPCoreStanza stanza, ServerRuntimeContext serverRuntimeContext,
boolean isOutboundStanza, SessionContext sessionContext, StanzaBroker stanzaBroker) {
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceHandler.java b/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceHandler.java
index a3fcfd5..49e2541 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceHandler.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceHandler.java
@@ -55,6 +55,11 @@ public class PresenceHandler extends XMPPCoreStanzaHandler {
}
@Override
+ public boolean isSessionRequired() {
+ return false;
+ }
+
+ @Override
protected List<Stanza> executeCore(XMPPCoreStanza stanza, ServerRuntimeContext serverRuntimeContext,
boolean isOutboundStanza, SessionContext sessionContext, StanzaBroker stanzaBroker) {
PresenceStanza presenceStanza = (PresenceStanza) stanza;
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/DefaultStanzaBroker.java
similarity index 66%
rename from server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaBroker.java
rename to server/core/src/main/java/org/apache/vysper/xmpp/protocol/DefaultStanzaBroker.java
index f52c2f6..4c3b9ba 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/DefaultStanzaBroker.java
@@ -22,6 +22,7 @@ package org.apache.vysper.xmpp.protocol;
import static java.util.Objects.requireNonNull;
import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.delivery.OfflineStanzaReceiver;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
@@ -31,15 +32,23 @@ import org.apache.vysper.xmpp.stanza.Stanza;
/**
* @author Réda Housni Alaoui
*/
-public class SimpleStanzaBroker implements StanzaBroker {
+public class DefaultStanzaBroker implements StanzaBroker {
private final StanzaRelay stanzaRelay;
private final InternalSessionContext sessionContext;
- public SimpleStanzaBroker(StanzaRelay stanzaRelay, InternalSessionContext sessionContext) {
+ private final OfflineStanzaReceiver offlineStanzaReceiver;
+
+ public DefaultStanzaBroker(StanzaRelay stanzaRelay, InternalSessionContext sessionContext,
+ OfflineStanzaReceiver offlineStanzaReceiver) {
this.stanzaRelay = requireNonNull(stanzaRelay);
this.sessionContext = sessionContext;
+ this.offlineStanzaReceiver = offlineStanzaReceiver;
+ }
+
+ public DefaultStanzaBroker(StanzaRelay stanzaRelay, InternalSessionContext sessionContext){
+ this(stanzaRelay, sessionContext, null);
}
@Override
@@ -56,11 +65,14 @@ public class SimpleStanzaBroker implements StanzaBroker {
if (stanza == null) {
return;
}
- if (sessionContext == null) {
- // TODO Move offline storage here?
+ if (sessionContext != null) {
+ sessionContext.getResponseWriter().write(stanza);
+ return;
+ }
+ if (offlineStanzaReceiver == null) {
return;
}
- sessionContext.getResponseWriter().write(stanza);
+ offlineStanzaReceiver.receive(stanza);
}
@Override
@@ -72,18 +84,23 @@ public class SimpleStanzaBroker implements StanzaBroker {
return false;
}
- SimpleStanzaBroker that = (SimpleStanzaBroker) o;
+ DefaultStanzaBroker that = (DefaultStanzaBroker) o;
if (!stanzaRelay.equals(that.stanzaRelay)) {
return false;
}
- return sessionContext != null ? sessionContext.equals(that.sessionContext) : that.sessionContext == null;
+ if (sessionContext != null ? !sessionContext.equals(that.sessionContext) : that.sessionContext != null) {
+ return false;
+ }
+ return offlineStanzaReceiver != null ? offlineStanzaReceiver.equals(that.offlineStanzaReceiver)
+ : that.offlineStanzaReceiver == null;
}
@Override
public int hashCode() {
int result = stanzaRelay.hashCode();
result = 31 * result + (sessionContext != null ? sessionContext.hashCode() : 0);
+ result = 31 * result + (offlineStanzaReceiver != null ? offlineStanzaReceiver.hashCode() : 0);
return result;
}
}
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 25e28f8..3ceb0af 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
@@ -21,6 +21,7 @@ package org.apache.vysper.xmpp.protocol;
import static java.util.Objects.requireNonNull;
+import org.apache.vysper.xmpp.delivery.OfflineStanzaReceiver;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.server.InternalSessionContext;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
@@ -35,9 +36,13 @@ class SimpleStanzaHandlerExecutor implements StanzaHandlerExecutor {
private final StanzaHandler stanzaHandler;
- public SimpleStanzaHandlerExecutor(StanzaRelay stanzaRelay, StanzaHandler stanzaHandler) {
+ private final OfflineStanzaReceiver offlineStanzaReceiver;
+
+ public SimpleStanzaHandlerExecutor(StanzaRelay stanzaRelay, StanzaHandler stanzaHandler,
+ OfflineStanzaReceiver offlineStanzaReceiver) {
this.stanzaRelay = requireNonNull(stanzaRelay);
this.stanzaHandler = requireNonNull(stanzaHandler);
+ this.offlineStanzaReceiver = offlineStanzaReceiver;
}
@Override
@@ -47,7 +52,7 @@ class SimpleStanzaHandlerExecutor implements StanzaHandlerExecutor {
serverRuntimeContext.getStanzaHandlerInterceptors());
interceptorChain.intercept(stanza, serverRuntimeContext, isOutboundStanza, sessionContext, sessionStateHolder,
- new SimpleStanzaBroker(stanzaRelay, sessionContext));
+ new DefaultStanzaBroker(stanzaRelay, sessionContext, offlineStanzaReceiver));
}
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutorFactory.java b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutorFactory.java
index efcf05e..b8c0e84 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutorFactory.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/protocol/SimpleStanzaHandlerExecutorFactory.java
@@ -21,6 +21,7 @@ package org.apache.vysper.xmpp.protocol;
import static java.util.Objects.requireNonNull;
+import org.apache.vysper.xmpp.delivery.OfflineStanzaReceiver;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
/**
@@ -30,13 +31,20 @@ public class SimpleStanzaHandlerExecutorFactory implements StanzaHandlerExecutor
private final StanzaRelay stanzaRelay;
- public SimpleStanzaHandlerExecutorFactory(StanzaRelay stanzaRelay) {
+ private final OfflineStanzaReceiver offlineStanzaReceiver;
+
+ public SimpleStanzaHandlerExecutorFactory(StanzaRelay stanzaRelay, OfflineStanzaReceiver offlineStanzaReceiver) {
this.stanzaRelay = requireNonNull(stanzaRelay);
+ this.offlineStanzaReceiver = offlineStanzaReceiver;
+ }
+
+ public SimpleStanzaHandlerExecutorFactory(StanzaRelay stanzaRelay){
+ this(stanzaRelay, null);
}
@Override
public StanzaHandlerExecutor build(StanzaHandler stanzaHandler) {
- return new SimpleStanzaHandlerExecutor(stanzaRelay, stanzaHandler);
+ return new SimpleStanzaHandlerExecutor(stanzaRelay, stanzaHandler, offlineStanzaReceiver);
}
}
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
index 0ec8de5..ff1f171 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/DefaultServerRuntimeContext.java
@@ -38,6 +38,7 @@ import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.authentication.UserAuthentication;
import org.apache.vysper.xmpp.cryptography.TLSContextFactory;
+import org.apache.vysper.xmpp.delivery.OfflineStanzaReceiver;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.modules.Module;
import org.apache.vysper.xmpp.modules.ModuleRegistry;
@@ -131,7 +132,7 @@ public class DefaultServerRuntimeContext implements InternalServerRuntimeContext
*/
private final Map<String, ServerRuntimeContextService> serverRuntimeContextServiceMap = new HashMap<String, ServerRuntimeContextService>();
- private List<Module> modules = new ArrayList<Module>();
+ private List<Module> modules = new ArrayList<>();
/**
* map of all registered components, index by the subdomain they are registered
@@ -147,12 +148,13 @@ public class DefaultServerRuntimeContext implements InternalServerRuntimeContext
public DefaultServerRuntimeContext(Entity serverEntity, StanzaRelay stanzaRelay, StanzaProcessor stanzaProcessor,
AlterableComponentRegistry componentRegistry, ResourceRegistry resourceRegistry,
- ServerFeatures serverFeatures, List<HandlerDictionary> dictionaries) {
+ ServerFeatures serverFeatures, List<HandlerDictionary> dictionaries,
+ OfflineStanzaReceiver offlineStanzaReceiver) {
this.serverEntity = serverEntity;
this.stanzaRelay = stanzaRelay;
this.componentRegistry = requireNonNull(componentRegistry);
StanzaHandlerExecutorFactory simpleStanzaHandlerExecutorFactory = new SimpleStanzaHandlerExecutorFactory(
- stanzaRelay);
+ stanzaRelay, offlineStanzaReceiver);
this.serverConnectorRegistry = new DefaultXMPPServerConnectorRegistry(this, simpleStanzaHandlerExecutorFactory,
stanzaProcessor);
this.stanzaHandlerLookup = new StanzaHandlerLookup(this);
@@ -171,17 +173,17 @@ public class DefaultServerRuntimeContext implements InternalServerRuntimeContext
}
public DefaultServerRuntimeContext(Entity serverEntity, StanzaRelay stanzaRelay) {
- this(serverEntity, stanzaRelay, new ProtocolWorker(new SimpleStanzaHandlerExecutorFactory(stanzaRelay)),
+ this(serverEntity, stanzaRelay,
+ new ProtocolWorker(new SimpleStanzaHandlerExecutorFactory(stanzaRelay, null)),
new SimpleComponentRegistry(serverEntity), new DefaultResourceRegistry(), new ServerFeatures(),
- Collections.emptyList());
+ Collections.emptyList(),
+ null);
}
/**
* change the presence cache implementation. this is a setter intended to be
* used at initialisation time. (thus, this method is not part of
* ServerRuntimeContext.
- *
- * @param presenceCache
*/
public void setPresenceCache(LatestPresenceCache presenceCache) {
this.presenceCache = presenceCache;
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java b/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
index 414313e..9d7799c 100644
--- a/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/server/XMPPServer.java
@@ -55,7 +55,6 @@ import org.apache.vysper.xmpp.server.components.AlterableComponentRegistry;
import org.apache.vysper.xmpp.server.components.SimpleComponentRegistry;
import org.apache.vysper.xmpp.state.resourcebinding.DefaultResourceRegistry;
import org.apache.vysper.xmpp.state.resourcebinding.InternalResourceRegistry;
-import org.apache.vysper.xmpp.state.resourcebinding.ResourceRegistry;
/**
* this class is able to boot a standalone XMPP server. <code>
@@ -190,7 +189,7 @@ public class XMPPServer {
AlterableComponentRegistry componentRegistry = new SimpleComponentRegistry(serverEntity);
DeliveringInternalInboundStanzaRelay internalStanzaRelay = new DeliveringInternalInboundStanzaRelay(
- serverEntity, resourceRegistry, componentRegistry, accountManagement, offlineReceiver);
+ serverEntity, resourceRegistry, componentRegistry, accountManagement);
DeliveringExternalInboundStanzaRelay externalStanzaRelay = new DeliveringExternalInboundStanzaRelay();
if (maxInternalRelayThreads >= 0)
@@ -203,12 +202,12 @@ public class XMPPServer {
stanzaRelayBroker.setExternalRelay(externalStanzaRelay);
StanzaHandlerExecutorFactory stanzaHandlerExecutorFactory = new SimpleStanzaHandlerExecutorFactory(
- stanzaRelayBroker);
+ stanzaRelayBroker, offlineReceiver);
stanzaProcessor = new ProtocolWorker(stanzaHandlerExecutorFactory);
serverRuntimeContext = new DefaultServerRuntimeContext(serverEntity, stanzaRelayBroker, stanzaProcessor,
- componentRegistry, resourceRegistry, serverFeatures, dictionaries);
+ componentRegistry, resourceRegistry, serverFeatures, dictionaries, offlineReceiver);
serverRuntimeContext.setStorageProviderRegistry(storageProviderRegistry);
serverRuntimeContext.setTlsContextFactory(tlsContextFactory);
@@ -225,7 +224,7 @@ public class XMPPServer {
if (logStorageProvider != null)
internalStanzaRelay.setLogStorageProvider(logStorageProvider);
- if (endpoints.size() == 0)
+ if (endpoints.isEmpty())
throw new IllegalStateException("server must have at least one endpoint");
/*
diff --git a/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java b/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java
index 1e63b3e..53911ad 100644
--- a/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/stanzasession/StanzaSessionTestCase.java
@@ -61,7 +61,7 @@ public class StanzaSessionTestCase extends TestCase {
ProtocolWorker protocolWorker = new ProtocolWorker(new SimpleStanzaHandlerExecutorFactory(relay));
DefaultServerRuntimeContext serverContext = new DefaultServerRuntimeContext(serverEntity, relay, protocolWorker,
new SimpleComponentRegistry(serverEntity), new DefaultResourceRegistry(), new ServerFeatures(),
- dictionaries);
+ dictionaries, null);
relay.setServerRuntimeContext(serverContext);
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 50bdbe2..054bc15 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
@@ -88,7 +88,7 @@ public class DeliveringInteralInboundStanzaRelayTestCase extends TestCase {
accountVerification = new AccountVerificationMock();
serverEntity = EntityImpl.parse("vysper.org");
stanzaRelay = new DeliveringInternalInboundStanzaRelay(serverEntity, resourceRegistry,
- new SimpleComponentRegistry(serverEntity), accountVerification, null);
+ new SimpleComponentRegistry(serverEntity), accountVerification);
}
public void testSimpleRelay() throws EntityFormatException, XMLSemanticError, DeliveryException {
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java
index cdd6bf9..324c2ae 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java
@@ -30,7 +30,7 @@ import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.modules.core.TestUser;
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.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.server.TestSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -92,7 +92,7 @@ public class MessageHandlerRelayTestCase extends TestCase {
Stanza stanza = stanzaBuilder.build();
messageHandler.execute(stanza, senderSessionContext.getServerRuntimeContext(), true, senderSessionContext, null,
- new SimpleStanzaBroker(senderSessionContext.getStanzaRelay(), senderSessionContext));
+ new DefaultStanzaBroker(senderSessionContext.getStanzaRelay(), senderSessionContext));
Stanza receivedStanza = receiverUser.getNextStanza();
XMLElementVerifier timestampVerifier = receivedStanza.getFirstInnerElement().getVerifier();
@@ -119,12 +119,12 @@ public class MessageHandlerRelayTestCase extends TestCase {
Stanza successfulMessageStanza = StanzaBuilder.createMessageStanza(sender, receiver, "en", "info").build();
messageHandler.execute(successfulMessageStanza, senderSessionContext.getServerRuntimeContext(), true,
- senderSessionContext, null, new SimpleStanzaBroker(stanzaRelay, senderSessionContext));
+ senderSessionContext, null, new DefaultStanzaBroker(stanzaRelay, senderSessionContext));
assertEquals(successfulMessageStanza, receiverQueue.getNext());
Stanza failureMessageStanza = StanzaBuilder.createMessageStanza(sender, noReceiver, "en", "info").build();
messageHandler.execute(failureMessageStanza, senderSessionContext.getServerRuntimeContext(), true,
- senderSessionContext, null, new SimpleStanzaBroker(stanzaRelay, senderSessionContext));
+ senderSessionContext, null, new DefaultStanzaBroker(stanzaRelay, senderSessionContext));
assertNull(receiverQueue.getNext());
Stanza rejectionStanza = senderQueue.getNext();
assertNotNull(rejectionStanza);
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandlerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandlerTestCase.java
index f004403..c501485 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandlerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/RelayingIQHandlerTestCase.java
@@ -22,7 +22,7 @@ package org.apache.vysper.xmpp.modules.core.base.handler;
import org.apache.vysper.xmpp.modules.core.im.handler.PresenceHandlerBaseTestCase;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.RecordingStanzaBroker;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -40,7 +40,7 @@ public class RelayingIQHandlerTestCase extends PresenceHandlerBaseTestCase {
protected void setUp() throws Exception {
super.setUp();
- stanzaBroker = new RecordingStanzaBroker(new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ stanzaBroker = new RecordingStanzaBroker(new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
}
public void testIQClientToClient_Outbound_NotSubscribed() {
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/DirectedPresenceHandlerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/DirectedPresenceHandlerTestCase.java
index abbe900..8877404 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/DirectedPresenceHandlerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/DirectedPresenceHandlerTestCase.java
@@ -25,7 +25,7 @@ import java.util.Set;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.delivery.StanzaReceiverRelay;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.PresenceStanza;
import org.apache.vysper.xmpp.stanza.PresenceStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -49,7 +49,7 @@ public class DirectedPresenceHandlerTestCase extends PresenceHandlerBaseTestCase
.createPresenceStanza(initiatingUser.getEntityFQ(), unrelatedUser.getEntityFQ(), null, null, null, null)
.build());
handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(receiverRelay, sessionContext));
+ new DefaultStanzaBroker(receiverRelay, sessionContext));
assertTrue(0 < receiverRelay.getCountDelivered());
// directed presence has been recorded internally
@@ -71,7 +71,7 @@ public class DirectedPresenceHandlerTestCase extends PresenceHandlerBaseTestCase
.getWrapper(StanzaBuilder.createPresenceStanza(initiatingUser.getEntityFQ(),
unrelatedUser.getEntityFQ(), null, PresenceStanzaType.UNAVAILABLE, null, null).build());
handler.executeCore(directedUnvailPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(receiverRelay, sessionContext));
+ new DefaultStanzaBroker(receiverRelay, sessionContext));
assertTrue(0 < receiverRelay.getCountDelivered());
// directed presence has been recorded internally
@@ -99,7 +99,7 @@ public class DirectedPresenceHandlerTestCase extends PresenceHandlerBaseTestCase
.createPresenceStanza(initiatingUser.getEntityFQ(), unrelatedUser.getEntityFQ(), null, null, null, null)
.build());
handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(receiverRelay, sessionContext));
+ new DefaultStanzaBroker(receiverRelay, sessionContext));
// directed presence has been recorded internally
Set<Entity> map = (Set<Entity>) sessionContext
@@ -113,7 +113,7 @@ public class DirectedPresenceHandlerTestCase extends PresenceHandlerBaseTestCase
.getWrapper(StanzaBuilder.createPresenceStanza(initiatingUser.getEntityFQ(), null, null,
PresenceStanzaType.UNAVAILABLE, null, null).build());
handler.executeCore(generalUnavailable, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(receiverRelay, sessionContext));
+ new DefaultStanzaBroker(receiverRelay, sessionContext));
assertTrue(0 < receiverRelay.getCountDelivered());
ResourceState resourceState = sessionContext.getServerRuntimeContext().getResourceRegistry()
.getResourceState(initiatingUser.getBoundResourceId());
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailInitialOutHandlerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailInitialOutHandlerTestCase.java
index 24938b7..970eb8f 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailInitialOutHandlerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailInitialOutHandlerTestCase.java
@@ -27,7 +27,7 @@ import java.util.List;
import org.apache.vysper.xml.fragment.XMLSemanticError;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.delivery.StanzaReceiverRelay;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.apache.vysper.xmpp.stanza.StanzaErrorCondition;
@@ -47,7 +47,7 @@ public class PresenceAvailInitialOutHandlerTestCase extends PresenceHandlerBaseT
assertEquals(ResourceState.CONNECTED, getResourceState());
handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
// check resource state change, do not override interested
assertEquals(ResourceState.AVAILABLE, getResourceState());
@@ -112,7 +112,7 @@ public class PresenceAvailInitialOutHandlerTestCase extends PresenceHandlerBaseT
.getWrapper(StanzaBuilder.createPresenceStanza(null, null, null, null, null, null).build());
List<Stanza> stanzas = handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true,
- sessionContext, new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ sessionContext, new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
Stanza stanza = stanzas.get(0);
// ... and will give an error:
assertEquals("error", stanza.getAttribute("type").getValue());
@@ -127,7 +127,7 @@ public class PresenceAvailInitialOutHandlerTestCase extends PresenceHandlerBaseT
.unbindResource(anotherAvailableUser.getBoundResourceId());
// 3 other resources got unbound, remaining one should now be unique
stanzas = handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
stanza = stanzas.get(0);
assertNull(stanza); // no return, esp no error stanza - all the handling is done through relays
stanza = initiatingUser.getNextStanza();
@@ -141,7 +141,7 @@ public class PresenceAvailInitialOutHandlerTestCase extends PresenceHandlerBaseT
.unbindResource(initiatingUser.getBoundResourceId());
assertTrue(noRemainingBinds);
stanzas = handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
stanza = stanzas.get(0);
assertEquals("error", stanza.getAttribute("type").getValue());
assertEquals(StanzaErrorCondition.UNKNOWN_SENDER.value(),
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailUpdateOutHandlerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailUpdateOutHandlerTestCase.java
index 4311cab..c45c9dd 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailUpdateOutHandlerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceAvailUpdateOutHandlerTestCase.java
@@ -22,7 +22,7 @@ package org.apache.vysper.xmpp.modules.core.im.handler;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.delivery.StanzaReceiverRelay;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.apache.vysper.xmpp.stanza.XMPPCoreStanza;
@@ -42,7 +42,7 @@ public class PresenceAvailUpdateOutHandlerTestCase extends PresenceHandlerBaseTe
XMPPCoreStanza initialPresence = XMPPCoreStanza.getWrapper(
StanzaBuilder.createPresenceStanza(initiatingUser.getEntityFQ(), null, null, null, null, null).build());
handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(receiverRelay, sessionContext));
+ new DefaultStanzaBroker(receiverRelay, sessionContext));
assertTrue(0 < receiverRelay.getCountDelivered());
resetRecordedStanzas(); // purge recorded
assertTrue(0 == receiverRelay.getCountDelivered());
@@ -53,7 +53,7 @@ public class PresenceAvailUpdateOutHandlerTestCase extends PresenceHandlerBaseTe
XMPPCoreStanza updatePresence = XMPPCoreStanza.getWrapper(StanzaBuilder
.createPresenceStanza(initiatingUser.getEntityFQ(), null, null, null, showValue, null).build());
handler.executeCore(updatePresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(receiverRelay, sessionContext));
+ new DefaultStanzaBroker(receiverRelay, sessionContext));
// check resource state
assertEquals(ResourceState.AVAILABLE, getResourceState());
diff --git a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubRequestOutHandlerTestCase.java b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubRequestOutHandlerTestCase.java
index eaf6e36..9c3ad38 100644
--- a/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubRequestOutHandlerTestCase.java
+++ b/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/im/handler/PresenceSubRequestOutHandlerTestCase.java
@@ -27,7 +27,7 @@ import static org.apache.vysper.xmpp.modules.roster.SubscriptionType.NONE;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.delivery.StanzaReceiverRelay;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.PresenceStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -52,7 +52,7 @@ public class PresenceSubRequestOutHandlerTestCase extends PresenceHandlerBaseTes
.getWrapper(StanzaBuilder.createPresenceStanza(unrelatedUser.getEntityFQ(), initiatingUser.getEntity(),
null, PresenceStanzaType.SUBSCRIBED, null, null).build());
handler.executeCore(requestApproval, sessionContext.getServerRuntimeContext(), false, sessionContext,
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
// 3 roster pushes but...
StanzaReceiverRelay relay = (StanzaReceiverRelay) sessionContext.getStanzaRelay();
@@ -76,7 +76,7 @@ public class PresenceSubRequestOutHandlerTestCase extends PresenceHandlerBaseTes
null, PresenceStanzaType.SUBSCRIBE, null, null).build());
handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
assertEquals(ResourceState.AVAILABLE_INTERESTED, getResourceState());
// 1 to TO + 3 roster pushes
@@ -126,7 +126,7 @@ public class PresenceSubRequestOutHandlerTestCase extends PresenceHandlerBaseTes
subscribed_FROM.getEntity(), null, PresenceStanzaType.SUBSCRIBE, null, null).build());
handler.executeCore(initialPresence, sessionContext.getServerRuntimeContext(), true, sessionContext,
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
assertEquals(ResourceState.AVAILABLE_INTERESTED, getResourceState());
// 1 to TO + 3 roster pushes
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 cea8ece..10eb1fd 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
@@ -39,7 +39,7 @@ import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoRequestLis
import org.apache.vysper.xmpp.modules.servicediscovery.management.ServiceDiscoveryRequestException;
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.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
import org.apache.vysper.xmpp.server.InternalSessionContext;
import org.apache.vysper.xmpp.server.TestSessionContext;
@@ -91,7 +91,7 @@ public class ExtendedDiscoInfoTestCase extends TestCase {
runtimeContext.getStanzaRelay());
List<Stanza> resultStanzas = infoIQHandler.handleGet(finalStanza, runtimeContext, sessionContext,
- new SimpleStanzaBroker(runtimeContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(runtimeContext.getStanzaRelay(), sessionContext));
assertTrue(resultStanzas.get(0).getVerifier().onlySubelementEquals("query",
NamespaceURIs.XEP0030_SERVICE_DISCOVERY_INFO));
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 de256ae..865b021 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
@@ -29,7 +29,7 @@ import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.protocol.ProtocolException;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.SimpleStanzaHandlerExecutorFactory;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.server.InternalSessionContext;
@@ -97,7 +97,7 @@ public class ComponentStanzaProcessorTestCase {
processor.processStanza(serverRuntimeContext, sessionContext, stanza, sessionStateHolder);
verify(handler).execute(stanza, serverRuntimeContext, false, sessionContext, sessionStateHolder,
- new SimpleStanzaBroker(stanzaRelay, sessionContext));
+ new DefaultStanzaBroker(stanzaRelay, sessionContext));
}
@Test(expected = RuntimeException.class)
@@ -107,7 +107,7 @@ public class ComponentStanzaProcessorTestCase {
// new SimpleStanzaBroker(stanzaRelay, sessionContext))).thenReturn(container);
doThrow(new RuntimeException()).when(handler).execute(stanza, serverRuntimeContext, false, sessionContext,
- sessionStateHolder, new SimpleStanzaBroker(stanzaRelay, sessionContext));
+ sessionStateHolder, new DefaultStanzaBroker(stanzaRelay, sessionContext));
processor.addHandler(handler);
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractMUCOccupantDiscoTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractMUCOccupantDiscoTestCase.java
index 02f3f6c..f2f2a0f 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractMUCOccupantDiscoTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractMUCOccupantDiscoTestCase.java
@@ -26,7 +26,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.ConferenceTest
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Room;
import org.apache.vysper.xmpp.modules.servicediscovery.collection.ServiceCollector;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -37,7 +37,7 @@ public abstract class AbstractMUCOccupantDiscoTestCase extends AbstractMUCHandle
private Stanza sendDisco(Stanza stanza) throws ProtocolException {
RecordingStanzaBroker recordingStanzaBroker = new RecordingStanzaBroker(
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(stanza, sessionContext.getServerRuntimeContext(), true,
sessionContext, null, recordingStanzaBroker);
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCHandlerTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCHandlerTestCase.java
index 40e15b1..6df7089 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCHandlerTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCHandlerTestCase.java
@@ -39,7 +39,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.Status.Statu
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.X;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.stanza.IQStanza;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
@@ -272,7 +272,7 @@ public abstract class AbstractMUCHandlerTestCase extends TestCase {
Stanza iqStanza = stanzaBuilder.build();
- RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(iqStanza, sessionContext.getServerRuntimeContext(), true, sessionContext, null, stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
}
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCMessageHandlerTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCMessageHandlerTestCase.java
index febacae..906fb0e 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCMessageHandlerTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/AbstractMUCMessageHandlerTestCase.java
@@ -28,7 +28,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.RecordingStanzaBroke
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Room;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.stanza.MessageStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -62,7 +62,7 @@ public abstract class AbstractMUCMessageHandlerTestCase extends AbstractMUCHandl
Stanza messageStanza = stanzaBuilder.build();
RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(messageStanza, sessionContext.getServerRuntimeContext(), true, sessionContext, null,
stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeNickTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeNickTestCase.java
index 27e46e7..a33c7d3 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeNickTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeNickTestCase.java
@@ -32,7 +32,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.MucUserItem;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.Status.StatusCode;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.stanza.PresenceStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -51,7 +51,7 @@ public class ChangeNickTestCase extends AbstractMUCHandlerTestCase {
Stanza presenceStanza = stanzaBuilder.build();
RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(presenceStanza, sessionContext.getServerRuntimeContext(), true, sessionContext, null,
stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeStatusTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeStatusTestCase.java
index e5e44c7..747046c 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeStatusTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ChangeStatusTestCase.java
@@ -29,7 +29,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Role;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Room;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.MucUserItem;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -44,7 +44,7 @@ public class ChangeStatusTestCase extends AbstractMUCHandlerTestCase {
status);
Stanza presenceStanza = stanzaBuilder.build();
- RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(presenceStanza, sessionContext.getServerRuntimeContext(), true, sessionContext, null,
stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
index ba37ca5..63a246c 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/EnterRoomTestCase.java
@@ -39,7 +39,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.Password;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.stanzas.X;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.stanza.MessageStanza;
@@ -78,7 +78,7 @@ public class EnterRoomTestCase extends AbstractMUCHandlerTestCase {
}
Stanza presenceStanza = stanzaBuilder.build();
RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(presenceStanza, userSessionContext.getServerRuntimeContext(), true, userSessionContext, null,
stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
diff --git a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ExitRoomTestCase.java b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ExitRoomTestCase.java
index 1774684..f7fb1f6 100644
--- a/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ExitRoomTestCase.java
+++ b/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/ExitRoomTestCase.java
@@ -31,7 +31,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Room;
import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.RoomType;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ProtocolException;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.stanza.PresenceStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -51,7 +51,7 @@ public class ExitRoomTestCase extends AbstractMUCHandlerTestCase {
Stanza presenceStanza = stanzaBuilder.build();
RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(
- new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(presenceStanza, sessionContext.getServerRuntimeContext(), true, sessionContext, null,
stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
diff --git a/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/RecordingStanzaBroker.java b/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/RecordingStanzaBroker.java
index d742af8..c536080 100644
--- a/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/RecordingStanzaBroker.java
+++ b/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/RecordingStanzaBroker.java
@@ -25,12 +25,9 @@ import java.util.ArrayList;
import java.util.List;
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.protocol.SimpleStanzaBroker;
import org.apache.vysper.xmpp.protocol.StanzaBroker;
-import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
diff --git a/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java b/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
index 4193130..8faf009 100644
--- a/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
+++ b/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
@@ -31,7 +31,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.C
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeInMemoryStorageProvider;
import org.apache.vysper.xmpp.modules.servicediscovery.collection.ServiceCollector;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionState;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -152,7 +152,7 @@ public abstract class AbstractPublishSubscribeTestCase extends TestCase {
protected abstract AbstractStanzaGenerator getDefaultStanzaGenerator();
protected Stanza sendStanza(Stanza toSend, boolean isOutboundStanza) {
- RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(new SimpleStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
+ RecordingStanzaBroker stanzaBroker = new RecordingStanzaBroker(new DefaultStanzaBroker(sessionContext.getStanzaRelay(), sessionContext));
handler.execute(toSend, sessionContext.getServerRuntimeContext(), isOutboundStanza, sessionContext, null,
stanzaBroker);
return stanzaBroker.getUniqueStanzaWrittenToSession();
diff --git a/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java b/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
index 127cba6..5e26253 100644
--- a/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
+++ b/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
@@ -31,7 +31,7 @@ import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.AbstractS
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
import org.apache.vysper.xmpp.modules.servicediscovery.handler.DiscoItemIQHandler;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
-import org.apache.vysper.xmpp.protocol.SimpleStanzaBroker;
+import org.apache.vysper.xmpp.protocol.DefaultStanzaBroker;
import org.apache.vysper.xmpp.stanza.IQStanza;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -151,17 +151,17 @@ public class PubSubDiscoItemsTestCase extends AbstractPublishSubscribeTestCase {
XMLElement item1 = new XMLElement("namespace1", "item1", null, (Attribute[]) null, (XMLFragment[]) null);
XMLElement item2 = new XMLElement("namespace2", "item2", null, (Attribute[]) null, (XMLFragment[]) null);
XMLElement item3 = new XMLElement("namespace3", "item3", null, (Attribute[]) null, (XMLFragment[]) null);
- node.publish(client, new SimpleStanzaBroker(relay, sessionContext), "itemid1", item1);
+ node.publish(client, new DefaultStanzaBroker(relay, sessionContext), "itemid1", item1);
Thread.sleep(10);
- node.publish(client, new SimpleStanzaBroker(relay, sessionContext), "itemid2", item1); // publish this one with
+ node.publish(client, new DefaultStanzaBroker(relay, sessionContext), "itemid2", item1); // publish this one with
// the same id as the
// next one (overwritten
// by the next)
- node.publish(client, new SimpleStanzaBroker(relay, sessionContext), "itemid2", item2); // overwrite the prev.
+ node.publish(client, new DefaultStanzaBroker(relay, sessionContext), "itemid2", item2); // overwrite the prev.
// item (use the same
// itemid)
Thread.sleep(10);
- node.publish(client, new SimpleStanzaBroker(relay, sessionContext), "itemid3", item3);
+ node.publish(client, new DefaultStanzaBroker(relay, sessionContext), "itemid3", item3);
DefaultDiscoInfoStanzaGenerator sg = (DefaultDiscoInfoStanzaGenerator) getDefaultStanzaGenerator();
Stanza stanza = sg.getStanza(client, pubsubService.getBareJID(), "id123", "news");
diff --git a/server/extensions/xep0313-mam/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserMessageStanzaBroker.java b/server/extensions/xep0313-mam/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserMessageStanzaBroker.java
index 9e6f77c..3ef8a6a 100644
--- a/server/extensions/xep0313-mam/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserMessageStanzaBroker.java
+++ b/server/extensions/xep0313-mam/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserMessageStanzaBroker.java
@@ -27,7 +27,6 @@ import java.util.Optional;
import org.apache.vysper.xml.fragment.XMLElement;
import org.apache.vysper.xml.fragment.XMLSemanticError;
import org.apache.vysper.xmpp.addressing.Entity;
-import org.apache.vysper.xmpp.addressing.EntityUtils;
import org.apache.vysper.xmpp.delivery.failure.DeliveryException;
import org.apache.vysper.xmpp.delivery.failure.DeliveryFailureStrategy;
import org.apache.vysper.xmpp.modules.core.base.handler.XMPPCoreStanzaHandler;
@@ -79,9 +78,6 @@ class UserMessageStanzaBroker extends DelegatingStanzaBroker {
}
private Stanza archive(Stanza stanza) {
- if (!isOutbound) {
- return stanza;
- }
if (!MessageStanza.isOfType(stanza)) {
return stanza;
}
@@ -108,10 +104,13 @@ class UserMessageStanzaBroker extends DelegatingStanzaBroker {
}
// TODO Check preferences
-
- addToSenderArchive(messageStanza, sessionContext);
- return addToReceiverArchive(messageStanza).map(MessageStanzaWithId::new).map(MessageStanzaWithId::toStanza)
- .orElse(stanza);
+ if (isOutbound) {
+ addToSenderArchive(messageStanza, sessionContext);
+ return messageStanza;
+ } else {
+ return addToReceiverArchive(messageStanza).map(MessageStanzaWithId::new).map(MessageStanzaWithId::toStanza)
+ .orElse(stanza);
+ }
}
private void addToSenderArchive(MessageStanza messageStanza, SessionContext sessionContext) {
@@ -127,11 +126,6 @@ class UserMessageStanzaBroker extends DelegatingStanzaBroker {
}
private Optional<ArchivedMessage> addToReceiverArchive(MessageStanza messageStanza) {
- Entity to = requireNonNull(messageStanza.getTo(), "No 'to' found in " + messageStanza);
- if (!EntityUtils.isAddressingServer(to, serverRuntimeContext.getServerEntity())) {
- LOG.debug("Receiver {} is not managed by this server", to);
- return Optional.empty();
- }
// Servers that expose archive messages of sent/received messages on behalf of
// local users MUST expose these archives to the user on the user's bare JID.
Entity receiverArchiveId = requireNonNull(messageStanza.getTo(), "No 'to' found in " + messageStanza)
diff --git a/server/extensions/xep0313-mam/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserArchiveTest.java b/server/extensions/xep0313-mam/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserArchiveTest.java
index a8cf981..bef02b9 100644
--- a/server/extensions/xep0313-mam/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserArchiveTest.java
+++ b/server/extensions/xep0313-mam/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0313_mam/user/UserArchiveTest.java
@@ -219,10 +219,16 @@ public class UserArchiveTest extends IntegrationTest {
Thread.sleep(200);
- assertNull(carolReceivedMessage.get());
+ assertNotNull(carolReceivedMessage.get());
+ assertEquals("Hello carol", carolReceivedMessage.get().getBody());
- Message message = fetchUniqueArchivedMessage(carol());
- assertEquals("Hello carol", message.getBody());
+ Message archivedMessage = fetchUniqueArchivedMessage(carol());
+ String storedStanzaId = extractStanzaId(archivedMessage);
+ assertNotNull(storedStanzaId);
+
+ String receivedStanzaId = extractStanzaId(carolReceivedMessage.get());
+
+ assertEquals(storedStanzaId, receivedStanzaId);
}
@Test