You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by mj...@apache.org on 2009/08/05 19:39:19 UTC
svn commit: r801331 - in
/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src:
main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/
main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/
main/java/org/apache...
Author: mjakl
Date: Wed Aug 5 17:39:18 2009
New Revision: 801331
URL: http://svn.apache.org/viewvc?rev=801331&view=rev
Log:
Huge refactoring. Removed the "root" collection node from the handlers and introduced a service configuration object containing the root node, the server JID and the storage providers. First step towards VYSPER-156.
Added:
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubServiceConfiguration.java
Modified:
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/ServiceDiscoItemsVisitor.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/AbstractPubSubGeneralHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/AbstractPubSubOwnerHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerConfigureNodeHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerDeleteNodeHandler.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubConfigureNodeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubDeleteNodeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java
mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java Wed Aug 5 17:39:18 2009
@@ -21,7 +21,6 @@
import org.apache.vysper.xmpp.modules.core.base.handler.DefaultIQHandler;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.ErrorStanzaGenerator;
-import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
import org.apache.vysper.xmpp.stanza.IQStanza;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.uuid.JVMBuiltinUUIDGenerator;
@@ -38,8 +37,8 @@
// one ErrorStanzaGenerator available for all subclasses
protected ErrorStanzaGenerator errorStanzaGenerator = null;
- // the pubsub service itself is a collection node
- protected CollectionNode root;
+ // the pubsub service configuration
+ protected PubSubServiceConfiguration serviceConfiguration = null;
// we need to generate some IDs
protected UUIDGenerator idGenerator;
@@ -48,8 +47,8 @@
*
* @param root the one and only "root" CollectionNode
*/
- public AbstractPublishSubscribeIQHandler(CollectionNode root) {
- this.root = root;
+ public AbstractPublishSubscribeIQHandler(PubSubServiceConfiguration serviceConfiguration) {
+ this.serviceConfiguration = serviceConfiguration;
this.idGenerator = new JVMBuiltinUUIDGenerator();
errorStanzaGenerator = new ErrorStanzaGenerator();
}
Added: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubServiceConfiguration.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubServiceConfiguration.java?rev=801331&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubServiceConfiguration.java (added)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubServiceConfiguration.java Wed Aug 5 17:39:18 2009
@@ -0,0 +1,114 @@
+/*
+ * 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 org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.CollectionNodeInMemoryStorageProvider;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.CollectionNodeStorageProvider;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeInMemoryStorageProvider;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.storageprovider.LeafNodeStorageProvider;
+
+/**
+ * This class represents the configuration for the publish/subscribe service.
+ *
+ * @author The Apache MINA Project (http://mina.apache.org)
+ */
+public class PubSubServiceConfiguration {
+ private Entity serverJID;
+ private CollectionNode rootNode;
+ private CollectionNodeStorageProvider collectionNodeStorageProvider;
+ private LeafNodeStorageProvider leafNodeStorageProvider;
+
+ /**
+ * Creates a new configuration object containing at least the root collection node.
+ *
+ * @param root
+ */
+ public PubSubServiceConfiguration(CollectionNode root) {
+ this.rootNode = root;
+ this.leafNodeStorageProvider = new LeafNodeInMemoryStorageProvider();
+ this.collectionNodeStorageProvider = new CollectionNodeInMemoryStorageProvider();
+ this.initialize();
+ }
+
+ /**
+ * Sets the JID of the server.
+ *
+ * @param serverJID
+ */
+ public void setServerJID(Entity serverJID) {
+ this.serverJID = serverJID;
+ }
+
+ /**
+ * @return the JID of the server.
+ */
+ public Entity getServerJID() {
+ return serverJID;
+ }
+
+ /**
+ * @return the root collection node.
+ */
+ public CollectionNode getRootNode() {
+ return rootNode;
+ }
+
+ /**
+ * Set the storage provider for leaf nodes.
+ * @param leafNodeStorageProvider
+ */
+ public void setLeafNodeStorageProvider(LeafNodeStorageProvider leafNodeStorageProvider) {
+ this.leafNodeStorageProvider = leafNodeStorageProvider;
+ }
+
+ /**
+ * Return the storage provider for leaf nodes.
+ * @return
+ */
+ public LeafNodeStorageProvider getLeafNodeStorageProvider() {
+ return leafNodeStorageProvider;
+ }
+
+ /**
+ * Set the collection node storage provider.
+ * @param collectionNodeStorageProvider
+ */
+ public void setCollectionNodeStorageProvider(CollectionNodeStorageProvider collectionNodeStorageProvider) {
+ this.collectionNodeStorageProvider = collectionNodeStorageProvider;
+ }
+
+ /**
+ * Return the leaf node storage provider.
+ * @return
+ */
+ public CollectionNodeStorageProvider getCollectionNodeStorageProvider() {
+ return collectionNodeStorageProvider;
+ }
+
+ /**
+ * To be called after the storage providers are set or changed.
+ */
+ public void initialize() {
+ rootNode.setCollectionNodeStorageProvider(this.collectionNodeStorageProvider);
+ }
+
+}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java Wed Aug 5 17:39:18 2009
@@ -58,8 +58,8 @@
@SpecCompliant(spec="xep-0060", comment="spec. version: 1.13rc", status= SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage = SpecCompliant.ComplianceCoverage.PARTIAL)
public class PublishSubscribeModule extends DefaultDiscoAwareModule implements ServerInfoRequestListener, ItemRequestListener {
- // The service itself acts like a collection node, this is the "root"
- private CollectionNode root = null;
+ // The configuration of the service
+ private PubSubServiceConfiguration serviceConfiguration = null;
// for debugging
private final Logger logger = LoggerFactory.getLogger(PublishSubscribeModule.class);
@@ -67,14 +67,14 @@
* Create a new PublishSubscribeModule together with a new root-collection node.
*/
public PublishSubscribeModule() {
- this.root = new CollectionNode();
+ this.serviceConfiguration = new PubSubServiceConfiguration(new CollectionNode());
}
/**
* Create a new PublishSubscribeModule together with a supplied root-collection node.
*/
- public PublishSubscribeModule(CollectionNode root) {
- this.root = root;
+ public PublishSubscribeModule(PubSubServiceConfiguration servcieConfiguration) {
+ this.serviceConfiguration = servcieConfiguration;
}
/**
@@ -90,16 +90,17 @@
if (collectionNodeStorageProvider == null) {
logger.warn("No collection node storage provider found, using the default (in memory)");
} else {
- root.setCollectionNodeStorageProvider(collectionNodeStorageProvider);
+ serviceConfiguration.setCollectionNodeStorageProvider(collectionNodeStorageProvider);
}
if (leafNodeStorageProvider == null) {
logger.warn("No leaf node storage provider found, using the default (in memory)");
} else {
- root.setLeafNodeStorageProvider(leafNodeStorageProvider);
+ serviceConfiguration.setLeafNodeStorageProvider(leafNodeStorageProvider);
}
- this.root.initialize();
+ this.serviceConfiguration.setServerJID(serverRuntimeContext.getServerEnitity());
+ this.serviceConfiguration.initialize();
}
/**
@@ -133,6 +134,7 @@
* @see ServerInfoRequestListener#getServerInfosFor(InfoRequest)
*/
public List<InfoElement> getServerInfosFor(InfoRequest request) throws ServiceDiscoveryRequestException {
+ CollectionNode root = serviceConfiguration.getRootNode();
List<InfoElement> infoElements = new ArrayList<InfoElement>();
if(request.getNode() == null || request.getNode().length() == 0) {
infoElements.add(new Identity("pubsub", "service"));
@@ -159,10 +161,11 @@
* @see ItemRequestListener#getItemsFor(InfoRequest)
*/
public List<Item> getItemsFor(InfoRequest request) throws ServiceDiscoveryRequestException {
+ CollectionNode root = serviceConfiguration.getRootNode();
List<Item> items = null;
if(request.getNode() == null || request.getNode().length() == 0) {
- NodeVisitor nv = new ServiceDiscoItemsVisitor();
+ NodeVisitor nv = new ServiceDiscoItemsVisitor(serviceConfiguration);
root.acceptNodes(nv);
items = nv.getNodeItemList();
} else {
@@ -192,8 +195,8 @@
*/
private void addPubsubOwnerHandlers(List<HandlerDictionary> dictionary) {
ArrayList<StanzaHandler> pubsubOwnerHandlers = new ArrayList<StanzaHandler>();
- pubsubOwnerHandlers.add(new PubSubOwnerConfigureNodeHandler(root));
- pubsubOwnerHandlers.add(new PubSubOwnerDeleteNodeHandler(root));
+ pubsubOwnerHandlers.add(new PubSubOwnerConfigureNodeHandler(serviceConfiguration));
+ pubsubOwnerHandlers.add(new PubSubOwnerDeleteNodeHandler(serviceConfiguration));
dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB_OWNER, pubsubOwnerHandlers));
}
@@ -203,10 +206,10 @@
*/
private void addPubsubHandlers(List<HandlerDictionary> dictionary) {
ArrayList<StanzaHandler> pubsubHandlers = new ArrayList<StanzaHandler>();
- pubsubHandlers.add(new PubSubSubscribeHandler(root));
- pubsubHandlers.add(new PubSubUnsubscribeHandler(root));
- pubsubHandlers.add(new PubSubPublishHandler(root));
- pubsubHandlers.add(new PubSubCreateNodeHandler(root));
+ pubsubHandlers.add(new PubSubSubscribeHandler(serviceConfiguration));
+ pubsubHandlers.add(new PubSubUnsubscribeHandler(serviceConfiguration));
+ pubsubHandlers.add(new PubSubPublishHandler(serviceConfiguration));
+ pubsubHandlers.add(new PubSubCreateNodeHandler(serviceConfiguration));
dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB, pubsubHandlers));
}
}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/ServiceDiscoItemsVisitor.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/ServiceDiscoItemsVisitor.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/ServiceDiscoItemsVisitor.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/ServiceDiscoItemsVisitor.java Wed Aug 5 17:39:18 2009
@@ -32,14 +32,19 @@
public class ServiceDiscoItemsVisitor implements NodeVisitor {
private List<Item> itemList = new ArrayList<Item>();
+ private PubSubServiceConfiguration serviceConfiguration;
+ public ServiceDiscoItemsVisitor(PubSubServiceConfiguration serviceConfiguration) {
+ this.serviceConfiguration = serviceConfiguration;
+ }
+
/**
* 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(LeafNode ln) {
- this.itemList.add(new Item(ln.getServerJID(), ln.getTitle(), ln.getName()));
+ this.itemList.add(new Item(serviceConfiguration.getServerJID(), ln.getTitle(), ln.getName()));
}
/**
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/AbstractPubSubGeneralHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/AbstractPubSubGeneralHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/AbstractPubSubGeneralHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/AbstractPubSubGeneralHandler.java Wed Aug 5 17:39:18 2009
@@ -20,7 +20,7 @@
package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeIQHandler;
-import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
/**
@@ -33,8 +33,8 @@
/**
* @param root
*/
- public AbstractPubSubGeneralHandler(CollectionNode root) {
- super(root);
+ public AbstractPubSubGeneralHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeHandler.java Wed Aug 5 17:39:18 2009
@@ -22,8 +22,9 @@
import org.apache.vysper.compliance.SpecCompliance;
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.xmpp.addressing.Entity;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
-import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.DuplicateNodeException;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.stanza.IQStanza;
@@ -44,8 +45,8 @@
/**
* @param root
*/
- public PubSubCreateNodeHandler(CollectionNode root) {
- super(root);
+ public PubSubCreateNodeHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
@@ -70,21 +71,24 @@
protected Stanza handleSet(IQStanza stanza,
ServerRuntimeContext serverRuntimeContext,
SessionContext sessionContext) {
- Entity receiver = stanza.getTo();
+ Entity serverJID = serviceConfiguration.getServerJID();
+ CollectionNode root = serviceConfiguration.getRootNode();
+
Entity sender = extractSenderJID(stanza, sessionContext);
String iqStanzaID = stanza.getAttributeValue("id");
- StanzaBuilder sb = StanzaBuilder.createIQStanza(receiver, sender, IQStanzaType.RESULT, iqStanzaID);
+ StanzaBuilder sb = StanzaBuilder.createIQStanza(serverJID, sender, IQStanzaType.RESULT, iqStanzaID);
String nodeName = extractNodeName(stanza);
- try {
- root.createNode(receiver, nodeName, sender);
- } catch (DuplicateNodeException e) {
- return errorStanzaGenerator.generateDuplicateNodeErrorStanza(sender, receiver, stanza);
+ if(root.find(nodeName) != null) {
+ return errorStanzaGenerator.generateDuplicateNodeErrorStanza(sender, serverJID, stanza);
}
+ LeafNode node = new LeafNode(serviceConfiguration, nodeName, sender);
+ root.add(node);
+
return new IQStanza(sb.getFinalStanza());
}
}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishHandler.java Wed Aug 5 17:39:18 2009
@@ -24,6 +24,7 @@
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubPrivilege;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
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.protocol.NamespaceURIs;
@@ -47,8 +48,8 @@
/**
* @param root
*/
- public PubSubPublishHandler(CollectionNode root) {
- super(root);
+ public PubSubPublishHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
@@ -79,12 +80,14 @@
protected Stanza handleSet(IQStanza stanza,
ServerRuntimeContext serverRuntimeContext,
SessionContext sessionContext) {
- Entity receiver = stanza.getTo();
+ Entity serverJID = serviceConfiguration.getServerJID();
+ CollectionNode root = serviceConfiguration.getRootNode();
+
Entity sender = extractSenderJID(stanza, sessionContext);
String iqStanzaID = stanza.getAttributeValue("id");
- StanzaBuilder sb = StanzaBuilder.createIQStanza(receiver, sender, IQStanzaType.RESULT, iqStanzaID);
+ StanzaBuilder sb = StanzaBuilder.createIQStanza(serverJID, sender, IQStanzaType.RESULT, iqStanzaID);
sb.startInnerElement("pubsub");
sb.addNamespaceAttribute(NamespaceURIs.XEP0060_PUBSUB);
@@ -98,12 +101,12 @@
if(node == null) {
// node does not exist - error condition 3 (7.1.3)
- return errorStanzaGenerator.generateNoNodeErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateNoNodeErrorStanza(sender, serverJID, stanza);
}
if(!node.isAuthorized(sender, PubSubPrivilege.PUBLISH)) {
// not enough privileges to publish - error condition 1 (7.1.3)
- return errorStanzaGenerator.generateInsufficientPrivilegesErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateInsufficientPrivilegesErrorStanza(sender, serverJID, stanza);
}
if(strID == null) {
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeHandler.java Wed Aug 5 17:39:18 2009
@@ -24,6 +24,7 @@
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.addressing.EntityImpl;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
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.protocol.NamespaceURIs;
@@ -47,8 +48,8 @@
/**
* @param root
*/
- public PubSubSubscribeHandler(CollectionNode root) {
- super(root);
+ public PubSubSubscribeHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
@@ -82,13 +83,15 @@
protected Stanza handleSet(IQStanza stanza,
ServerRuntimeContext serverRuntimeContext,
SessionContext sessionContext) {
- Entity receiver = stanza.getTo();
+ Entity serverJID = serviceConfiguration.getServerJID();
+ CollectionNode root = serviceConfiguration.getRootNode();
+
Entity sender = extractSenderJID(stanza, sessionContext);
Entity subJID = null;
String iqStanzaID = stanza.getAttributeValue("id");
- StanzaBuilder sb = StanzaBuilder.createIQStanza(receiver, sender, IQStanzaType.RESULT, iqStanzaID);
+ StanzaBuilder sb = StanzaBuilder.createIQStanza(serverJID, sender, IQStanzaType.RESULT, iqStanzaID);
sb.startInnerElement("pubsub");
sb.addNamespaceAttribute(NamespaceURIs.XEP0060_PUBSUB);
@@ -98,12 +101,12 @@
try {
subJID = EntityImpl.parse(strSubJID);
} catch (EntityFormatException e) {
- return errorStanzaGenerator.generateJIDMalformedErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateJIDMalformedErrorStanza(sender, serverJID, stanza);
}
if(!sender.getBareJID().equals(subJID.getBareJID())) {
// error condition 1 (6.1.3)
- return errorStanzaGenerator.generateJIDDontMatchErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateJIDDontMatchErrorStanza(sender, serverJID, stanza);
}
String nodeName = extractNodeName(stanza);
@@ -111,7 +114,7 @@
if(node == null) {
// no such node (error condition 11 (6.1.3))
- return errorStanzaGenerator.generateNoNodeErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateNoNodeErrorStanza(sender, serverJID, stanza);
}
String id = idGenerator.create();
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeHandler.java Wed Aug 5 17:39:18 2009
@@ -24,6 +24,7 @@
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityFormatException;
import org.apache.vysper.xmpp.addressing.EntityImpl;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
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.model.MultipleSubscriptionException;
@@ -48,8 +49,8 @@
/**
* @param root
*/
- public PubSubUnsubscribeHandler(CollectionNode root) {
- super(root);
+ public PubSubUnsubscribeHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
@@ -77,13 +78,15 @@
protected Stanza handleSet(IQStanza stanza,
ServerRuntimeContext serverRuntimeContext,
SessionContext sessionContext) {
- Entity receiver = stanza.getTo();
+ Entity serverJID = serviceConfiguration.getServerJID();
+ CollectionNode root = serviceConfiguration.getRootNode();
+
Entity sender = extractSenderJID(stanza, sessionContext);
Entity subJID = null;
String iqStanzaID = stanza.getAttributeValue("id");
- StanzaBuilder sb = StanzaBuilder.createIQStanza(receiver, sender, IQStanzaType.RESULT, iqStanzaID);
+ StanzaBuilder sb = StanzaBuilder.createIQStanza(serverJID, sender, IQStanzaType.RESULT, iqStanzaID);
sb.startInnerElement("pubsub");
sb.addNamespaceAttribute(NamespaceURIs.XEP0060_PUBSUB);
@@ -95,12 +98,12 @@
subJID = EntityImpl.parse(strSubJID);
} catch (EntityFormatException e) {
// return error stanza... (general error)
- return errorStanzaGenerator.generateJIDMalformedErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateJIDMalformedErrorStanza(sender, serverJID, stanza);
}
if(!sender.getBareJID().equals(subJID.getBareJID())) {
// insufficient privileges (error condition 3 (6.2.3))
- return errorStanzaGenerator.generateInsufficientPrivilegesErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateInsufficientPrivilegesErrorStanza(sender, serverJID, stanza);
}
String nodeName = extractNodeName(stanza);
@@ -108,23 +111,23 @@
if(node == null) {
// no such node (error condition 4 (6.2.3))
- return errorStanzaGenerator.generateNoNodeErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateNoNodeErrorStanza(sender, serverJID, stanza);
}
if(strSubID == null) {
try {
if(node.unsubscribe(subJID) == false) {
// has no subscription (6.2.3.2)
- return errorStanzaGenerator.generateNoSuchSubscriberErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateNoSuchSubscriberErrorStanza(sender, serverJID, stanza);
}
} catch(MultipleSubscriptionException e) {
// error case 6.2.3.1
- return errorStanzaGenerator.generateSubIDRequiredErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateSubIDRequiredErrorStanza(sender, serverJID, stanza);
}
} else {
if(node.unsubscribe(strSubID, subJID) == false) {
// subID not valid (6.2.3.5)
- return errorStanzaGenerator.generateSubIDNotValidErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateSubIDNotValidErrorStanza(sender, serverJID, stanza);
}
}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/AbstractPubSubOwnerHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/AbstractPubSubOwnerHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/AbstractPubSubOwnerHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/AbstractPubSubOwnerHandler.java Wed Aug 5 17:39:18 2009
@@ -21,7 +21,7 @@
import org.apache.vysper.compliance.SpecCompliant;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeIQHandler;
-import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
/**
@@ -36,8 +36,8 @@
/**
* @param root
*/
- public AbstractPubSubOwnerHandler(CollectionNode root) {
- super(root);
+ public AbstractPubSubOwnerHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerConfigureNodeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerConfigureNodeHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerConfigureNodeHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerConfigureNodeHandler.java Wed Aug 5 17:39:18 2009
@@ -20,7 +20,7 @@
package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.owner;
import org.apache.vysper.compliance.SpecCompliant;
-import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.CollectionNode;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
/**
@@ -35,8 +35,8 @@
/**
* @param root
*/
- public PubSubOwnerConfigureNodeHandler(CollectionNode root) {
- super(root);
+ public PubSubOwnerConfigureNodeHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerDeleteNodeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerDeleteNodeHandler.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerDeleteNodeHandler.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubOwnerDeleteNodeHandler.java Wed Aug 5 17:39:18 2009
@@ -24,6 +24,7 @@
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubPrivilege;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
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.server.ServerRuntimeContext;
@@ -48,8 +49,8 @@
/**
* @param root
*/
- public PubSubOwnerDeleteNodeHandler(CollectionNode root) {
- super(root);
+ public PubSubOwnerDeleteNodeHandler(PubSubServiceConfiguration serviceConfiguration) {
+ super(serviceConfiguration);
}
/**
@@ -74,20 +75,22 @@
protected Stanza handleSet(IQStanza stanza,
ServerRuntimeContext serverRuntimeContext,
SessionContext sessionContext) {
- Entity receiver = stanza.getTo();
+ Entity serverJID = serviceConfiguration.getServerJID();
+ CollectionNode root = serviceConfiguration.getRootNode();
+
Entity sender = extractSenderJID(stanza, sessionContext);
String iqStanzaID = stanza.getAttributeValue("id");
- StanzaBuilder sb = StanzaBuilder.createIQStanza(receiver, sender, IQStanzaType.RESULT, iqStanzaID);
+ StanzaBuilder sb = StanzaBuilder.createIQStanza(serverJID, sender, IQStanzaType.RESULT, iqStanzaID);
String nodeName = extractNodeName(stanza);
LeafNode node = root.find(nodeName);
if(node == null) {
- return errorStanzaGenerator.generateNoNodeErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateNoNodeErrorStanza(sender, serverJID, stanza);
}
if(!node.isAuthorized(sender, PubSubPrivilege.DELETE)) {
- return errorStanzaGenerator.generateInsufficientPrivilegesErrorStanza(sender, receiver, stanza);
+ return errorStanzaGenerator.generateInsufficientPrivilegesErrorStanza(sender, serverJID, stanza);
}
sendDeleteNotifications(serverRuntimeContext, sender, nodeName, node);
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNode.java Wed Aug 5 17:39:18 2009
@@ -19,12 +19,8 @@
*/
package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model;
-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;
-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
@@ -36,23 +32,6 @@
// the storage provider for storing and retrieving node-info
protected CollectionNodeStorageProvider collectionNodeStorage;
- // the storage provider for leaf nodes
- protected LeafNodeStorageProvider leafNodeStorage;
-
- /**
- * 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 name. We currently only support a flat hierarchy, so no
@@ -65,78 +44,35 @@
}
/**
- * Creates a new node under the given JID.
- *
- * @param serverJID the JID of the server this node is associated with.
- * @param nodeName the unique node-name of the node (its key)
- * @param givenName the free-text name of the node
- * @param creator the JID of the creator of the node
- * @return the newly created LeafNode.
- * @throws DuplicateNodeException if the JID is already taken.
+ * Adds the given leaf node to the collection. If the node is already present
+ * (or another node with the same name), it will be replaced with the new one.
+ * @param node
*/
- public LeafNode createNode(Entity serverJID, String nodeName, String givenName, Entity creator) throws DuplicateNodeException {
- LeafNode node = new LeafNode(serverJID, nodeName, givenName);
- node.setPersistenceManager(leafNodeStorage);
- node.initialize();
-
- if(collectionNodeStorage.containsNode(nodeName)) {
- throw new DuplicateNodeException(serverJID.getFullQualifiedName() + nodeName + " " + givenName + " already present");
- }
-
+ public void add(LeafNode node) {
collectionNodeStorage.storeNode(node);
-
- node.addOwner(creator);
- return node;
}
/**
- * Convenience method to create a node without a free-text name (optional).
- *
- * @param serverJID the JID of the server new node lies on.
- * @param nodeName the unique name of the node
- * @param creator the creator of the node
- * @return the newly create LeafNode
- * @throws DuplicateNodeException
- */
- public LeafNode createNode(Entity serverJID, String nodeName, Entity creator) throws DuplicateNodeException {
- return this.createNode(serverJID, nodeName, null, creator);
- }
-
- /**
- * Change the storage provider to be used for the collection nodes.
- *
- * @param storageProvider the new storage provider.
+ * Visit all nodes.
+ * @param nv
*/
- 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;
- }
-
public void acceptNodes(NodeVisitor nv) {
collectionNodeStorage.acceptNodes(nv);
}
/**
- * Called after setting the storage providers to do its own initialization tasks.
- */
- public void initialize() {
- this.collectionNodeStorage.initialize();
- this.leafNodeStorage.initialize();
- }
-
- /**
* Deletes a node.
* @param nodeName the node to delete
*/
public void deleteNode(String nodeName) {
this.collectionNodeStorage.deleteNode(nodeName);
}
+
+ /**
+ * Changes the storage provider for the collection node.
+ * @param collectionNodeStorageProvider
+ */
+ public void setCollectionNodeStorageProvider(CollectionNodeStorageProvider collectionNodeStorageProvider) {
+ this.collectionNodeStorage = collectionNodeStorageProvider;
+ }
}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNode.java Wed Aug 5 17:39:18 2009
@@ -26,9 +26,9 @@
import org.apache.vysper.xmpp.delivery.StanzaRelay;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.ItemVisitor;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubAffiliation;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.SubscriberPayloadNotificationVisitor;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.feature.PubsubFeatures;
-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.modules.servicediscovery.management.Feature;
import org.apache.vysper.xmpp.modules.servicediscovery.management.Identity;
@@ -44,26 +44,45 @@
* @author The Apache MINA Project (http://mina.apache.org)
*/
public class LeafNode {
-
- // the jid of the server the node is on
- protected Entity serverJID;
+
// the name of the node (free text)
protected String title;
// the unique name (per server) of the node
protected String name;
// the storage provider for storing and retrieving node information.
- protected LeafNodeStorageProvider storage = new LeafNodeInMemoryStorageProvider();
+ protected LeafNodeStorageProvider storage = null;
+ // the service configuration
+ protected PubSubServiceConfiguration serviceConfiguration = null;
+
+ /**
+ * Creates a new LeafNode with the specified name and title. The creator will be added as owner.
+ */
+ public LeafNode(PubSubServiceConfiguration serviceConfiguration, String name, String title, Entity creator) {
+ init(serviceConfiguration, name, title, creator);
+ }
/**
- * Creates a new LeafNode with the specified JID.
- * @param serverJID the JID of the node
- * @param name the unique name of the node (per server)
- * @param title the free-text title of the node (what is it about?)
+ * Creates a new LeafNode with the specified name. The creator will be added as owner.
*/
- public LeafNode(Entity serverJID, String name, String title) {
- this.serverJID = serverJID;
+ public LeafNode(PubSubServiceConfiguration serviceConfiguration, String name, Entity creator) {
+ init(serviceConfiguration, name, null, creator);
+ }
+
+ /**
+ * Method to actually do the initialization process.
+ *
+ * @param serviceConfiguration
+ * @param name
+ * @param title
+ * @param creator
+ */
+ private void init(PubSubServiceConfiguration serviceConfiguration, String name, String title, Entity creator) {
+ this.serviceConfiguration = serviceConfiguration;
this.name = name;
this.title = title;
+ this.storage = serviceConfiguration.getLeafNodeStorageProvider();
+ this.storage.initialize(this);
+ this.addOwner(creator);
}
/**
@@ -168,7 +187,7 @@
* @param item the payload of the message.
*/
protected void sendMessageToSubscriber(StanzaRelay stanzaRelay, XMLElement item) {
- storage.acceptForEachSubscriber(name, new SubscriberPayloadNotificationVisitor(serverJID, stanzaRelay, item));
+ storage.acceptForEachSubscriber(name, new SubscriberPayloadNotificationVisitor(serviceConfiguration.getServerJID(), stanzaRelay, item));
}
/**
@@ -184,13 +203,6 @@
public String getTitle() {
return title;
}
-
- /**
- * @return the JID of the server the nodes lies on.
- */
- public Entity getServerJID() {
- return serverJID;
- }
/**
* Builds a list of InfoElements for disco#info requests.
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java Wed Aug 5 17:39:18 2009
@@ -52,6 +52,7 @@
protected Entity client = null;
protected Entity pubsubService = null;
protected IQHandler handler = null;
+ protected PubSubServiceConfiguration serviceConfiguration = null;
protected CollectionNode root = null;
protected Entity serverEntity = null;
protected StanzaReceiverRelay relay = null;
@@ -73,7 +74,8 @@
sessionContext = createTestSessionContext(serverEntity);
root = new CollectionNode();
- configurePubsubModule(sessionContext, root);
+ serviceConfiguration = new PubSubServiceConfiguration(root);
+ configurePubsubModule(sessionContext, serviceConfiguration);
clientBare = new EntityImpl("tester", "vysper.org", null);
sessionContext.setInitiatingEntity(clientBare);
@@ -104,8 +106,8 @@
((DefaultServerRuntimeContext) tsc.getServerRuntimeContext()).registerServerRuntimeContextService(serviceCollector);
}
- protected void configurePubsubModule(TestSessionContext tsc, CollectionNode root) {
- ((DefaultServerRuntimeContext) tsc.getServerRuntimeContext()).addModule(new PublishSubscribeModule(root));
+ protected void configurePubsubModule(TestSessionContext tsc, PubSubServiceConfiguration serviceConfiguration) {
+ ((DefaultServerRuntimeContext) tsc.getServerRuntimeContext()).addModule(new PublishSubscribeModule(serviceConfiguration));
}
protected void configureStorageProvider(TestSessionContext tsc) {
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoInfoTestCase.java Wed Aug 5 17:39:18 2009
@@ -8,6 +8,7 @@
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeTestCase;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.feature.PubsubFeatures;
import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.handler.AbstractStanzaGenerator;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.model.LeafNode;
import org.apache.vysper.xmpp.modules.servicediscovery.handler.DiscoInfoIQHandler;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
@@ -74,7 +75,7 @@
}
public void testInfoRequestForANode() throws Exception {
- root.createNode(serverEntity, "news", "News", client);
+ root.add(new LeafNode(serviceConfiguration, "news", "News", client));
DefaultDiscoInfoStanzaGenerator sg = (DefaultDiscoInfoStanzaGenerator)getDefaultStanzaGenerator();
Stanza stanza = sg.getStanza(client, pubsubService.getBareJID(), "id123","news");
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/disco/PubSubDiscoItemsTestCase.java Wed Aug 5 17:39:18 2009
@@ -55,8 +55,8 @@
}
public void testSomeItems() throws Exception {
- root.createNode(serverEntity, "news", "News", client);
- root.createNode(serverEntity, "blogs", "Blogs", client);
+ root.add(new LeafNode(serviceConfiguration, "news", "News", client));
+ root.add(new LeafNode(serviceConfiguration, "blogs", "Blogs", client));
DefaultDiscoInfoStanzaGenerator sg = (DefaultDiscoInfoStanzaGenerator)getDefaultStanzaGenerator();
Stanza stanza = sg.getStanza(client, pubsubService.getBareJID(), "id123");
@@ -101,7 +101,7 @@
}
public void testNodeItemsNone() throws Exception {
- root.createNode(serverEntity, "news", "News", client);
+ root.add(new LeafNode(serviceConfiguration, "news", "News", client));
DefaultDiscoInfoStanzaGenerator sg = (DefaultDiscoInfoStanzaGenerator)getDefaultStanzaGenerator();
Stanza stanza = sg.getStanza(client, pubsubService.getBareJID(), "id123", "news");
@@ -126,7 +126,8 @@
}
public void testNodeItemsSome() throws Exception {
- LeafNode node = root.createNode(serverEntity, "news", "News", client);
+ LeafNode node = new LeafNode(serviceConfiguration, "news", "News", client);
+ root.add(node);
XMLElement item1 = new XMLElement("item1","namespace1",(Attribute[])null, (XMLFragment[])null);
XMLElement item2 = new XMLElement("item2","namespace2",(Attribute[])null, (XMLFragment[])null);
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubCreateNodeTestCase.java Wed Aug 5 17:39:18 2009
@@ -63,7 +63,7 @@
@Override
protected IQHandler getHandler() {
- return new PubSubCreateNodeHandler(root);
+ return new PubSubCreateNodeHandler(serviceConfiguration);
}
public void testCreate() throws Exception {
@@ -85,7 +85,7 @@
public void testCreateDuplicate() throws Exception {
String testNode = "test";
- root.createNode(pubsubService, testNode, client);
+ root.add(new LeafNode(serviceConfiguration, testNode, client));
assertNotNull(root.find(testNode)); // should be there
AbstractStanzaGenerator sg = getDefaultStanzaGenerator();
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubPublishTestCase.java Wed Aug 5 17:39:18 2009
@@ -43,7 +43,8 @@
@Override
public void setUp() throws Exception {
super.setUp();
- node = root.createNode(serverEntity, "news", "Node used for testing purposes", client);
+ node = new LeafNode(serviceConfiguration, "news", "Node used for testing purposes", client);
+ root.add(node);
}
@Override
@@ -53,7 +54,7 @@
@Override
protected IQHandler getHandler() {
- return new PubSubPublishHandler(root);
+ return new PubSubPublishHandler(serviceConfiguration);
}
public void testPublishResponse() {
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubSubscribeTestCase.java Wed Aug 5 17:39:18 2009
@@ -44,12 +44,13 @@
@Override
public void setUp() throws Exception {
super.setUp();
- node = root.createNode(serverEntity, "news", "Node used for testing purposes", client);
+ node = new LeafNode(serviceConfiguration, "news", "Node used for testing purposes", client);
+ root.add(node);
}
@Override
protected IQHandler getHandler() {
- return new PubSubSubscribeHandler(root);
+ return new PubSubSubscribeHandler(serviceConfiguration);
}
@Override
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/PubSubUnsubscribeTestCase.java Wed Aug 5 17:39:18 2009
@@ -42,7 +42,8 @@
@Override
public void setUp() throws Exception {
super.setUp();
- node = root.createNode(serverEntity, "news", "Node used for testing purposes", client);
+ node = new LeafNode(serviceConfiguration, "news", "Node used for testing purposes", client);
+ root.add(node);
}
class DefaultUnsubscribeStanzaGenerator extends AbstractStanzaGenerator {
@@ -100,7 +101,7 @@
@Override
protected IQHandler getHandler() {
- return new PubSubUnsubscribeHandler(root);
+ return new PubSubUnsubscribeHandler(serviceConfiguration);
}
public void testUnsubscribe() throws Exception {
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubConfigureNodeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubConfigureNodeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubConfigureNodeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubConfigureNodeTestCase.java Wed Aug 5 17:39:18 2009
@@ -59,7 +59,7 @@
@Override
protected IQHandler getHandler() {
- return new PubSubOwnerConfigureNodeHandler(root);
+ return new PubSubOwnerConfigureNodeHandler(serviceConfiguration);
}
}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubDeleteNodeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubDeleteNodeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubDeleteNodeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/handler/owner/PubSubDeleteNodeTestCase.java Wed Aug 5 17:39:18 2009
@@ -67,12 +67,14 @@
@Override
protected IQHandler getHandler() {
- return new PubSubOwnerDeleteNodeHandler(root);
+ return new PubSubOwnerDeleteNodeHandler(serviceConfiguration);
}
public void testDelete() throws Exception {
String testNode = "test";
- LeafNode node = root.createNode(pubsubService, testNode, client);
+ LeafNode node = new LeafNode(serviceConfiguration, testNode, client);
+ root.add(node);
+
node.subscribe("someid", client); // make the owner subscriber
node.subscribe("otherid1", new EntityImpl("yoda", "starwars.com", "spaceship"));
node.subscribe("otherid2", new EntityImpl("r2d2", "starwars.com", "desert"));
@@ -100,7 +102,7 @@
public void testDeleteNotAuth() throws Exception {
String testNode = "test";
- root.createNode(pubsubService, testNode, client);
+ root.add(new LeafNode(serviceConfiguration, testNode, client));
assertNotNull(root.find(testNode));
Entity clientNotAuthorized = new EntityImpl("darthvader", "deathstar.tld", null);
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/CollectionNodeTestCase.java Wed Aug 5 17:39:18 2009
@@ -23,6 +23,7 @@
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityImpl;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
/**
* @author The Apache MINA Project (http://mina.apache.org)
@@ -32,36 +33,29 @@
protected CollectionNode collection;
protected Entity owner;
+ protected PubSubServiceConfiguration serviceConfig;
@Override
protected void setUp() throws Exception {
super.setUp();
- collection = new CollectionNode();
- collection.initialize();
+ collection = new CollectionNode();
+ serviceConfig = new PubSubServiceConfiguration(collection);
+
owner = new EntityImpl("owner","vysper.org", null);
+ Entity jid = new EntityImpl(null, "pubsub.vysper.org", null);
+ serviceConfig.setServerJID(jid);
}
public void testCreateNode() throws Exception {
- Entity jid = new EntityImpl(null, "pubsub.vysper.org", null);
- LeafNode test1 = collection.createNode(jid, "test1", owner);
+ LeafNode test1 = new LeafNode(serviceConfig, "test1", owner);
+ collection.add(test1);
assertNotNull(test1);
}
- public void testCreateNodeTwice() {
- Entity jid = new EntityImpl(null, "pubsub.vysper.org", null);
- try {
- collection.createNode(jid, "test1", owner);
- collection.createNode(jid, "test1", owner);
- fail();
- } catch(DuplicateNodeException e) {
- // ok
- }
- }
-
public void testInsertFind() throws Exception {
- Entity jid = new EntityImpl(null, "pubsub.vysper.org", null);
- LeafNode insertedNode = collection.createNode(jid, "test1", owner);
+ LeafNode insertedNode = new LeafNode(serviceConfig, "test1", owner);
+ collection.add(insertedNode);
LeafNode foundNode = collection.find("test1");
assertEquals(insertedNode, foundNode);
}
Modified: mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java?rev=801331&r1=801330&r2=801331&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java (original)
+++ mina/sandbox/vysper/trunk/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/model/LeafNodeTestCase.java Wed Aug 5 17:39:18 2009
@@ -23,6 +23,7 @@
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityImpl;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.PubSubServiceConfiguration;
/**
* @author The Apache MINA Project (http://mina.apache.org)
@@ -36,8 +37,11 @@
protected void setUp() throws Exception {
super.setUp();
Entity nodeJID = new EntityImpl(null, "pubsub.vysper.org", null);
- node = new LeafNode(nodeJID, "node", "Some test node");
- node.initialize();
+ PubSubServiceConfiguration serviceConfig = new PubSubServiceConfiguration(new CollectionNode());
+ serviceConfig.setServerJID(nodeJID);
+ Entity creatorJID = new EntityImpl("creator", "vysper.org", null);
+
+ node = new LeafNode(serviceConfig, "node", "Some test node", creatorJID);
}
public void testSubscribe() throws Exception {