@Test public void customCacheLimit() { ApplicationContext context = loadConfig(CustomConfig.class); SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class); DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) broker.getSubscriptionRegistry(); assertEquals(8192, registry.getCacheLimit()); }
@Test public void customPathMatcher() { ApplicationContext context = loadConfig(CustomConfig.class); SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class); DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) broker.getSubscriptionRegistry(); assertEquals("a.a", registry.getPathMatcher().combine("a", "a")); PathMatcher pathMatcher = context.getBean(SimpAnnotationMethodMessageHandler.class).getPathMatcher(); assertEquals("a.a", pathMatcher.combine("a", "a")); DefaultUserDestinationResolver resolver = context.getBean(DefaultUserDestinationResolver.class); assertNotNull(resolver); assertEquals(false, resolver.isRemoveLeadingSlash()); }
Collection<String> prefixes = brokerMessageHandler.getDestinationPrefixes(); assertEquals(Arrays.asList("/topic", "/queue"), new ArrayList<>(prefixes)); DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) brokerMessageHandler.getSubscriptionRegistry(); assertEquals("my-selector", registry.getSelectorHeaderName()); assertNotNull(brokerMessageHandler.getTaskScheduler());
private void waitForSubscribe(String destination) throws InterruptedException { SimpleBrokerMessageHandler serverBrokerMessageHandler = this.serverContext.getBean("simpleBrokerMessageHandler", SimpleBrokerMessageHandler.class); SubscriptionRegistry subscriptionRegistry = serverBrokerMessageHandler.getSubscriptionRegistry(); int n = 0; while (!containsDestination(destination, subscriptionRegistry) && n++ < 100) { Thread.sleep(100); } assertTrue("The subscription for the '" + destination + "' destination hasn't been registered", n < 100); }
private void waitForSubscribe(String destination) throws InterruptedException { SimpleBrokerMessageHandler serverBrokerMessageHandler = this.serverContext.getBean("simpleBrokerMessageHandler", SimpleBrokerMessageHandler.class); SubscriptionRegistry subscriptionRegistry = serverBrokerMessageHandler.getSubscriptionRegistry(); int n = 0; while (!containsDestination(destination, subscriptionRegistry) && n++ < 100) { Thread.sleep(100); } assertTrue("The subscription for the '" + destination + "' destination hasn't been registered", n < 100); }
private void waitForUnsubscribe(String destination) throws InterruptedException { SimpleBrokerMessageHandler serverBrokerMessageHandler = this.serverContext.getBean("simpleBrokerMessageHandler", SimpleBrokerMessageHandler.class); SubscriptionRegistry subscriptionRegistry = serverBrokerMessageHandler.getSubscriptionRegistry(); int n = 0; while (containsDestination(destination, subscriptionRegistry) && n++ < 100) { Thread.sleep(100); } assertTrue("The subscription for the '" + destination + "' destination hasn't been registered", n < 100); }
assertEquals("Hello Spring", receivedPayload); SubscriptionRegistry subscriptionRegistry = this.brokerHandler.getSubscriptionRegistry(); headers = StompHeaderAccessor.create(StompCommand.MESSAGE); headers.setDestination("/queue/foo");
@Autowired @Qualifier("simpleBrokerMessageHandler") public void onSimpleBrockedMessageChannel(AbstractBrokerMessageHandler handler) { // here we try to inherit matcher from subscription registry if (!(handler instanceof SimpleBrokerMessageHandler)) { return; } SubscriptionRegistry registry = ((SimpleBrokerMessageHandler) handler).getSubscriptionRegistry(); if (!(registry instanceof DefaultSubscriptionRegistry)) { return; } PathMatcher pathMatcher = ((DefaultSubscriptionRegistry) registry).getPathMatcher(); if(pathMatcher != null) { this.pathMatcher = pathMatcher; } }