Skip to content

Commit be752ef

Browse files
author
Lloyd Watkin
committed
Add skeleton of node configuration result parser
1 parent 3ca3af4 commit be752ef

4 files changed

Lines changed: 107 additions & 0 deletions

File tree

src/main/java/org/buddycloud/channelserver/channel/ChannelManagerImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ public Map<String, String> getNodeConf(String nodeId)
8383
throws NodeStoreException {
8484
return nodeStore.getNodeConf(nodeId);
8585
}
86+
87+
88+
@Override
89+
public boolean isCachedNodeConfig(String nodeId) throws NodeStoreException {
90+
return nodeStore.isCachedNodeConfig(nodeId);
91+
}
8692

8793
@Override
8894
public boolean nodeExists(String nodeId) throws NodeStoreException {

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/PubSubResult.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.buddycloud.channelserver.channel.ChannelManager;
88
import org.buddycloud.channelserver.packetprocessor.PacketProcessor;
99
import org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.result.AffiliationsResult;
10+
import org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.result.Configuration;
1011
import org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.result.ItemsResult;
1112
import org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.result.SubscriptionsResult;
1213
import org.buddycloud.channelserver.queue.FederatedQueueManager;
@@ -42,6 +43,7 @@ private void initElementProcessors() {
4243
elementProcessors.add(new SubscriptionsResult(channelManager));
4344
elementProcessors.add(new AffiliationsResult(channelManager));
4445
elementProcessors.add(new ItemsResult(channelManager));
46+
elementProcessors.add(new Configuration(channelManager));
4547
}
4648

4749
@Override
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.result;
2+
3+
import java.util.List;
4+
5+
import org.apache.log4j.Logger;
6+
import org.buddycloud.channelserver.channel.ChannelManager;
7+
import org.buddycloud.channelserver.db.exception.NodeStoreException;
8+
import org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.PubSubElementProcessorAbstract;
9+
import org.buddycloud.channelserver.pubsub.model.NodeSubscription;
10+
import org.buddycloud.channelserver.pubsub.model.impl.NodeSubscriptionImpl;
11+
import org.buddycloud.channelserver.pubsub.subscription.Subscriptions;
12+
import org.dom4j.Element;
13+
import org.xmpp.packet.IQ;
14+
import org.xmpp.packet.JID;
15+
16+
public class Configuration extends PubSubElementProcessorAbstract {
17+
18+
private IQ request;
19+
private boolean ownerRequest;
20+
private String lastNode = "";
21+
22+
private static final Logger logger = Logger
23+
.getLogger(Configuration.class);
24+
25+
public Configuration(ChannelManager channelManager) {
26+
this.channelManager = channelManager;
27+
}
28+
29+
@Override
30+
public void process(Element elm, JID actorJID, IQ reqIQ, Element rsm)
31+
throws Exception {
32+
this.request = reqIQ;
33+
34+
if (-1 != request.getFrom().toString().indexOf("@")) {
35+
logger.debug("Ignoring result packet, only interested in stanzas "
36+
+ "from other buddycloud servers");
37+
return;
38+
}
39+
40+
}
41+
42+
@Override
43+
public boolean accept(Element elm) {
44+
return elm.getName().equals("configure");
45+
}
46+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.buddycloud.channelserver.packetprocessor.iq.namespace.pubsub.result;
2+
3+
import junit.framework.Assert;
4+
5+
import org.buddycloud.channelserver.channel.ChannelManager;
6+
import org.buddycloud.channelserver.packetHandler.iq.IQTestHandler;
7+
import org.buddycloud.channelserver.pubsub.affiliation.Affiliations;
8+
import org.buddycloud.channelserver.pubsub.model.NodeSubscription;
9+
import org.dom4j.Element;
10+
import org.dom4j.tree.BaseElement;
11+
import org.junit.Before;
12+
import org.junit.Test;
13+
import org.mockito.Mockito;
14+
import org.xmpp.packet.IQ;
15+
import org.xmpp.packet.JID;
16+
17+
public class ConfigurationTest extends IQTestHandler {
18+
19+
private IQ resultWithNode;
20+
private IQ resultNoNode;
21+
private Configuration confResult;
22+
private Element element;
23+
24+
private String node = "/user/pamela@denmark.lit/posts";
25+
private JID jid = new JID("juliet@shakespeare.lit");
26+
private ChannelManager channelManager;
27+
28+
@Before
29+
public void setUp() throws Exception {
30+
31+
channelManager = Mockito.mock(ChannelManager.class);
32+
33+
confResult = new Configuration(channelManager);
34+
resultWithNode = readStanzaAsIq("/iq/pubsub/subscriptions/reply-with-node.stanza");
35+
resultNoNode = readStanzaAsIq("/iq/pubsub/subscriptions/reply-no-node.stanza");
36+
37+
element = new BaseElement("configure");
38+
element.addAttribute("node", node);
39+
40+
confResult.setChannelManager(channelManager);
41+
}
42+
43+
@Test
44+
public void testPassingConfigureAsElementNameReturnsTrue() {
45+
Assert.assertTrue(confResult.accept(element));
46+
}
47+
48+
@Test
49+
public void testPassingNotConfigureAsElementNameReturnsFalse() {
50+
Element element = new BaseElement("not-configure");
51+
Assert.assertFalse(confResult.accept(element));
52+
}
53+
}

0 commit comments

Comments
 (0)