Add cache limit to DefaultSessionRegistry and polish
Issue: SPR-11657
This commit is contained in:
@@ -134,59 +134,53 @@ public class DefaultSubscriptionRegistryTests {
|
||||
// SPR-11657
|
||||
|
||||
@Test
|
||||
public void registerMultipleSubscriptionsWithOneUsingDestinationPattern() {
|
||||
public void registerSubscriptionsWithSimpleAndPatternDestinations() {
|
||||
|
||||
String sessId1 = "sess01";
|
||||
String sessId2 = "sess02";
|
||||
String sess1 = "sess01";
|
||||
String sess2 = "sess02";
|
||||
|
||||
String destPatternIbm = "/topic/PRICE.STOCK.*.IBM";
|
||||
String destNasdaqIbm = "/topic/PRICE.STOCK.NASDAQ.IBM";
|
||||
String destNyseIdm = "/topic/PRICE.STOCK.NYSE.IBM";
|
||||
String destNasdaqGoogle = "/topic/PRICE.STOCK.NASDAQ.GOOG";
|
||||
String subs1 = "subs01";
|
||||
String subs2 = "subs02";
|
||||
String subs3 = "subs03";
|
||||
|
||||
String sessId1ToDestPatternIbm = "subs01";
|
||||
String sessId1ToDestNasdaqIbm = "subs02";
|
||||
String sessId2TodestNasdaqIbm = "subs03";
|
||||
String sessId2ToDestNyseIdm = "subs04";
|
||||
String sessId2ToDestNasdaqGoogle = "subs05";
|
||||
this.registry.registerSubscription(subscribeMessage(sess1, subs2, "/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
this.registry.registerSubscription(subscribeMessage(sess1, subs1, "/topic/PRICE.STOCK.*.IBM"));
|
||||
MultiValueMap<String, String> actual = this.registry.findSubscriptions(message("/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
assertEquals(1, actual.size());
|
||||
assertEquals(Arrays.asList(subs2, subs1), actual.get(sess1));
|
||||
|
||||
this.registry.registerSubscription(subscribeMessage(sessId1, sessId1ToDestNasdaqIbm, destNasdaqIbm));
|
||||
this.registry.registerSubscription(subscribeMessage(sessId1, sessId1ToDestPatternIbm, destPatternIbm));
|
||||
MultiValueMap<String, String> actual = this.registry.findSubscriptions(message(destNasdaqIbm));
|
||||
assertEquals("Expected 1 elements " + actual, 1, actual.size());
|
||||
assertEquals(Arrays.asList(sessId1ToDestNasdaqIbm, sessId1ToDestPatternIbm), actual.get(sessId1));
|
||||
this.registry.registerSubscription(subscribeMessage(sess2, subs1, "/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
this.registry.registerSubscription(subscribeMessage(sess2, subs2, "/topic/PRICE.STOCK.NYSE.IBM"));
|
||||
this.registry.registerSubscription(subscribeMessage(sess2, subs3, "/topic/PRICE.STOCK.NASDAQ.GOOG"));
|
||||
actual = this.registry.findSubscriptions(message("/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
assertEquals(2, actual.size());
|
||||
assertEquals(Arrays.asList(subs2, subs1), actual.get(sess1));
|
||||
assertEquals(Arrays.asList(subs1), actual.get(sess2));
|
||||
|
||||
this.registry.registerSubscription(subscribeMessage(sessId2, sessId2TodestNasdaqIbm, destNasdaqIbm));
|
||||
this.registry.registerSubscription(subscribeMessage(sessId2, sessId2ToDestNyseIdm, destNyseIdm));
|
||||
this.registry.registerSubscription(subscribeMessage(sessId2, sessId2ToDestNasdaqGoogle, destNasdaqGoogle));
|
||||
actual = this.registry.findSubscriptions(message(destNasdaqIbm));
|
||||
assertEquals("Expected 2 elements " + actual, 2, actual.size());
|
||||
assertEquals(Arrays.asList(sessId1ToDestNasdaqIbm, sessId1ToDestPatternIbm), actual.get(sessId1));
|
||||
assertEquals(Arrays.asList(sessId2TodestNasdaqIbm), actual.get(sessId2));
|
||||
this.registry.unregisterAllSubscriptions(sess1);
|
||||
actual = this.registry.findSubscriptions(message("/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
assertEquals(1, actual.size());
|
||||
assertEquals(Arrays.asList(subs1), actual.get(sess2));
|
||||
|
||||
this.registry.unregisterAllSubscriptions(sessId1);
|
||||
actual = this.registry.findSubscriptions(message(destNasdaqIbm));
|
||||
assertEquals("Expected 1 elements " + actual, 1, actual.size());
|
||||
assertEquals(Arrays.asList(sessId2TodestNasdaqIbm), actual.get(sessId2));
|
||||
this.registry.registerSubscription(subscribeMessage(sess1, subs1, "/topic/PRICE.STOCK.*.IBM"));
|
||||
this.registry.registerSubscription(subscribeMessage(sess1, subs2, "/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
actual = this.registry.findSubscriptions(message("/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
assertEquals(2, actual.size());
|
||||
assertEquals(Arrays.asList(subs1, subs2), actual.get(sess1));
|
||||
assertEquals(Arrays.asList(subs1), actual.get(sess2));
|
||||
|
||||
this.registry.registerSubscription(subscribeMessage(sessId1, sessId1ToDestPatternIbm, destPatternIbm));
|
||||
this.registry.registerSubscription(subscribeMessage(sessId1, sessId1ToDestNasdaqIbm, destNasdaqIbm));
|
||||
actual = this.registry.findSubscriptions(message(destNasdaqIbm));
|
||||
assertEquals("Expected 2 elements " + actual, 2, actual.size());
|
||||
assertEquals(Arrays.asList(sessId1ToDestPatternIbm, sessId1ToDestNasdaqIbm), actual.get(sessId1));
|
||||
assertEquals(Arrays.asList(sessId2TodestNasdaqIbm), actual.get(sessId2));
|
||||
this.registry.unregisterSubscription(unsubscribeMessage(sess1, subs2));
|
||||
actual = this.registry.findSubscriptions(message("/topic/PRICE.STOCK.NASDAQ.IBM"));
|
||||
assertEquals(2, actual.size());
|
||||
assertEquals(Arrays.asList(subs1), actual.get(sess1));
|
||||
assertEquals(Arrays.asList(subs1), actual.get(sess2));
|
||||
|
||||
this.registry.unregisterSubscription(unsubscribeMessage(sessId1, sessId1ToDestNasdaqIbm));
|
||||
actual = this.registry.findSubscriptions(message(destNasdaqIbm));
|
||||
assertEquals("Expected 2 elements " + actual, 2, actual.size());
|
||||
assertEquals(Arrays.asList(sessId1ToDestPatternIbm), actual.get(sessId1));
|
||||
assertEquals(Arrays.asList(sessId2TodestNasdaqIbm), actual.get(sessId2));
|
||||
this.registry.unregisterSubscription(unsubscribeMessage(sessId1, sessId1ToDestPatternIbm));
|
||||
assertEquals("Expected 1 elements " + actual, 1, actual.size());
|
||||
assertEquals(Arrays.asList(sessId2TodestNasdaqIbm), actual.get(sessId2));
|
||||
this.registry.unregisterSubscription(unsubscribeMessage(sess1, subs1));
|
||||
assertEquals(1, actual.size());
|
||||
assertEquals(Arrays.asList(subs1), actual.get(sess2));
|
||||
|
||||
this.registry.unregisterSubscription(unsubscribeMessage(sessId2, sessId2TodestNasdaqIbm));
|
||||
assertEquals("Expected 0 element " + actual, 0, actual.size());
|
||||
this.registry.unregisterSubscription(unsubscribeMessage(sess2, subs1));
|
||||
assertEquals(0, actual.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user