/** * This wraps the {@link SimpleJmsListenerEndpoint#getMessageListener()} delegate in a * new span. */ SimpleJmsListenerEndpoint trace(SimpleJmsListenerEndpoint source) { MessageListener delegate = source.getMessageListener(); if (delegate == null) return source; source.setMessageListener(this.jmsTracing.messageListener(delegate, false)); return source; }
private JmsListenerEndpoint createDummyEndpoint() { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setMessageListener(new MessageListenerAdapter()); endpoint.setDestination("testQueue"); return endpoint; }
@Test public void setupMessageContainerUnsupportedContainer() { MessageListenerContainer container = mock(MessageListenerContainer.class); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setMessageListener(new MessageListenerAdapter()); thrown.expect(IllegalArgumentException.class); endpoint.setupListenerContainer(container); }
@Override public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId("myCustomEndpointId"); endpoint.setDestination("myQueue"); endpoint.setMessageListener(messageListener); registrar.registerEndpoint(endpoint); }
@Test public void createListener() { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); assertSame(messageListener, endpoint.createMessageListener(container)); }
@Override public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) { registrar.setEndpointRegistry(customRegistry()); // Also register a custom endpoint SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId("myCustomEndpointId"); endpoint.setDestination("myQueue"); endpoint.setMessageListener(simpleMessageListener()); registrar.registerEndpoint(endpoint); }
@Test public void setupConcurrencySimpleContainer() { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); MessageListener messageListener = new MessageListenerAdapter(); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setConcurrency("5-10"); // simple implementation only support max value endpoint.setMessageListener(messageListener); endpoint.setupListenerContainer(container); assertEquals(10, new DirectFieldAccessor(container).getPropertyValue("concurrentConsumers")); }
@Test public void jcaExclusiveProperties() { DefaultJcaListenerContainerFactory factory = new DefaultJcaListenerContainerFactory(); factory.setDestinationResolver(this.destinationResolver); factory.setActivationSpecFactory(new StubJmsActivationSpecFactory()); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setMessageListener(new MessageListenerAdapter()); this.thrown.expect(IllegalStateException.class); factory.createListenerContainer(endpoint); }
@Test public void createSimpleContainer() { SimpleJmsListenerContainerFactory factory = new SimpleJmsListenerContainerFactory(); setDefaultJmsConfig(factory); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); endpoint.setDestination("myQueue"); SimpleMessageListenerContainer container = factory.createListenerContainer(endpoint); assertDefaultJmsConfig(container); assertEquals(messageListener, container.getMessageListener()); assertEquals("myQueue", container.getDestinationName()); }
@Test public void backOffOverridesRecoveryInterval() { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); BackOff backOff = new FixedBackOff(); factory.setBackOff(backOff); factory.setRecoveryInterval(2000L); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); endpoint.setDestination("myQueue"); DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint); assertSame(backOff, new DirectFieldAccessor(container).getPropertyValue("backOff")); }
@Test public void endpointConcurrencyTakesPrecedence() { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConcurrency("2-10"); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); endpoint.setDestination("myQueue"); endpoint.setConcurrency("4-6"); DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint); assertEquals(4, container.getConcurrentConsumers()); assertEquals(6, container.getMaxConcurrentConsumers()); }
@Test public void createJcaContainerFullConfig() { DefaultJcaListenerContainerFactory factory = new DefaultJcaListenerContainerFactory(); setDefaultJcaConfig(factory); factory.setConcurrency("10"); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); endpoint.setDestination("myQueue"); JmsMessageEndpointManager container = factory.createListenerContainer(endpoint); assertDefaultJcaConfig(container); assertEquals(10, container.getActivationSpecConfig().getMaxConcurrency()); assertEquals(messageListener, container.getMessageListener()); assertEquals("myQueue", container.getActivationSpecConfig().getDestinationName()); }
@Test public void setupJcaMessageContainerFullConfig() { JmsMessageEndpointManager container = new JmsMessageEndpointManager(); MessageListener messageListener = new MessageListenerAdapter(); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setDestination("myQueue"); endpoint.setSelector("foo = 'bar'"); endpoint.setSubscription("mySubscription"); endpoint.setConcurrency("10"); endpoint.setMessageListener(messageListener); endpoint.setupListenerContainer(container); JmsActivationSpecConfig config = container.getActivationSpecConfig(); assertEquals("myQueue", config.getDestinationName()); assertEquals("foo = 'bar'", config.getMessageSelector()); assertEquals("mySubscription", config.getSubscriptionName()); assertEquals(10, config.getMaxConcurrency()); assertEquals(messageListener, container.getMessageListener()); }
@Test public void setupJmsMessageContainerFullConfig() { DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); MessageListener messageListener = new MessageListenerAdapter(); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setDestination("myQueue"); endpoint.setSelector("foo = 'bar'"); endpoint.setSubscription("mySubscription"); endpoint.setConcurrency("5-10"); endpoint.setMessageListener(messageListener); endpoint.setupListenerContainer(container); assertEquals("myQueue", container.getDestinationName()); assertEquals("foo = 'bar'", container.getMessageSelector()); assertEquals("mySubscription", container.getSubscriptionName()); assertEquals(5, container.getConcurrentConsumers()); assertEquals(10, container.getMaxConcurrentConsumers()); assertEquals(messageListener, container.getMessageListener()); }
@Test public void createJmsContainerFullConfig() { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); setDefaultJmsConfig(factory); factory.setCacheLevel(DefaultMessageListenerContainer.CACHE_CONSUMER); factory.setConcurrency("3-10"); factory.setMaxMessagesPerTask(5); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); endpoint.setDestination("myQueue"); DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint); assertDefaultJmsConfig(container); assertEquals(DefaultMessageListenerContainer.CACHE_CONSUMER, container.getCacheLevel()); assertEquals(3, container.getConcurrentConsumers()); assertEquals(10, container.getMaxConcurrentConsumers()); assertEquals(5, container.getMaxMessagesPerTask()); assertEquals(messageListener, container.getMessageListener()); assertEquals("myQueue", container.getDestinationName()); }
/** * This wraps the {@link SimpleJmsListenerEndpoint#getMessageListener()} delegate in a * new span. */ SimpleJmsListenerEndpoint trace(SimpleJmsListenerEndpoint source) { MessageListener delegate = source.getMessageListener(); if (delegate == null) return source; source.setMessageListener(this.jmsTracing.messageListener(delegate, false)); return source; }
private void registerListenerEndpoint(JmsListenerEndpointRegistrar aRegistrar, String aQueueName, int aConcurrency, Object aDelegate, String aMethodName) { logger.info("Registring JMS Listener: {} -> {}:{}", aQueueName, aDelegate.getClass().getName(), aMethodName); MessageListenerAdapter messageListener = new NoReplyMessageListenerAdapter(aDelegate); messageListener.setMessageConverter(jacksonJmsMessageConverter(objectMapper)); messageListener.setDefaultListenerMethod(aMethodName); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId(aQueueName+"Endpoint"); endpoint.setDestination(aQueueName); endpoint.setMessageListener(messageListener); aRegistrar.registerEndpoint(endpoint,createContainerFactory(aConcurrency)); }