/** * 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; }
@Override public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId("myCustomEndpointId"); endpoint.setDestination("myQueue"); endpoint.setMessageListener(messageListener); registrar.registerEndpoint(endpoint); }
private SimpleJmsListenerEndpoint createEndpoint(String id, String destinationName) { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId(id); endpoint.setDestination(destinationName); return endpoint; }
@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 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 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")); }
@Override protected MessageListener createMessageListener(MessageListenerContainer container) { MessageListener listener = getMessageListener(); Assert.state(listener != null, "No MessageListener set"); return listener; }
@Test public void setupMessageContainerUnsupportedContainer() { MessageListenerContainer container = mock(MessageListenerContainer.class); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setMessageListener(new MessageListenerAdapter()); thrown.expect(IllegalArgumentException.class); endpoint.setupListenerContainer(container); }
@Test public void createListener() { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); MessageListener messageListener = new MessageListenerAdapter(); endpoint.setMessageListener(messageListener); assertSame(messageListener, endpoint.createMessageListener(container)); }
@Test public void registerEmptyEndpointId() { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId(""); this.thrown.expect(IllegalArgumentException.class); this.registrar.registerEndpoint(endpoint, this.containerFactory); }
@Test public void registerNullContainerFactoryWithNoDefault() throws Exception { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId("some id"); this.registrar.registerEndpoint(endpoint, null); this.thrown.expect(IllegalStateException.class); this.thrown.expectMessage(endpoint.toString()); this.registrar.afterPropertiesSet(); }
@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 setupMessageContainerNoListener() { DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); thrown.expect(IllegalStateException.class); endpoint.setupListenerContainer(container); }
@Test public void createWithNullEndpointId() { thrown.expect(IllegalArgumentException.class); registry.registerListenerContainer(new SimpleJmsListenerEndpoint(), containerFactory); }
@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 for {@link CustomBean} and an manually endpoint registered * with "myCustomEndpointId". The custom endpoint does not provide * any factory so it's registered with the default one */ public void testCustomConfiguration(ApplicationContext context) { JmsListenerContainerTestFactory defaultFactory = context.getBean("jmsListenerContainerFactory", JmsListenerContainerTestFactory.class); JmsListenerContainerTestFactory customFactory = context.getBean("customFactory", JmsListenerContainerTestFactory.class); assertEquals(1, defaultFactory.getListenerContainers().size()); assertEquals(1, customFactory.getListenerContainers().size()); JmsListenerEndpoint endpoint = defaultFactory.getListenerContainers().get(0).getEndpoint(); assertEquals("Wrong endpoint type", SimpleJmsListenerEndpoint.class, endpoint.getClass()); assertEquals("Wrong listener set in custom endpoint", context.getBean("simpleMessageListener"), ((SimpleJmsListenerEndpoint) endpoint).getMessageListener()); JmsListenerEndpointRegistry customRegistry = context.getBean("customRegistry", JmsListenerEndpointRegistry.class); assertEquals("Wrong number of containers in the registry", 2, customRegistry.getListenerContainerIds().size()); assertEquals("Wrong number of containers in the registry", 2, customRegistry.getListenerContainers().size()); assertNotNull("Container with custom id on the annotation should be found", customRegistry.getListenerContainer("listenerId")); assertNotNull("Container created with custom id should be found", customRegistry.getListenerContainer("myCustomEndpointId")); }
@Test public void registerNullContainerFactoryIsAllowed() throws Exception { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId("some id"); this.registrar.setContainerFactory(this.containerFactory); this.registrar.registerEndpoint(endpoint, null); this.registrar.afterPropertiesSet(); assertNotNull("Container not created", this.registry.getListenerContainer("some id")); assertEquals(1, this.registry.getListenerContainers().size()); assertEquals("some id", this.registry.getListenerContainerIds().iterator().next()); }
@Test public void registerNullEndpointId() { this.thrown.expect(IllegalArgumentException.class); this.registrar.registerEndpoint(new SimpleJmsListenerEndpoint(), this.containerFactory); }
@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()); }