Author: mjakl
Date: Sun Jun 28 12:43:16 2009
New Revision: 789092
URL: http://svn.apache.org/viewvc?rev=789092&view=rev
Log:
Implemented service discovery for items (disco#items) of the.
* Prepared for node-hierarchies
* Fixed minor typos
Fixes VYSPER-83.
Added:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeDiscoItemsVisitor.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeVisitor.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
- copied, changed from r789085,
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubDiscoInfoTestCase.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
Removed:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubDiscoInfoTestCase.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/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.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
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java
Added:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeDiscoItemsVisitor.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeDiscoItemsVisitor.java?rev=789092&view=auto
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeDiscoItemsVisitor.java
(added)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeDiscoItemsVisitor.java
Sun Jun 28 12:43:16 2009
@@ -0,0 +1,54 @@
+/*
+ * 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;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
+import org.apache.vysper.xmpp.modules.servicediscovery.management.Item;
+
+/**
+ * @author The Apache MINA Project (http://mina.apache.org)
+ *
+ */
+public class NodeDiscoItemsVisitor implements NodeVisitor {
+
+ private List<Item> itemList = new ArrayList<Item>();
+
+ /**
+ * Prepare the node-list for the disco#items response.
+ *
+ * @see
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.NodeVisitor#visit(org.apache.vysper.xmpp.addressing.Entity,
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode)
+ */
+ public void visit(Entity nodeJID, LeafNode ln) {
+ this.itemList.add(new Item(nodeJID.getBareJID(), ln.getNodeName(),
nodeJID.getResource()));
+ }
+
+ /**
+ * Return a list of items to be embedded in the disco#items response.
+ * To be called after visit!
+ */
+ public List<Item> getNodeItemList() {
+ return itemList;
+ }
+
+}
Added:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeVisitor.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeVisitor.java?rev=789092&view=auto
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeVisitor.java
(added)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/NodeVisitor.java
Sun Jun 28 12:43:16 2009
@@ -0,0 +1,48 @@
+/*
+ * 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;
+
+import java.util.List;
+
+import org.apache.vysper.compliance.SpecCompliant;
+import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
+import org.apache.vysper.xmpp.modules.servicediscovery.management.Item;
+
+/**
+ * The NodeVisitor is used to visit all subscriptions of a collection node.
+ *
+ * @author The Apache MINA Project (http://mina.apache.org)
+ */
+...@speccompliant(spec="xep-0060", status=
SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage =
SpecCompliant.ComplianceCoverage.UNSUPPORTED)
+public interface NodeVisitor {
+
+ /**
+ * visit is part of the "visitor pattern" and should be used to iterate
+ * over all nodes of a collection node.
+ *
+ * @param nodeJID the node JID
+ * @param ln the node (for more detailed data)
+ */
+ void visit(Entity nodeJID, LeafNode ln);
+
+ List<Item> getNodeItemList();
+
+}
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=789092&r1=789091&r2=789092&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
Sun Jun 28 12:43:16 2009
@@ -37,6 +37,8 @@
import org.apache.vysper.xmpp.modules.servicediscovery.management.Identity;
import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoElement;
import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoRequest;
+import org.apache.vysper.xmpp.modules.servicediscovery.management.Item;
+import
org.apache.vysper.xmpp.modules.servicediscovery.management.ItemRequestListener;
import
org.apache.vysper.xmpp.modules.servicediscovery.management.ServerInfoRequestListener;
import
org.apache.vysper.xmpp.modules.servicediscovery.management.ServiceDiscoveryRequestException;
import org.apache.vysper.xmpp.protocol.HandlerDictionary;
@@ -48,23 +50,36 @@
import org.slf4j.LoggerFactory;
/**
- * Initializes the XEP0060 module.
+ * Initializes the XEP0060 module. This class is also responsible for disco
requests at the service level.
*
* @author The Apache MINA Project (http://mina.apache.org)
*/
@SpecCompliant(spec="xep-0060", status=
SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage =
SpecCompliant.ComplianceCoverage.UNSUPPORTED)
-public class PublishSubscribeModule extends DefaultDiscoAwareModule implements
ServerInfoRequestListener {
+public class PublishSubscribeModule extends DefaultDiscoAwareModule implements
ServerInfoRequestListener, ItemRequestListener {
- CollectionNode root = null;
- final Logger logger =
LoggerFactory.getLogger(PublishSubscribeModule.class);
+ // The service itself acts like a collection node, this is the "root"
+ private CollectionNode root = null;
+ // for debugging
+ private final Logger logger =
LoggerFactory.getLogger(PublishSubscribeModule.class);
/**
- * Default constructor takes care of the root-CollectionNode
+ * Create a new PublishSubscribeModule together with a new root-collection
node.
*/
public PublishSubscribeModule() {
+ // create the root node with the server jid as the root-node jid
this.root = new CollectionNode();
}
+ /**
+ * Create a new PublishSubscribeModule together with a supplied
root-collection node.
+ */
+ public PublishSubscribeModule(CollectionNode root) {
+ this.root = root;
+ }
+
+ /**
+ * Initializes the pubsub module, configuring the storage providers.
+ */
@Override
public void initialize(ServerRuntimeContext serverRuntimeContext) {
super.initialize(serverRuntimeContext);
@@ -83,18 +98,29 @@
} else {
root.setLeafNodeStorageProvider(leafNodeStorageProvider);
}
+
+ this.root.initialize(serverRuntimeContext.getServerEnitity());
}
+ /**
+ * Returns the service name
+ */
@Override
public String getName() {
return "XEP-0060 Publish-Subscribe";
}
+ /**
+ * Returns the implemented spec. version.
+ */
@Override
public String getVersion() {
return "1.13rc3";
}
+ /**
+ * Make this object available for disco#info requests.
+ */
@Override
protected void
addServerInfoRequestListeners(List<ServerInfoRequestListener>
serverInfoRequestListeners) {
serverInfoRequestListeners.add(this);
@@ -102,7 +128,7 @@
/**
* Implements the getServerInfosFor method from the {...@link
ServerInfoRequestListener} interface.
- * Makes this modules available via disco as "pubsub service" in the
pubsub namespace.
+ * Makes this modules available via disco#info as "pubsub service" in the
pubsub namespace.
*
* @see ServerInfoRequestListener#getServerInfosFor(InfoRequest)
*/
@@ -114,6 +140,26 @@
}
/**
+ * Make this object available for disco#items requests.
+ */
+ @Override
+ protected void addItemRequestListeners(List<ItemRequestListener>
itemRequestListeners) {
+ itemRequestListeners.add(this);
+ }
+
+ /**
+ * Implements the getItemsFor method from the {...@link
ItemRequestListener} interface.
+ * Makes this modules available via disco#items and returns the associated
nodes.
+ *
+ * @see ItemRequestListener#getItemsFor(InfoRequest)
+ */
+ public List<Item> getItemsFor(InfoRequest request) throws
ServiceDiscoveryRequestException {
+ NodeVisitor nv = new NodeDiscoItemsVisitor();
+ root.acceptNodes(nv);
+ return nv.getNodeItemList();
+ }
+
+ /**
* Registers the handlers for the various stanza types known to this
pubsub implementation.
*
* @see DefaultModule#addHandlerDictionaries(List<HandlerDictionary>
dictionary)
@@ -147,5 +193,4 @@
pubsubHandlers.add(new PubSubCreateNodeHandler(root));
dictionary.add(new
NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB, pubsubHandlers));
}
-
}
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=789092&r1=789091&r2=789092&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
Sun Jun 28 12:43:16 2009
@@ -21,6 +21,7 @@
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.NodeVisitor;
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;
@@ -35,21 +36,30 @@
@SpecCompliant(spec="xep-0060", status=
SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage =
SpecCompliant.ComplianceCoverage.UNSUPPORTED)
public class CollectionNode {
+ // the JID of the collection node
+ protected Entity nodeJID;
// the storage provider for storing and retrieving node-info
protected CollectionNodeStorageProvider collectionNodeStorage;
// the storage provider for leaf nodes
protected LeafNodeStorageProvider leafNodeStorage;
/**
- * Initializes the CollectionNode
+ * Creates a new CollectionNode, leaves the nodeJID uninitialized.
*/
public CollectionNode() {
+ initStorageProviders();
+ }
+
+ /**
+ * Initializes the default in-memory storage providers.
+ */
+ private void initStorageProviders() {
collectionNodeStorage = new CollectionnodeInMemoryStorageProvider();
leafNodeStorage = new LeafNodeInMemoryStorageProvider();
}
/**
- * Search for a given node via its JID. We currently only support a flat
hierachy, so no
+ * Search for a given node via its JID. We currently only support a flat
hierarchy, so no
* other node types are available ATM.
*
* @return the LeafNode for the JID
@@ -62,21 +72,33 @@
* Creates a new node under the given JID.
*
* @param jid the JID of the new node.
+ * @param name the free-text name of the node.
* @return the newly created LeafNode.
* @throws DuplicateNodeException if the JID is already taken.
*/
- public LeafNode createNode(Entity jid) throws DuplicateNodeException {
+ public LeafNode createNode(Entity jid, String name) throws
DuplicateNodeException {
if(collectionNodeStorage.containsNode(jid)) {
throw new DuplicateNodeException(jid.getFullQualifiedName() + "
already present");
}
- LeafNode node = new LeafNode(jid);
+ LeafNode node = new LeafNode(jid, name);
node.setPersistenceManager(leafNodeStorage);
collectionNodeStorage.storeNode(jid, node);
return node;
}
+
+ /**
+ * Convenience method to create a node without a name (optional).
+ *
+ * @param jid the JID of the new node.
+ * @return the newly create LeafNode
+ * @throws DuplicateNodeException
+ */
+ public LeafNode createNode(Entity jid) throws DuplicateNodeException {
+ return this.createNode(jid, null);
+ }
/**
* Change the storage provider to be used for the collection nodes.
@@ -95,4 +117,17 @@
public void setLeafNodeStorageProvider(LeafNodeStorageProvider
storageProvider) {
this.leafNodeStorage = storageProvider;
}
+
+ public void acceptNodes(NodeVisitor nv) {
+ collectionNodeStorage.acceptNodes(nodeJID, nv);
+ }
+
+ /**
+ * Called after setting the storage providers to do its own initialization
tasks.
+ */
+ public void initialize(Entity nodeJID) {
+ this.nodeJID = nodeJID;
+ this.collectionNodeStorage.initialize();
+ this.leafNodeStorage.initialize();
+ }
}
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=789092&r1=789091&r2=789092&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
Sun Jun 28 12:43:16 2009
@@ -38,6 +38,8 @@
// the jid of the node
protected Entity jid;
+ // the name of the node (free text)
+ protected String name;
// the storage provider for storing and retrieving node information.
protected LeafNodeStorageProvider storage = new
LeafNodeInMemoryStorageProvider();
@@ -45,8 +47,9 @@
* Creates a new LeafNode with the specified JID.
* @param jid the JID of the node
*/
- public LeafNode(Entity jid) {
+ public LeafNode(Entity jid, String name) {
this.jid = jid;
+ this.name = name;
}
/**
@@ -153,4 +156,11 @@
protected void sendMessageToSubscriber(StanzaRelay stanzaRelay, XMLElement
item) {
storage.acceptForEachSubscriber(jid, new
SubscriberNotificationVisitor(stanzaRelay, item));
}
+
+ /**
+ * @return the name of the node.
+ */
+ public String getNodeName() {
+ return name;
+ }
}
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/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?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionNodeStorageProvider.java
Sun Jun 28 12:43:16 2009
@@ -22,6 +22,7 @@
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.NodeVisitor;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
/**
@@ -54,4 +55,17 @@
* @param node the LeafNode to be stored.
*/
public void storeNode(Entity jid, LeafNode node);
+
+ /**
+ * Call the NodeVisitor for each node of the given collection node.
+ * @param nodeJID the node we want to iterate.
+ *
+ * @param nv
+ */
+ public void acceptNodes(Entity nodeJID, NodeVisitor nv);
+
+ /**
+ * Call to do some preliminary tasks after the module has been configured.
+ */
+ public void initialize();
}
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.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?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/CollectionnodeInMemoryStorageProvider.java
Sun Jun 28 12:43:16 2009
@@ -23,6 +23,7 @@
import java.util.Map;
import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.NodeVisitor;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
/**
@@ -64,4 +65,20 @@
public void storeNode(Entity jid, LeafNode node) {
nodes.put(jid, node);
}
+
+ /**
+ * Walk through all known nodes, calling visit on each.
+ */
+ public void acceptNodes(Entity nodeJID, NodeVisitor nv) {
+ for(Entity node : nodes.keySet()) {
+ nv.visit(node, nodes.get(node));
+ }
+ }
+
+ /**
+ * The in-memory storage provider does not need initialization beyond
creating the objects.
+ */
+ public void initialize() {
+ // empty
+ }
}
Modified:
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=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeInMemoryStorageProvider.java
Sun Jun 28 12:43:16 2009
@@ -124,4 +124,11 @@
subscriberVisitor.visit(nodeJID, sub);
}
}
+
+ /**
+ * The in-memory storage provider does not need initialization beyond
creating the objects.
+ */
+ public void initialize() {
+ // empty
+ }
}
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/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?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/storageprovider/LeafNodeStorageProvider.java
Sun Jun 28 12:43:16 2009
@@ -112,4 +112,9 @@
*/
public void acceptForEachSubscriber(Entity nodeJID, SubscriberVisitor
subscriberVisitor);
+ /**
+ * Call to do some preliminary tasks after the module has been configured.
+ */
+ public void initialize();
+
}
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java
(original)
+++
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/servicediscovery/handler/DiscoItemIQHandler.java
Sun Jun 28 12:43:16 2009
@@ -44,7 +44,7 @@
import java.util.List;
/**
- * handles IQ info queries
+ * handles IQ items queries
*
* @author The Apache MINA Project ([email protected])
*/
@@ -79,7 +79,7 @@
if (serviceCollector == null) {
return
ServerErrorResponses.getInstance().getStanzaError(StanzaErrorCondition.INTERNAL_SERVER_ERROR,
stanza,
StanzaErrorType.CANCEL,
- "cannot retrieve IQ-get-info result from internal
components",
+ "cannot retrieve IQ-get-items result from internal
components",
getErrorLanguage(serverRuntimeContext, sessionContext),
null);
}
@@ -92,7 +92,7 @@
if (!isServerInfoRequest) {
return
ServerErrorResponses.getInstance().getStanzaError(StanzaErrorCondition.ITEM_NOT_FOUND,
stanza,
StanzaErrorType.CANCEL,
- "server does not handle info query requests for " +
to.getFullQualifiedName(),
+ "server does not handle items query requests for " +
to.getFullQualifiedName(),
getErrorLanguage(serverRuntimeContext,
sessionContext), null);
}
}
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=789092&r1=789091&r2=789092&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
Sun Jun 28 12:43:16 2009
@@ -28,7 +28,6 @@
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.modules.servicediscovery.collection.ServiceCollector;
@@ -54,16 +53,26 @@
protected Entity pubsub = null;
protected IQHandler handler = null;
protected CollectionNode root = null;
- protected LeafNode node = null;
+ protected Entity serverEntity = null;
// for debugging
- protected SystemOutStanzaWriter stanzaWriter = new SystemOutStanzaWriter();
+ private SystemOutStanzaWriter stanzaWriter = new SystemOutStanzaWriter();
+
+ protected void printStanza(Stanza stanza) {
+ this.stanzaWriter.write(stanza);
+ this.stanzaWriter.close();
+ System.out.println();
+ }
@Override
protected void setUp() throws Exception {
super.setUp();
- sessionContext = createTestSessionContext();
+ serverEntity = new EntityImpl(null, "pubsub.vysper.org", null);
+ sessionContext = createTestSessionContext(serverEntity);
+
+ root = new CollectionNode();
+ configurePubsubModule(sessionContext, root);
clientBare = new EntityImpl("tester", "vysper.org", null);
sessionContext.setInitiatingEntity(clientBare);
@@ -73,23 +82,19 @@
pubsub = EntityImpl.parse("pubsub.vysper.org/news");
setResourceConnected(boundResourceId);
- root = new CollectionNode();
- node = root.createNode(pubsub);
-
handler = getHandler();
}
- protected TestSessionContext createTestSessionContext() {
+ protected TestSessionContext createTestSessionContext(Entity serverEntity)
{
SessionStateHolder sessionStateHolder = new SessionStateHolder();
sessionStateHolder.setState(SessionState.AUTHENTICATED);
StanzaReceiverRelay relay = new
org.apache.vysper.xmpp.delivery.StanzaReceiverRelay();
- DefaultServerRuntimeContext serverContext = new
DefaultServerRuntimeContext(new EntityImpl(null, "pubsub.vysper.org", null),
relay);
+ DefaultServerRuntimeContext serverContext = new
DefaultServerRuntimeContext(serverEntity, relay);
relay.setServerRuntimeContext(serverContext);
TestSessionContext tsc = new TestSessionContext(serverContext,
sessionStateHolder);
configureStorageProvider(tsc);
configureServiceRegistry(tsc);
- configurePubsubModule(tsc);
return tsc;
}
@@ -98,8 +103,8 @@
((DefaultServerRuntimeContext)
tsc.getServerRuntimeContext()).registerServerRuntimeContextService(serviceCollector);
}
- protected void configurePubsubModule(TestSessionContext tsc) {
- ((DefaultServerRuntimeContext)
tsc.getServerRuntimeContext()).addModule(new PublishSubscribeModule());
+ protected void configurePubsubModule(TestSessionContext tsc,
CollectionNode root) {
+ ((DefaultServerRuntimeContext)
tsc.getServerRuntimeContext()).addModule(new PublishSubscribeModule(root));
}
protected void configureStorageProvider(TestSessionContext tsc) {
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java
Sun Jun 28 12:43:16 2009
@@ -19,6 +19,11 @@
*/
package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.disco.PubSubDiscoInfoTestCase;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.disco.PubSubDiscoItemsTestCase;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.PubSubCreateNodeTestCase;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.PubSubPublishTestCase;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.PubSubSubscribeTestCase;
@@ -28,9 +33,6 @@
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNodeTestCase;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNodeTestCase;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
/**
*
* @author The Apache MINA Project (http://mina.apache.org)
@@ -53,6 +55,7 @@
suite.addTestSuite(LeafNodeTestCase.class);
suite.addTestSuite(PubSubDiscoInfoTestCase.class);
+ suite.addTestSuite(PubSubDiscoItemsTestCase.class);
//$JUnit-END$
return suite;
}
Copied:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
(from r789085,
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubDiscoInfoTestCase.java)
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java?p2=mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java&p1=mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubDiscoInfoTestCase.java&r1=789085&r2=789092&rev=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubDiscoInfoTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
Sun Jun 28 12:43:16 2009
@@ -1,9 +1,10 @@
-package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.disco;
import java.util.List;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.modules.core.base.handler.IQHandler;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeTestCase;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.AbstractStanzaGenerator;
import
org.apache.vysper.xmpp.modules.servicediscovery.handler.DiscoInfoIQHandler;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
Added:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java?rev=789092&view=auto
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
(added)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
Sun Jun 28 12:43:16 2009
@@ -0,0 +1,130 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.disco;
+
+import java.util.List;
+
+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.AbstractPublishSubscribeTestCase;
+import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.AbstractStanzaGenerator;
+import
org.apache.vysper.xmpp.modules.servicediscovery.handler.DiscoItemIQHandler;
+import org.apache.vysper.xmpp.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
+import org.apache.vysper.xmpp.stanza.IQStanza;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.Stanza;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+import org.apache.vysper.xmpp.xmlfragment.XMLElement;
+
+
+public class PubSubDiscoItemsTestCase extends AbstractPublishSubscribeTestCase
{
+
+ @Override
+ protected AbstractStanzaGenerator getDefaultStanzaGenerator() {
+ return new DefaultDiscoInfoStanzaGenerator();
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new DiscoItemIQHandler();
+ }
+
+
+ public void testNoItems() {
+ AbstractStanzaGenerator sg = getDefaultStanzaGenerator();
+ Stanza stanza = sg.getStanza(client, pubsub.getBareJID(), "id123");
+
+ ResponseStanzaContainer result = sendStanza(stanza, true);
+ assertTrue(result.hasResponse());
+ IQStanza response = new IQStanza(result.getResponseStanza());
+
+ assertEquals(IQStanzaType.RESULT.value(),response.getType());
+
+ assertEquals("id123", response.getAttributeValue("id")); // IDs must
match
+
+ // get the query Element
+ XMLElement query = response.getFirstInnerElement();
+ List<XMLElement> inner = query.getInnerElements();
+
+ assertEquals("query", query.getName());
+
+ // since we have no nodes, there should be no items.
+ assertEquals(0, inner.size());
+ }
+
+ public void testSomeItems() throws Exception {
+ root.createNode(EntityImpl.parse("pubsub.vysper.org/news"), "News");
+ root.createNode(EntityImpl.parse("pubsub.vysper.org/blogs"), "Blogs");
+
+ AbstractStanzaGenerator sg = getDefaultStanzaGenerator();
+ Stanza stanza = sg.getStanza(client, pubsub.getBareJID(), "id123");
+
+ ResponseStanzaContainer result = sendStanza(stanza, true);
+ assertTrue(result.hasResponse());
+ IQStanza response = new IQStanza(result.getResponseStanza());
+
+ assertEquals(IQStanzaType.RESULT.value(),response.getType());
+
+ assertEquals("id123", response.getAttributeValue("id")); // IDs must
match
+
+ // get the query Element
+ XMLElement query = response.getFirstInnerElement();
+ List<XMLElement> inner = query.getInnerElements();
+
+ assertEquals("query", query.getName());
+
+ // since we have no nodes, there should be no items.
+ assertEquals(2, inner.size());
+//
+// // ordering etc. is unknown; step through all subelements and pick
the ones we need
+ XMLElement news = null;
+ XMLElement blogs = null;
+ for(XMLElement el : inner) {
+ if(el.getName().equals("item") /* &&
el.getNamespace().equals(NamespaceURIs.XEP0030_SERVICE_DISCOVERY_ITEMS) */) {
//TODO enable after fixing the namespace bug
+
if(el.getAttributeValue("jid").equals(serverEntity.getFullQualifiedName())
+ && el.getAttributeValue("node").equals("news")
+ && el.getAttributeValue("name").equals("News")) {
+ news = el;
+ } else
if(el.getAttributeValue("jid").equals(serverEntity.getFullQualifiedName())
+ && el.getAttributeValue("node").equals("blogs")
+ && el.getAttributeValue("name").equals("Blogs")) {
+ blogs = el;
+ }
+ }
+ }
+
+ // make sure they were there (booleans would have sufficed)
+ assertNotNull(news);
+ assertNotNull(blogs);
+ }
+
+ class DefaultDiscoInfoStanzaGenerator extends AbstractStanzaGenerator {
+ @Override
+ protected StanzaBuilder buildInnerElement(Entity client, Entity
pubsub, StanzaBuilder sb) {
+ return sb;
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0030_SERVICE_DISCOVERY_ITEMS;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.GET;
+ }
+
+ @Override
+ public Stanza getStanza(Entity client, Entity pubsub, String id) {
+ StanzaBuilder stanzaBuilder = StanzaBuilder.createIQStanza(client,
pubsub, getStanzaType(), id);
+ stanzaBuilder.startInnerElement("query");
+ stanzaBuilder.addNamespaceAttribute(getNamespace());
+
+ buildInnerElement(client, pubsub, stanzaBuilder);
+
+ stanzaBuilder.endInnerElement();
+
+ return stanzaBuilder.getFinalStanza();
+ }
+ }
+}
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java
Sun Jun 28 12:43:16 2009
@@ -24,6 +24,7 @@
import org.apache.vysper.xmpp.delivery.StanzaReceiverRelay;
import org.apache.vysper.xmpp.modules.core.base.handler.IQHandler;
import
org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeTestCase;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
import org.apache.vysper.xmpp.stanza.IQStanza;
@@ -36,8 +37,15 @@
* @author The Apache MINA Project (http://mina.apache.org)
*/
public class PubSubPublishTestCase extends AbstractPublishSubscribeTestCase {
+ protected LeafNode node = null;
@Override
+ public void setUp() throws Exception {
+ super.setUp();
+ node = root.createNode(EntityImpl.parse("pubsub.vysper.org/news"));
+ }
+
+ @Override
protected AbstractStanzaGenerator getDefaultStanzaGenerator() {
return new DefaultPublishStanzaGenerator();
}
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java
Sun Jun 28 12:43:16 2009
@@ -25,6 +25,7 @@
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.AbstractPublishSubscribeTestCase;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
import org.apache.vysper.xmpp.stanza.IQStanza;
@@ -36,8 +37,15 @@
* @author The Apache MINA Project (http://mina.apache.org)
*/
public class PubSubSubscribeTestCase extends AbstractPublishSubscribeTestCase {
+ protected LeafNode node = null;
@Override
+ public void setUp() throws Exception {
+ super.setUp();
+ node = root.createNode(EntityImpl.parse("pubsub.vysper.org/news"));
+ }
+
+ @Override
protected IQHandler getHandler() {
return new PubSubSubscribeHandler(root);
}
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java
Sun Jun 28 12:43:16 2009
@@ -25,6 +25,7 @@
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.AbstractPublishSubscribeTestCase;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
import org.apache.vysper.xmpp.stanza.IQStanza;
@@ -36,7 +37,14 @@
* @author The Apache MINA Project (http://mina.apache.org)
*/
public class PubSubUnsubscribeTestCase extends
AbstractPublishSubscribeTestCase {
+ protected LeafNode node = null;
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ node = root.createNode(EntityImpl.parse("pubsub.vysper.org/news"));
+ }
+
class DefaultUnsubscribeStanzaGenerator extends AbstractStanzaGenerator {
private String subscriberJID = null;
private String subID = null;
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java
Sun Jun 28 12:43:16 2009
@@ -36,6 +36,7 @@
protected void setUp() throws Exception {
super.setUp();
collection = new CollectionNode();
+ collection.initialize(new EntityImpl(null, "pubsub.vysper.org", null));
}
public void testCreateNode() throws Exception {
Modified:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java
URL:
http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java?rev=789092&r1=789091&r2=789092&view=diff
==============================================================================
---
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java
(original)
+++
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java
Sun Jun 28 12:43:16 2009
@@ -36,7 +36,7 @@
protected void setUp() throws Exception {
super.setUp();
Entity nodeJID = new EntityImpl(null, "pubsub.vysper.org", "node");
- node = new LeafNode(nodeJID);
+ node = new LeafNode(nodeJID, "Some test node");
}
public void testSubscribe() throws Exception {