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 16:10:33 UTC

[mina-vysper] branch master updated: Extract InternalResourceRegistry interface from ResourceRegistry

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 dcb2ca9  Extract InternalResourceRegistry interface from ResourceRegistry
dcb2ca9 is described below

commit dcb2ca9f4700fb296abd581bb7ea9b7e216f4ede
Author: Réda Housni Alaoui <re...@gmail.com>
AuthorDate: Sun Sep 1 18:10:24 2019 +0200

    Extract InternalResourceRegistry interface from ResourceRegistry
---
 .../DeliveringInternalInboundStanzaRelay.java      | 13 ++++---
 .../apache/vysper/xmpp/server/SessionContext.java  |  1 -
 .../org/apache/vysper/xmpp/server/XMPPServer.java  |  3 +-
 .../resourcebinding/DefaultResourceRegistry.java   |  2 +-
 .../resourcebinding/InternalResourceRegistry.java  | 45 ++++++++++++++++++++++
 .../state/resourcebinding/ResourceRegistry.java    |  7 ----
 ...eliveringInteralInboundStanzaRelayTestCase.java |  3 +-
 7 files changed, 57 insertions(+), 17 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 7b53abc..8c4b502 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
@@ -63,6 +63,7 @@ import org.apache.vysper.xmpp.stanza.MessageStanzaType;
 import org.apache.vysper.xmpp.stanza.PresenceStanza;
 import org.apache.vysper.xmpp.stanza.Stanza;
 import org.apache.vysper.xmpp.stanza.XMPPCoreStanza;
+import org.apache.vysper.xmpp.state.resourcebinding.InternalResourceRegistry;
 import org.apache.vysper.xmpp.state.resourcebinding.ResourceRegistry;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -101,7 +102,7 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
 
     private static final Integer PRIO_THRESHOLD = 0;
 
-    protected ResourceRegistry resourceRegistry;
+    protected InternalResourceRegistry resourceRegistry;
 
     protected ExecutorService executor;
 
@@ -119,16 +120,16 @@ public class DeliveringInternalInboundStanzaRelay implements StanzaRelay, Manage
 
     protected long lastDumpTimestamp = 0;
 
-    public DeliveringInternalInboundStanzaRelay(Entity serverEntity, ResourceRegistry resourceRegistry,
-            StorageProviderRegistry storageProviderRegistry, ComponentRegistry componentRegistry) {
+    public DeliveringInternalInboundStanzaRelay(Entity serverEntity, InternalResourceRegistry resourceRegistry,
+                                                StorageProviderRegistry storageProviderRegistry, ComponentRegistry componentRegistry) {
         this(serverEntity, resourceRegistry, componentRegistry,
                 storageProviderRegistry.retrieve(AccountManagement.class),
                 storageProviderRegistry.retrieve(OfflineStorageProvider.class));
     }
 
-    public DeliveringInternalInboundStanzaRelay(Entity serverEntity, ResourceRegistry resourceRegistry,
-            ComponentRegistry componentRegistry, AccountManagement accountVerification,
-            OfflineStanzaReceiver offlineStanzaReceiver) {
+    public DeliveringInternalInboundStanzaRelay(Entity serverEntity, InternalResourceRegistry resourceRegistry,
+                                                ComponentRegistry componentRegistry, AccountManagement accountVerification,
+                                                OfflineStanzaReceiver offlineStanzaReceiver) {
         this.serverEntity = serverEntity;
         this.resourceRegistry = resourceRegistry;
         this.componentRegistry = requireNonNull(componentRegistry);
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 f0d14f9..6101863 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
@@ -22,7 +22,6 @@ package org.apache.vysper.xmpp.server;
 
 import org.apache.vysper.xmpp.addressing.Entity;
 import org.apache.vysper.xmpp.state.resourcebinding.BindException;
-import org.apache.vysper.xmpp.writer.StanzaWriter;
 
 /**
  * provides the server-side session with its context data
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 095f45e..d4781b6 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
@@ -54,6 +54,7 @@ import org.apache.vysper.xmpp.protocol.StanzaProcessor;
 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;
 
 /**
@@ -179,7 +180,7 @@ public class XMPPServer {
         List<HandlerDictionary> dictionaries = new ArrayList<>();
         addCoreDictionaries(dictionaries);
 
-        ResourceRegistry resourceRegistry = new DefaultResourceRegistry();
+        InternalResourceRegistry resourceRegistry = new DefaultResourceRegistry();
 
         EntityImpl serverEntity = new EntityImpl(null, serverDomain, null);
 
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 494aa7c..0be69e7 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
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
  *
  * @author The Apache MINA Project (dev@mina.apache.org)
  */
-public class DefaultResourceRegistry implements ResourceRegistry {
+public class DefaultResourceRegistry implements InternalResourceRegistry {
 
     final Logger logger = LoggerFactory.getLogger(DefaultResourceRegistry.class);
 
diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/InternalResourceRegistry.java b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/InternalResourceRegistry.java
new file mode 100644
index 0000000..718a177
--- /dev/null
+++ b/server/core/src/main/java/org/apache/vysper/xmpp/state/resourcebinding/InternalResourceRegistry.java
@@ -0,0 +1,45 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  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.state.resourcebinding;
+
+import java.util.List;
+
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.server.StanzaReceivingSessionContext;
+
+/**
+ * Resource registry giving access to its internal parts. This abstraction
+ * should only be provided to internal framework parts. Technical components
+ * like {@link org.apache.vysper.xmpp.protocol.StanzaHandler},
+ * {@link org.apache.vysper.xmpp.modules.Module} should not be provided the
+ * methods described by this contract.
+ * 
+ * @author Réda Housni Alaoui
+ */
+public interface InternalResourceRegistry extends ResourceRegistry {
+
+    StanzaReceivingSessionContext getSessionContext(String resourceId);
+
+    List<StanzaReceivingSessionContext> getSessions(Entity entity);
+
+    List<StanzaReceivingSessionContext> getSessions(Entity entity, Integer prioThreshold);
+
+    List<StanzaReceivingSessionContext> getHighestPrioSessions(Entity entity, Integer prioThreshold);
+}
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 27f3e93..07f945d 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
@@ -9,7 +9,6 @@ import java.util.List;
 /**
  */
 public interface ResourceRegistry {
-    StanzaReceivingSessionContext getSessionContext(String resourceId);
 
     boolean setResourceState(String resourceId, ResourceState state);
 
@@ -21,12 +20,6 @@ public interface ResourceRegistry {
 
     String getUniqueResourceForSession(SessionContext sessionContext);
 
-    List<StanzaReceivingSessionContext> getSessions(Entity entity);
-
-    List<StanzaReceivingSessionContext> getSessions(Entity entity, Integer prioThreshold);
-
-    List<StanzaReceivingSessionContext> getHighestPrioSessions(Entity entity, Integer prioThreshold);
-
     void setResourcePriority(String resourceId, int priority);
 
     List<String> getAvailableResources(Entity entity);
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 ed63a6d..de0cfb3 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
@@ -45,6 +45,7 @@ import org.apache.vysper.xmpp.stanza.Stanza;
 import org.apache.vysper.xmpp.stanza.StanzaBuilder;
 import org.apache.vysper.xmpp.state.resourcebinding.BindException;
 import org.apache.vysper.xmpp.state.resourcebinding.DefaultResourceRegistry;
+import org.apache.vysper.xmpp.state.resourcebinding.InternalResourceRegistry;
 import org.apache.vysper.xmpp.state.resourcebinding.ResourceRegistry;
 
 import junit.framework.Assert;
@@ -58,7 +59,7 @@ public class DeliveringInteralInboundStanzaRelayTestCase extends TestCase {
 
     protected static final EntityImpl FROM_ENTITY = EntityImpl.parseUnchecked("userFrom@vysper.org");
 
-    protected ResourceRegistry resourceRegistry = new DefaultResourceRegistry();
+    protected InternalResourceRegistry resourceRegistry = new DefaultResourceRegistry();
 
     protected AccountManagement accountVerification;