You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by be...@apache.org on 2009/05/13 15:53:33 UTC
svn commit: r774370 - in /mina/sandbox/vysper/trunk/src:
main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/
main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/
main/java/org/apache/vysper/xmpp/modules/extension/xe...
Author: berndf
Date: Wed May 13 13:53:32 2009
New Revision: 774370
URL: http://svn.apache.org/viewvc?rev=774370&view=rev
Log:
[vysper] VYSPER-26. patch contributed by Michael Jakl. thanks!
Added:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/AbstractPubSubGeneralHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNodeHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublishHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribeHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribeHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/AbstractPubSubOwnerHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerConfigureNodeHandler.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerDeleteNodeHandler.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/
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/general/
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNode.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublish.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribe.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribe.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubConfigureNode.java
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubDeleteNode.java
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PublishSubscribeModule.java
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeIQHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,53 @@
+/*
+ * 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.compliance.SpecCompliant;
+import org.apache.vysper.xmpp.modules.core.base.handler.DefaultIQHandler;
+import org.apache.vysper.xmpp.stanza.Stanza;
+import org.apache.vysper.xmpp.xmlfragment.XMLElement;
+
+/**
+ * Handles PubSub stanzas.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+@SpecCompliant(spec="xep-0060", status= SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage = SpecCompliant.ComplianceCoverage.UNSUPPORTED)
+public abstract class AbstractPublishSubscribeIQHandler extends DefaultIQHandler {
+
+ @Override
+ protected boolean verifyNamespace(Stanza stanza) {
+ return verifyInnerNamespace(stanza, getNamespace());
+ }
+
+ @Override
+ protected boolean verifyInnerElement(Stanza stanza) {
+ return verifyInnerElementWorker(stanza, "pubsub")
+ && verifySingleElementParameter(stanza.getFirstInnerElement(), getWorkerElement());
+ }
+
+ protected boolean verifySingleElementParameter(XMLElement pubsub, String element) {
+ return pubsub.getVerifier().subElementsPresentExact(1)
+ && pubsub.getVerifier().subElementPresent(element);
+ }
+
+ protected abstract String getNamespace();
+ protected abstract String getWorkerElement();
+}
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=774370&r1=774369&r2=774370&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 Wed May 13 13:53:32 2009
@@ -19,7 +19,16 @@
*/
package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.vysper.xmpp.modules.DefaultDiscoAwareModule;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubCreateNodeHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubPublishHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubSubscribeHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubUnsubscribeHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.owner.PubSubOwnerConfigureNodeHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.owner.PubSubOwnerDeleteNodeHandler;
import org.apache.vysper.xmpp.modules.servicediscovery.management.Feature;
import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoElement;
import org.apache.vysper.xmpp.modules.servicediscovery.management.InfoRequest;
@@ -28,26 +37,16 @@
import org.apache.vysper.xmpp.protocol.HandlerDictionary;
import org.apache.vysper.xmpp.protocol.NamespaceHandlerDictionary;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
-import org.apache.vysper.xmpp.server.ServerRuntimeContext;
-
-import java.util.ArrayList;
-import java.util.List;
/**
* Initializes the XEP0060 module.
*
* @author The Apache MINA Project (dev@mina.apache.org)
- * @version $Rev$, $Date$
*/
public class PublishSubscribeModule extends DefaultDiscoAwareModule implements
ServerInfoRequestListener {
@Override
- public void initialize(ServerRuntimeContext serverRuntimeContext) {
- super.initialize(serverRuntimeContext);
- }
-
- @Override
public String getName() {
return "XEP-0060 Publish-Subscribe";
}
@@ -67,8 +66,13 @@
@Override
protected void addHandlerDictionaries(List<HandlerDictionary> dictionary) {
- dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB));
- dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB_OWNER));
+ dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB, new PubSubSubscribeHandler()));
+ dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB, new PubSubUnsubscribeHandler()));
+ dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB, new PubSubPublishHandler()));
+ dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB, new PubSubCreateNodeHandler()));
+
+ dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB_OWNER, new PubSubOwnerConfigureNodeHandler()));
+ dictionary.add(new NamespaceHandlerDictionary(NamespaceURIs.XEP0060_PUBSUB_OWNER, new PubSubOwnerDeleteNodeHandler()));
}
}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/AbstractPubSubGeneralHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/AbstractPubSubGeneralHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/AbstractPubSubGeneralHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/AbstractPubSubGeneralHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,33 @@
+/*
+ * 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.general;
+
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeIQHandler;
+import org.apache.vysper.xmpp.protocol.NamespaceURIs;
+
+public abstract class AbstractPubSubGeneralHandler extends
+ AbstractPublishSubscribeIQHandler {
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNodeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNodeHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNodeHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNodeHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.general;
+
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ *
+ */
+public class PubSubCreateNodeHandler extends AbstractPubSubGeneralHandler {
+
+ @Override
+ protected String getWorkerElement() {
+ return "create";
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublishHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublishHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublishHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublishHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.general;
+
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ *
+ */
+public class PubSubPublishHandler extends AbstractPubSubGeneralHandler {
+
+ @Override
+ protected String getWorkerElement() {
+ return "publish";
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribeHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribeHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribeHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.general;
+
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ *
+ */
+public class PubSubSubscribeHandler extends AbstractPubSubGeneralHandler {
+
+ @Override
+ protected String getWorkerElement() {
+ return "subscribe";
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribeHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribeHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribeHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.general;
+
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ *
+ */
+public class PubSubUnsubscribeHandler extends AbstractPubSubGeneralHandler {
+
+ @Override
+ protected String getWorkerElement() {
+ return "unsubscribe";
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/AbstractPubSubOwnerHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/AbstractPubSubOwnerHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/AbstractPubSubOwnerHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/AbstractPubSubOwnerHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,33 @@
+/*
+ * 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.owner;
+
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.AbstractPublishSubscribeIQHandler;
+import org.apache.vysper.xmpp.protocol.NamespaceURIs;
+
+public abstract class AbstractPubSubOwnerHandler extends
+ AbstractPublishSubscribeIQHandler {
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB_OWNER;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerConfigureNodeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerConfigureNodeHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerConfigureNodeHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerConfigureNodeHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.owner;
+
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ *
+ */
+public class PubSubOwnerConfigureNodeHandler extends AbstractPubSubOwnerHandler {
+
+ @Override
+ protected String getWorkerElement() {
+ return "configure";
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerDeleteNodeHandler.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerDeleteNodeHandler.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerDeleteNodeHandler.java (added)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubOwnerDeleteNodeHandler.java Wed May 13 13:53:32 2009
@@ -0,0 +1,34 @@
+/*
+ * 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.owner;
+
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ *
+ */
+public class PubSubOwnerDeleteNodeHandler extends AbstractPubSubOwnerHandler {
+
+ @Override
+ protected String getWorkerElement() {
+ return "delete";
+ }
+
+}
Added: 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=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/AbstractPublishSubscribeTestCase.java Wed May 13 13:53:32 2009
@@ -0,0 +1,115 @@
+/*
+ * 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 junit.framework.TestCase;
+
+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.server.SessionContext;
+import org.apache.vysper.xmpp.server.TestSessionContext;
+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.state.resourcebinding.ResourceState;
+
+
+/**
+ * The abstract base class for all pubsub related tests.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public abstract class AbstractPublishSubscribeTestCase extends TestCase {
+ private TestSessionContext sessionContext = null;
+ protected Entity clientBare = null;
+ protected Entity client = null;
+ protected Entity pubsub = null;
+ protected IQHandler handler = null;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ sessionContext = TestSessionContext.createWithStanzaReceiverRelayAuthenticated();
+ clientBare = new EntityImpl("tester", "vysper.org", null);
+ sessionContext.setInitiatingEntity(clientBare);
+
+ String boundResourceId = sessionContext.bindResource();
+ client = new EntityImpl(clientBare, boundResourceId);
+ pubsub = EntityImpl.parse("pubsub.vysper.org/news");
+
+ setResourceConnected(sessionContext, boundResourceId);
+
+ handler = getHandler();
+ }
+
+ private void setResourceConnected(SessionContext sessionContext, String boundResourceId) {
+ sessionContext.getServerRuntimeContext().getResourceRegistry().setResourceState(boundResourceId, ResourceState.CONNECTED);
+ }
+
+ /**
+ * Override and provide the Handler to be tested. A new
+ * handler will be created for each test.
+ *
+ * @return the instantiated handler to be tested
+ */
+ protected abstract IQHandler getHandler();
+
+ /**
+ * Override and provide the Namespace the pubsub element lies within.
+ *
+ * @return the namespace for the IQ stanza as String
+ */
+ protected abstract String getNamespace();
+
+ /**
+ * Override and provide a optional inner element (within the IQ/pubsub elements).
+ *
+ * @param sb the StanzaBuilder currently used
+ * @return the (modified) StanzaBuilder
+ */
+ protected abstract StanzaBuilder buildInnerElement(StanzaBuilder sb);
+
+ /**
+ * Override and define the IQ stanza's type (get or set)
+ *
+ * @return Type of Stanza @see {@link IQStanzaType}
+ */
+ protected abstract IQStanzaType getStanzaType();
+
+ protected Stanza getStanza() {
+ StanzaBuilder stanzaBuilder = StanzaBuilder.createIQStanza(client, pubsub, getStanzaType(), "id1");
+ stanzaBuilder.startInnerElement("pubsub");
+ stanzaBuilder.addNamespaceAttribute(getNamespace());
+
+ buildInnerElement(stanzaBuilder);
+
+ stanzaBuilder.endInnerElement();
+
+ return stanzaBuilder.getFinalStanza();
+ }
+
+ public void testSimpleStanza() {
+ Stanza stanza = getStanza();
+
+ assertTrue(handler.verify(stanza));
+ }
+}
Added: 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=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/PubSubTests.java Wed May 13 13:53:32 2009
@@ -0,0 +1,29 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub;
+
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubCreateNode;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubPublish;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubSubscribe;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general.PubSubUnsubscribe;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.owner.PubSubConfigureNode;
+import org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.owner.PubSubDeleteNode;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class PubSubTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(
+ "Test for Publish/Subscribe XEP-0060");
+ //$JUnit-BEGIN$
+ suite.addTestSuite(PubSubDeleteNode.class);
+ suite.addTestSuite(PubSubConfigureNode.class);
+ suite.addTestSuite(PubSubCreateNode.class);
+ suite.addTestSuite(PubSubPublish.class);
+ suite.addTestSuite(PubSubSubscribe.class);
+ suite.addTestSuite(PubSubUnsubscribe.class);
+ //$JUnit-END$
+ return suite;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNode.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNode.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNode.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubCreateNode.java Wed May 13 13:53:32 2009
@@ -0,0 +1,37 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general;
+
+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.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class PubSubCreateNode extends AbstractPublishSubscribeTestCase {
+
+ @Override
+ protected StanzaBuilder buildInnerElement(StanzaBuilder sb) {
+ sb.startInnerElement("create");
+ sb.addAttribute("node", pubsub.getResource());
+ sb.endInnerElement();
+ return sb;
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new PubSubCreateNodeHandler();
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.SET;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublish.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublish.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublish.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubPublish.java Wed May 13 13:53:32 2009
@@ -0,0 +1,37 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general;
+
+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.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class PubSubPublish extends AbstractPublishSubscribeTestCase {
+
+ @Override
+ protected StanzaBuilder buildInnerElement(StanzaBuilder sb) {
+ sb.startInnerElement("publish");
+ sb.addAttribute("node", pubsub.getResource());
+ sb.endInnerElement();
+ return sb;
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new PubSubPublishHandler();
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.SET;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribe.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribe.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribe.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubSubscribe.java Wed May 13 13:53:32 2009
@@ -0,0 +1,38 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general;
+
+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.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class PubSubSubscribe extends AbstractPublishSubscribeTestCase {
+
+ @Override
+ protected StanzaBuilder buildInnerElement(StanzaBuilder sb) {
+ sb.startInnerElement("subscribe");
+ sb.addAttribute("node", pubsub.getResource());
+ sb.addAttribute("jid", client.getFullQualifiedName());
+ sb.endInnerElement();
+ return sb;
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new PubSubSubscribeHandler();
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.SET;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribe.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribe.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribe.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/general/PubSubUnsubscribe.java Wed May 13 13:53:32 2009
@@ -0,0 +1,38 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.general;
+
+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.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class PubSubUnsubscribe extends AbstractPublishSubscribeTestCase {
+
+ @Override
+ protected StanzaBuilder buildInnerElement(StanzaBuilder sb) {
+ sb.startInnerElement("unsubscribe");
+ sb.addAttribute("node", pubsub.getResource());
+ sb.addAttribute("jid", client.getFullQualifiedName());
+ sb.endInnerElement();
+ return sb;
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new PubSubUnsubscribeHandler();
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.SET;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubConfigureNode.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubConfigureNode.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubConfigureNode.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubConfigureNode.java Wed May 13 13:53:32 2009
@@ -0,0 +1,37 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.owner;
+
+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.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class PubSubConfigureNode extends AbstractPublishSubscribeTestCase {
+
+ @Override
+ protected StanzaBuilder buildInnerElement(StanzaBuilder sb) {
+ sb.startInnerElement("configure");
+ sb.addAttribute("node", pubsub.getResource());
+ sb.endInnerElement();
+ return sb;
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new PubSubOwnerConfigureNodeHandler();
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB_OWNER;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.GET;
+ }
+
+}
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubDeleteNode.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubDeleteNode.java?rev=774370&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubDeleteNode.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/owner/PubSubDeleteNode.java Wed May 13 13:53:32 2009
@@ -0,0 +1,37 @@
+package org.apache.vysper.xmpp.modules.extension.xep0060_pubsub.owner;
+
+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.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.stanza.IQStanzaType;
+import org.apache.vysper.xmpp.stanza.StanzaBuilder;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class PubSubDeleteNode extends AbstractPublishSubscribeTestCase {
+
+ @Override
+ protected StanzaBuilder buildInnerElement(StanzaBuilder sb) {
+ sb.startInnerElement("delete");
+ sb.addAttribute("node", pubsub.getResource());
+ sb.endInnerElement();
+ return sb;
+ }
+
+ @Override
+ protected IQHandler getHandler() {
+ return new PubSubOwnerDeleteNodeHandler();
+ }
+
+ @Override
+ protected String getNamespace() {
+ return NamespaceURIs.XEP0060_PUBSUB_OWNER;
+ }
+
+ @Override
+ protected IQStanzaType getStanzaType() {
+ return IQStanzaType.SET;
+ }
+
+}