Author: mjakl
Date: Sat Jun 27 11:44:12 2009
New Revision: 788961
URL: http://svn.apache.org/viewvc?rev=788961&view=rev
Log:
* Reworked the NullPersistenceManager into two separate StorageProviders (one
for collection nodes, one for leaf nodes).
* The new storage providers are default (configured at object creation) and
keep all objects in memory (fallback if no other storage provider is
configured).
* Moved all storage related classes into their own package (storageprovider).
* Applied uniform naming (storage provider instead of persistence manager).
Added:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java
- copied, changed from r788947,
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/CollectionNodeStorageProvider.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java
- copied, changed from r788947,
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NullPersistenceManager.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java
- copied, changed from r788947,
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/LeafNodeStorageProvider.java
Removed:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/CollectionNodeStorageProvider.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/LeafNodeStorageProvider.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NullPersistenceManager.java
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java?rev=788961&r1=788960&r2=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
Sat Jun 27 11:44:12 2009
@@ -31,6 +31,8 @@
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.owner.PubSubOwnerConfigureNodeHandler;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.owner.PubSubOwnerDeleteNodeHandler;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.CollectionNodeStorageProvider;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeStorageProvider;
import org.apache.vysper.xmpp.modules.servicediscovery.management.Feature;
import org.apache.vysper.xmpp.modules.servicediscovery.management.Identity;
import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoElement;
@@ -67,12 +69,19 @@
public void initialize(ServerRuntimeContext serverRuntimeContext) {
super.initialize(serverRuntimeContext);
- CollectionNodeStorageProvider persistenceManager =
(CollectionNodeStorageProvider)
serverRuntimeContext.getStorageProvider(CollectionNodeStorageProvider.class);
- if (persistenceManager == null) {
- logger.error("No persistency manager found");
- // TODO throw some exception - without PM we can't do anything
useful
+ CollectionNodeStorageProvider collectionNodeStorageProvider =
(CollectionNodeStorageProvider)
serverRuntimeContext.getStorageProvider(CollectionNodeStorageProvider.class);
+ LeafNodeStorageProvider leafNodeStorageProvider =
(LeafNodeStorageProvider)
serverRuntimeContext.getStorageProvider(LeafNodeStorageProvider.class);
+
+ if (collectionNodeStorageProvider == null) {
+ logger.error("No collection node storage provider found, using the
default (in memory)");
} else {
- root.setPersistenceManager(persistenceManager);
+
root.setCollectionNodeStorageProvider(collectionNodeStorageProvider);
+ }
+
+ if (leafNodeStorageProvider == null) {
+ logger.error("No leaf node storage provider found, using the
default (in memory)");
+ } else {
+ root.setLeafNodeStorageProvider(leafNodeStorageProvider);
}
}
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java?rev=788961&r1=788960&r2=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java
Sat Jun 27 11:44:12 2009
@@ -21,8 +21,10 @@
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.xmpp.addressing.Entity;
-import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.CollectionNodeStorageProvider;
-import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.NullPersistenceManager;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.CollectionNodeStorageProvider;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.CollectionnodeInMemoryStorageProvider;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeInMemoryStorageProvider;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeStorageProvider;
/**
* A collection node is a special pubsub node containing only other nodes.
Either more CollectionNodes or
@@ -33,14 +35,17 @@
@SpecCompliant(spec="xep-0060", status=
SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage =
SpecCompliant.ComplianceCoverage.UNSUPPORTED)
public class CollectionNode {
- // the persistence manager for storing and retrieving node-info
- protected CollectionNodeStorageProvider storage;
+ // the storage provider for storing and retrieving node-info
+ protected CollectionNodeStorageProvider collectionNodeStorage;
+ // the storage provider for leaf nodes
+ protected LeafNodeStorageProvider leafNodeStorage;
/**
* Initializes the CollectionNode
*/
public CollectionNode() {
- storage = new NullPersistenceManager();
+ collectionNodeStorage = new CollectionnodeInMemoryStorageProvider();
+ leafNodeStorage = new LeafNodeInMemoryStorageProvider();
}
/**
@@ -50,7 +55,7 @@
* @return the LeafNode for the JID
*/
public LeafNode find(Entity jid) {
- return storage.findNode(jid);
+ return collectionNodeStorage.findNode(jid);
}
/**
@@ -61,23 +66,33 @@
* @throws DuplicateNodeException if the JID is already taken.
*/
public LeafNode createNode(Entity jid) throws DuplicateNodeException {
- if(storage.containsNode(jid)) {
+ if(collectionNodeStorage.containsNode(jid)) {
throw new DuplicateNodeException(jid.getFullQualifiedName() + "
already present");
}
LeafNode node = new LeafNode(jid);
+ node.setPersistenceManager(leafNodeStorage);
- storage.storeNode(jid, node);
+ collectionNodeStorage.storeNode(jid, node);
return node;
}
/**
- * Change the persistency manager.
+ * Change the storage provider to be used for the collection nodes.
*
- * @param persistenceManager the new persitency manager.
+ * @param storageProvider the new storage provider.
*/
- public void setPersistenceManager(CollectionNodeStorageProvider
persistenceManager) {
- storage = persistenceManager;
+ public void setCollectionNodeStorageProvider(CollectionNodeStorageProvider
storageProvider) {
+ this.collectionNodeStorage = storageProvider;
+ }
+
+ /**
+ * Change the storage provider to be used for the leaf nodes.
+ *
+ * @param storageProvider the new storage provider.
+ */
+ public void setLeafNodeStorageProvider(LeafNodeStorageProvider
storageProvider) {
+ this.leafNodeStorage = storageProvider;
}
}
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java?rev=788961&r1=788960&r2=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java
Sat Jun 27 11:44:12 2009
@@ -22,9 +22,9 @@
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
-import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.NullPersistenceManager;
-import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.LeafNodeStorageProvider;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.SubscriberNotificationVisitor;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeInMemoryStorageProvider;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeStorageProvider;
import org.apache.vysper.xmpp.xmlfragment.XMLElement;
/**
@@ -38,8 +38,8 @@
// the jid of the node
protected Entity jid;
- // the persistency manager for storing and retrieving node information.
- protected LeafNodeStorageProvider storage = new NullPersistenceManager();
+ // the storage provider for storing and retrieving node information.
+ protected LeafNodeStorageProvider storage = new
LeafNodeInMemoryStorageProvider();
/**
* Creates a new LeafNode with the specified JID.
Copied:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java
(from r788947,
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/CollectionNodeStorageProvider.java)
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java?p2=mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java&p1=mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/CollectionNodeStorageProvider.java&r1=788947&r2=788961&rev=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/CollectionNodeStorageProvider.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java
Sat Jun 27 11:44:12 2009
@@ -17,7 +17,7 @@
* under the License.
*
*/
-package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+package
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider;
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.storage.StorageProvider;
Copied:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java
(from r788947,
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NullPersistenceManager.java)
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java?p2=mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java&p1=mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NullPersistenceManager.java&r1=788947&r2=788961&rev=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NullPersistenceManager.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java
Sat Jun 27 11:44:12 2009
@@ -17,92 +17,51 @@
* under the License.
*
*/
-package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+package
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider;
import java.util.HashMap;
import java.util.Map;
-import java.util.TreeMap;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
-import org.apache.vysper.xmpp.xmlfragment.XMLElement;
/**
+ * This storage provider keeps all objects in memory and looses its content
when
+ * removed from memory. This is the default storage provider for collection
nodes.
+ *
* @author The Apache MINA Project (http://mina.apache.org)
- *
*/
-public class NullPersistenceManager implements LeafNodeStorageProvider,
CollectionNodeStorageProvider {
+public class CollectionnodeInMemoryStorageProvider implements
CollectionNodeStorageProvider {
- protected Map<Entity, LeafNode> nodes;
+ // Map to store the nodes, access via JID
+ protected Map<Entity, LeafNode> nodes;
- protected Map<String, Entity> subscribers;
- protected Map<String, XMLElement> messages;
-
- public NullPersistenceManager() {
- nodes = new HashMap<Entity, LeafNode>();
-
- this.subscribers = new TreeMap<String, Entity>();
- this.messages = new TreeMap<String, XMLElement>();
- }
-
- public LeafNode findNode(Entity jid) {
- return nodes.get(jid);
- }
-
- public boolean containsNode(Entity jid) {
- return nodes.containsKey(jid);
- }
-
- public void storeNode(Entity jid, LeafNode node) {
- nodes.put(jid, node);
- }
- /////////////////////////////////////////////////////////////////
-
- public void addSubscriber(Entity nodeJID, String subscriptionID, Entity
subscriber) {
- subscribers.put(subscriptionID, subscriber);
- }
-
- public boolean containsSubscriber(Entity nodeJID, Entity subscriber) {
- return subscribers.containsValue(subscriber);
- }
-
- public boolean containsSubscriber(Entity nodeJID, String
subscriptionId) {
- return subscribers.containsKey(subscriptionId);
- }
-
- public Entity getSubscriber(Entity nodeJID, String subscriptionId) {
- return subscribers.get(subscriptionId);
- }
-
- public boolean removeSubscription(Entity nodeJID, String
subscriptionId) {
- return subscribers.remove(subscriptionId) != null;
- }
-
- public boolean removeSubscriber(Entity nodeJID, Entity subscriber) {
- return subscribers.values().remove(subscriber);
- }
-
- public int countSubscriptions(Entity nodeJID, Entity subscriber) {
- int count = 0;
- for(Entity sub : subscribers.values()) {
- if(subscriber.equals(sub)) {
- ++count;
- }
- }
- return count;
- }
-
- public int countSubscriptions(Entity nodeJID) {
- return subscribers.size();
- }
-
- public void addMessage(Entity nodeJID, String messageID, XMLElement
item) {
- messages.put(messageID, item);
- }
-
- public void acceptForEachSubscriber(Entity nodeJID, SubscriberVisitor
subscriberVisitor) {
- for(Entity sub : subscribers.values()) {
- subscriberVisitor.visit(nodeJID, sub);
- }
- }
+ /**
+ * Initialize the storage provider.
+ */
+ public CollectionnodeInMemoryStorageProvider() {
+ nodes = new HashMap<Entity, LeafNode>();
+ }
+
+ /**
+ * Search for a LeafNode via its JID.
+ */
+ public LeafNode findNode(Entity jid) {
+ return nodes.get(jid);
+ }
+
+ /**
+ * Check whether an LeafNode with the given JID is known.
+ */
+ public boolean containsNode(Entity jid) {
+ return nodes.containsKey(jid);
+ }
+
+ /**
+ * Add the given LeafNode with the given JID to the storage.
+ * An existing ode with the same JID will be replaced.
+ */
+ public void storeNode(Entity jid, LeafNode node) {
+ nodes.put(jid, node);
+ }
}
Added:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java?rev=788961&view=auto
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java
(added)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java
Sat Jun 27 11:44:12 2009
@@ -0,0 +1,127 @@
+/*
+ * 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.modules.extension.xep0060_pubsub.storageprovider;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.vysper.xmpp.addressing.Entity;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.SubscriberVisitor;
+import org.apache.vysper.xmpp.xmlfragment.XMLElement;
+
+/**
+ * This storage provider keeps all objects in memory and looses its content
when
+ * removed from memory. This is the default storage provider for leaf nodes.
+ *
+ * @author The Apache MINA Project (http://mina.apache.org)
+ */
+public class LeafNodeInMemoryStorageProvider implements
LeafNodeStorageProvider {
+
+ // stores subscribers, access via subid
+ protected Map<String, Entity> subscribers;
+ // stores messages, access via itemid
+ protected Map<String, XMLElement> messages;
+
+ /**
+ * Initialize the storage maps.
+ */
+ public LeafNodeInMemoryStorageProvider() {
+ this.subscribers = new TreeMap<String, Entity>();
+ this.messages = new TreeMap<String, XMLElement>();
+ }
+
+ /**
+ * Add a subscriber with given subID.
+ */
+ public void addSubscriber(Entity nodeJID, String subscriptionID, Entity
subscriber) {
+ subscribers.put(subscriptionID, subscriber);
+ }
+
+ /**
+ * Check if a subscriber is already known.
+ */
+ public boolean containsSubscriber(Entity nodeJID, Entity subscriber) {
+ return subscribers.containsValue(subscriber);
+ }
+
+ /**
+ * Check if a subscriptionId is already known.
+ */
+ public boolean containsSubscriber(Entity nodeJID, String subscriptionId) {
+ return subscribers.containsKey(subscriptionId);
+ }
+
+ /**
+ * Retrieve a subscriber via its subsriptionId.
+ */
+ public Entity getSubscriber(Entity nodeJID, String subscriptionId) {
+ return subscribers.get(subscriptionId);
+ }
+
+ /**
+ * Remove a subscriber via its subscriptionId.
+ */
+ public boolean removeSubscription(Entity nodeJID, String subscriptionId) {
+ return subscribers.remove(subscriptionId) != null;
+ }
+
+ /**
+ * Remove a subscriber via its JID. This removes all subscriptions of the
JID.
+ */
+ public boolean removeSubscriber(Entity nodeJID, Entity subscriber) {
+ return subscribers.values().remove(subscriber);
+ }
+
+ /**
+ * Count how often a given subscriber is subscribed.
+ */
+ public int countSubscriptions(Entity nodeJID, Entity subscriber) {
+ int count = 0;
+ for(Entity sub : subscribers.values()) {
+ if(subscriber.equals(sub)) {
+ ++count;
+ }
+ }
+ return count;
+ }
+
+ /**
+ * Count how many subscriptions this node has.
+ */
+ public int countSubscriptions(Entity nodeJID) {
+ return subscribers.size();
+ }
+
+ /**
+ * Add a message to the storage.
+ */
+ public void addMessage(Entity nodeJID, String messageID, XMLElement item) {
+ messages.put(messageID, item);
+ }
+
+ /**
+ * Accept method (see visitor pattern) to visit all subscribers of this
node.
+ */
+ public void acceptForEachSubscriber(Entity nodeJID, SubscriberVisitor
subscriberVisitor) {
+ for(Entity sub : subscribers.values()) {
+ subscriberVisitor.visit(nodeJID, sub);
+ }
+ }
+}
Copied:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java
(from r788947,
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/LeafNodeStorageProvider.java)
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java?p2=mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java&p1=mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/LeafNodeStorageProvider.java&r1=788947&r2=788961&rev=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/LeafNodeStorageProvider.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java
Sat Jun 27 11:44:12 2009
@@ -17,11 +17,12 @@
* under the License.
*
*/
-package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+package
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider;
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.storage.StorageProvider;
import org.apache.vysper.xmpp.addressing.Entity;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.SubscriberVisitor;
import org.apache.vysper.xmpp.xmlfragment.XMLElement;
/**
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java?rev=788961&r1=788960&r2=788961&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
Sat Jun 27 11:44:12 2009
@@ -21,14 +21,17 @@
import junit.framework.TestCase;
+import org.apache.vysper.storage.OpenStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityImpl;
import org.apache.vysper.xmpp.modules.core.base.handler.IQHandler;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.AbstractStanzaGenerator;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.CollectionnodeInMemoryStorageProvider;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeInMemoryStorageProvider;
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
-import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.DefaultServerRuntimeContext;
import org.apache.vysper.xmpp.server.TestSessionContext;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.state.resourcebinding.ResourceState;
@@ -51,24 +54,32 @@
@Override
protected void setUp() throws Exception {
super.setUp();
-
+
sessionContext =
TestSessionContext.createWithStanzaReceiverRelayAuthenticated();
+ configureStorageProvider();
+
clientBare = new EntityImpl("tester", "vysper.org", null);
sessionContext.setInitiatingEntity(clientBare);
String boundResourceId = sessionContext.bindResource();
client = new EntityImpl(clientBare, boundResourceId);
pubsub = EntityImpl.parse("pubsub.vysper.org/news");
- root = new CollectionNode();
+ setResourceConnected(boundResourceId);
+ root = new CollectionNode();
node = root.createNode(pubsub);
- setResourceConnected(sessionContext, boundResourceId);
-
handler = getHandler();
}
- private void setResourceConnected(SessionContext sessionContext, String
boundResourceId) {
+ protected void configureStorageProvider() {
+ OpenStorageProviderRegistry storageProviderRegistry = new
OpenStorageProviderRegistry();
+ storageProviderRegistry.add(new
CollectionnodeInMemoryStorageProvider());
+ storageProviderRegistry.add(new LeafNodeInMemoryStorageProvider());
+ ((DefaultServerRuntimeContext)
sessionContext.getServerRuntimeContext()).setStorageProviderRegistry(storageProviderRegistry);
+ }
+
+ private void setResourceConnected(String boundResourceId) {
sessionContext.getServerRuntimeContext().getResourceRegistry().setResourceState(boundResourceId,
ResourceState.CONNECTED);
}