@Override @Nullable public MessageConverter getMessageConverter() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.getMessageConverter(); } return null; }
@Override @Nullable public QosSettings getReplyQosSettings() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.getReplyQosSettings(); } throw new IllegalStateException("Could not determine reply qosSettings - no activation spec config is set"); } }
@Override public boolean isPubSubDomain() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.isPubSubDomain(); } throw new IllegalStateException("Could not determine pubSubDomain - no activation spec config is set"); }
@Override public boolean isReplyPubSubDomain() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.isReplyPubSubDomain(); } throw new IllegalStateException("Could not determine reply pubSubDomain - no activation spec config is set"); }
@Test public void testJcaContainerFactoryConfiguration() { Map<String, DefaultJcaListenerContainerFactory> containers = context.getBeansOfType(DefaultJcaListenerContainerFactory.class); DefaultJcaListenerContainerFactory factory = containers.get("testJcaFactory"); assertNotNull("No factory registered with testJcaFactory id", factory); JmsMessageEndpointManager container = factory.createListenerContainer(createDummyEndpoint()); assertEquals("explicit resource adapter not set", context.getBean("testResourceAdapter"),container.getResourceAdapter()); assertEquals("explicit message converter not set", context.getBean("testMessageConverter"), container.getActivationSpecConfig().getMessageConverter()); assertEquals("Wrong pub/sub", true, container.isPubSubDomain()); assertEquals("wrong concurrency", 5, container.getActivationSpecConfig().getMaxConcurrency()); assertEquals("Wrong prefetch", 50, container.getActivationSpecConfig().getPrefetchSize()); assertEquals("Wrong phase", 77, container.getPhase()); }
private void setupJcaMessageContainer(JmsMessageEndpointManager container) { JmsActivationSpecConfig activationSpecConfig = container.getActivationSpecConfig(); if (activationSpecConfig == null) { activationSpecConfig = new JmsActivationSpecConfig(); container.setActivationSpecConfig(activationSpecConfig); } if (getDestination() != null) { activationSpecConfig.setDestinationName(getDestination()); } if (getSubscription() != null) { activationSpecConfig.setSubscriptionName(getSubscription()); } if (getSelector() != null) { activationSpecConfig.setMessageSelector(getSelector()); } if (getConcurrency() != null) { activationSpecConfig.setConcurrency(getConcurrency()); } setupMessageListener(container); } }
@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 testConcurrency() { // JMS DefaultMessageListenerContainer listener0 = this.context .getBean(DefaultMessageListenerContainer.class.getName() + "#0", DefaultMessageListenerContainer.class); DefaultMessageListenerContainer listener1 = this.context .getBean("listener1", DefaultMessageListenerContainer.class); DefaultMessageListenerContainer listener2 = this.context .getBean("listener2", DefaultMessageListenerContainer.class); assertEquals("Wrong concurrency on listener using placeholder", 2, listener0.getConcurrentConsumers()); assertEquals("Wrong concurrency on listener using placeholder", 3, listener0.getMaxConcurrentConsumers()); assertEquals("Wrong concurrency on listener1", 3, listener1.getConcurrentConsumers()); assertEquals("Wrong max concurrency on listener1", 5, listener1.getMaxConcurrentConsumers()); assertEquals("Wrong custom concurrency on listener2", 5, listener2.getConcurrentConsumers()); assertEquals("Wrong custom max concurrency on listener2", 10, listener2.getMaxConcurrentConsumers()); // JCA JmsMessageEndpointManager listener3 = this.context .getBean("listener3", JmsMessageEndpointManager.class); JmsMessageEndpointManager listener4 = this.context .getBean("listener4", JmsMessageEndpointManager.class); assertEquals("Wrong concurrency on listener3", 5, listener3.getActivationSpecConfig().getMaxConcurrency()); assertEquals("Wrong custom concurrency on listener4", 7, listener4.getActivationSpecConfig().getMaxConcurrency()); }
private void assertDefaultJcaConfig(JmsMessageEndpointManager container) { assertEquals(this.messageConverter, container.getMessageConverter()); assertEquals(this.destinationResolver, container.getDestinationResolver()); JmsActivationSpecConfig config = container.getActivationSpecConfig(); assertNotNull(config); assertEquals(Session.DUPS_OK_ACKNOWLEDGE, config.getAcknowledgeMode()); assertEquals(true, config.isPubSubDomain()); assertEquals(new QosSettings(1, 7, 5000), container.getReplyQosSettings()); assertEquals(true, config.isSubscriptionDurable()); assertEquals("client-1234", config.getClientId()); }
@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()); }
@Override public boolean isPubSubDomain() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.isPubSubDomain(); } throw new IllegalStateException("Could not determine pubSubDomain - no activation spec config is set"); }
@Override public boolean isPubSubDomain() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.isPubSubDomain(); } throw new IllegalStateException("Could not determine pubSubDomain - no activation spec config is set"); }
@Override @Nullable public MessageConverter getMessageConverter() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.getMessageConverter(); } return null; }
@Override public boolean isReplyPubSubDomain() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.isReplyPubSubDomain(); } throw new IllegalStateException("Could not determine reply pubSubDomain - no activation spec config is set"); }
@Override public boolean isReplyPubSubDomain() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.isReplyPubSubDomain(); } throw new IllegalStateException("Could not determine reply pubSubDomain - no activation spec config is set"); }
@Override @Nullable public QosSettings getReplyQosSettings() { JmsActivationSpecConfig config = getActivationSpecConfig(); if (config != null) { return config.getReplyQosSettings(); } throw new IllegalStateException("Could not determine reply qosSettings - no activation spec config is set"); } }
private void setupJcaMessageContainer(JmsMessageEndpointManager container) { JmsActivationSpecConfig activationSpecConfig = container.getActivationSpecConfig(); if (activationSpecConfig == null) { activationSpecConfig = new JmsActivationSpecConfig(); container.setActivationSpecConfig(activationSpecConfig); } if (getDestination() != null) { activationSpecConfig.setDestinationName(getDestination()); } if (getSubscription() != null) { activationSpecConfig.setSubscriptionName(getSubscription()); } if (getSelector() != null) { activationSpecConfig.setMessageSelector(getSelector()); } if (getConcurrency() != null) { activationSpecConfig.setConcurrency(getConcurrency()); } setupMessageListener(container); } }
private void setupJcaMessageContainer(JmsMessageEndpointManager container) { JmsActivationSpecConfig activationSpecConfig = container.getActivationSpecConfig(); if (activationSpecConfig == null) { activationSpecConfig = new JmsActivationSpecConfig(); container.setActivationSpecConfig(activationSpecConfig); } if (getDestination() != null) { activationSpecConfig.setDestinationName(getDestination()); } if (getSubscription() != null) { activationSpecConfig.setSubscriptionName(getSubscription()); } if (getSelector() != null) { activationSpecConfig.setMessageSelector(getSelector()); } if (getConcurrency() != null) { activationSpecConfig.setConcurrency(getConcurrency()); } setupMessageListener(container); } }