Skip to content

Commit 9de5be1

Browse files
committed
Some more rsm stuff working. Not there yet though
1 parent d1788c4 commit 9de5be1

3 files changed

Lines changed: 27 additions & 21 deletions

File tree

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

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,21 @@ private void addRecentItems() throws NodeStoreException {
142142
try {
143143
entry = xmlReader.read(new StringReader(item.getPayload()))
144144
.getRootElement();
145+
146+
Element entryIdEl = entry.element("id");
147+
148+
String itemId = item.getId();
149+
150+
if(entryIdEl != null) {
151+
itemId = entryIdEl.getTextTrim();
152+
}
153+
145154
itemElement = itemsElement.addElement("item");
146-
itemElement.addAttribute("id", item.getId());
155+
itemElement.addAttribute("id", itemId);
156+
147157
if (null == firstItemId)
148-
firstItemId = item.getId();
149-
lastItemId = item.getId();
158+
firstItemId = itemId;
159+
lastItemId = itemId;
150160
itemElement.add(entry);
151161
} catch (DocumentException e) {
152162
logger.error("Error parsing a node entry, ignoring. "

src/test/java/org/buddycloud/channelserver/db/jdbc/JDBCNodeStoreTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1565,25 +1565,25 @@ public void testGetRecentItemsCanBePaged() throws Exception {
15651565
store.addUserSubscription(new NodeSubscriptionImpl(
15661566
TEST_SERVER1_NODE2_ID, TEST_SERVER1_USER1_JID,
15671567
Subscriptions.subscribed));
1568+
1569+
long now = System.currentTimeMillis();
15681570

15691571
NodeItem nodeItem1 = new NodeItemImpl(TEST_SERVER1_NODE1_ID, "123",
1570-
new Date(System.currentTimeMillis() - 400), "payload");
1572+
new Date(now - 400), "<entry><id>123</id></entry>");
15711573
store.addNodeItem(nodeItem1);
15721574

15731575
NodeItem nodeItem2 = new NodeItemImpl(TEST_SERVER1_NODE2_ID, "123",
1574-
new Date(System.currentTimeMillis() - 400), "payload2");
1576+
new Date(now - 400), "<entry><id>123</id></entry>");
15751577
store.addNodeItem(nodeItem2);
15761578

15771579
NodeItem nodeItem3 = new NodeItemImpl(TEST_SERVER1_NODE2_ID, "124",
1578-
new Date(System.currentTimeMillis() - 300), "payload3");
1580+
new Date(now - 300), "<entry><id>124</id></entry>");
15791581
store.addNodeItem(nodeItem3);
15801582

15811583
NodeItem nodeItem4 = new NodeItemImpl(TEST_SERVER1_NODE1_ID, "124",
1582-
new Date(System.currentTimeMillis() - 200), "payload3");
1584+
new Date(now - 200), "<entry><id>124</id></entry>");
15831585
store.addNodeItem(nodeItem4);
15841586

1585-
Thread.sleep(20);
1586-
15871587
CloseableIterator<NodeItem> items = store.getRecentItems(
15881588
TEST_SERVER1_USER1_JID, since, -1, 2, new GlobalItemIDImpl(TEST_SERVER1_CHANNELS_JID, TEST_SERVER1_NODE1_ID, "124"), null);
15891589

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get/RecentItemsGetTest.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ public class RecentItemsGetTest extends IQTestHandler {
5656
private String TEST_NODE_1 = "node1";
5757
private String TEST_NODE_2 = "node2";
5858

59-
private JID TEST_JID_1 = new JID("user1@server1");
60-
private JID TEST_JID_2 = new JID("user2@server1");
61-
6259
@Before
6360
public void setUp() throws Exception {
6461

@@ -316,13 +313,12 @@ public void testCanControlGatheredEntriesUsingRsm() throws Exception {
316313
Assert.assertEquals("node1:2", rsmResult.element("last").getText());
317314
}
318315

316+
@SuppressWarnings("serial")
319317
@Test
320318
public void testPagingAfterItem() throws Exception {
321319
Element rsm = new BaseElement(new QName("set", new Namespace("", "http://jabber.org/protocol/rsm")));
322320

323321
GlobalItemID itemID = new GlobalItemIDImpl(new JID("capulet.lit"), "/user/juliet@capulet.lit/posts", "item1");
324-
GlobalItemID itemID2 = new GlobalItemIDImpl(new JID("montague.lit"), "/user/romeo@capulet.lit/posts", "item1");
325-
GlobalItemID itemID3 = new GlobalItemIDImpl(new JID("capulet.lit"), "/user/juliet@capulet.lit/posts", "item2");
326322

327323
rsm.addElement("after").setText(itemID.toString());
328324
rsm.addElement("max").setText("5");
@@ -337,20 +333,20 @@ public void testPagingAfterItem() throws Exception {
337333
new NodeAffiliationImpl(node, jid, Affiliations.member, new Date()));
338334

339335
ArrayList<NodeItem> results = new ArrayList<NodeItem>() {{
340-
add(new NodeItemImpl(TEST_NODE_1, "1", new Date(), "payload1"));
341-
add(new NodeItemImpl(TEST_NODE_2, "1", new Date(), "payload2"));
336+
add(new NodeItemImpl(TEST_NODE_1, "1", new Date(System.currentTimeMillis()), "<entry><id>entry1</id></entry>"));
337+
add(new NodeItemImpl(TEST_NODE_2, "1", new Date(System.currentTimeMillis() - 100), "<entry><id>entry2</id></entry>"));
342338
}};
343339

344340
Mockito.when(
345341
channelManager.getRecentItems(Mockito.any(JID.class),
346342
Mockito.any(Date.class), Mockito.anyInt(),
347343
Mockito.anyInt(), Mockito.any(GlobalItemID.class),
348344
Mockito.anyString())).thenReturn(
349-
new ClosableIteratorImpl<NodeItem>(new ArrayList<NodeItem>().iterator()));
345+
new ClosableIteratorImpl<NodeItem>(results.iterator()));
350346
Mockito.when(
351347
channelManager.getCountRecentItems(Mockito.any(JID.class),
352348
Mockito.any(Date.class), Mockito.anyInt(),
353-
Mockito.anyString())).thenReturn(0);
349+
Mockito.anyString())).thenReturn(100);
354350

355351
recentItemsGet.process(element, jid, request, rsm);
356352

@@ -361,9 +357,9 @@ public void testPagingAfterItem() throws Exception {
361357
// Check the response has a valid rsm element
362358
Element rsmOut = p.getElement().element("pubsub").element("set");
363359

364-
assertEquals("Unexpected count returned", rsmOut.element("count").getText(), "2");
365-
assertEquals("Unexpected first returned", rsmOut.element("first").getText(), new GlobalItemIDImpl(new JID(""), nodeID, itemID));
366-
assertEquals("Unexpected last returned", rsmOut.element("last").getText(), "2");
360+
assertEquals("Unexpected count returned", "100", rsmOut.element("count").getText());
361+
assertEquals("Unexpected first returned", "entry1", rsmOut.element("first").getText());
362+
assertEquals("Unexpected last returned", "entry2", rsmOut.element("last").getText());
367363
}
368364

369365
@Test

0 commit comments

Comments
 (0)