@Override public void init() { registerBeanDefinitionParser("listener-container", new JmsListenerContainerParser()); registerBeanDefinitionParser("jca-listener-container", new JcaListenerContainerParser()); registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenJmsBeanDefinitionParser()); }
@Override public void setupListenerContainer(MessageListenerContainer listenerContainer) { if (listenerContainer instanceof AbstractMessageListenerContainer) { setupJmsListenerContainer((AbstractMessageListenerContainer) listenerContainer); } else { new JcaEndpointConfigurer().configureEndpoint(listenerContainer); } }
/** * Register a new {@link JmsListenerEndpoint} using the default * {@link JmsListenerContainerFactory} to create the underlying container. * @see #setContainerFactory(JmsListenerContainerFactory) * @see #registerEndpoint(JmsListenerEndpoint, JmsListenerContainerFactory) */ public void registerEndpoint(JmsListenerEndpoint endpoint) { registerEndpoint(endpoint, null); }
@Override public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId("myCustomEndpointId"); endpoint.setDestination("myQueue"); endpoint.setMessageListener(messageListener); registrar.registerEndpoint(endpoint); }
private MessagingMessageListenerAdapter createInstance( DefaultMessageHandlerMethodFactory factory, Method method, MessageListenerContainer container) { MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint(); endpoint.setBean(this.sample); endpoint.setMethod(method); endpoint.setMessageHandlerMethodFactory(factory); return endpoint.createMessageListener(container); }
@Test public void registerEmptyEndpointId() { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId(""); this.thrown.expect(IllegalArgumentException.class); this.registrar.registerEndpoint(endpoint, this.containerFactory); }
protected void registerAllEndpoints() { Assert.state(this.endpointRegistry != null, "No JmsListenerEndpointRegistry set"); synchronized (this.mutex) { for (JmsListenerEndpointDescriptor descriptor : this.endpointDescriptors) { this.endpointRegistry.registerListenerContainer( descriptor.endpoint, resolveContainerFactory(descriptor)); } this.startImmediately = true; // trigger immediate startup } }
private SimpleJmsListenerEndpoint createEndpoint(String id, String destinationName) { SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint(); endpoint.setId(id); endpoint.setDestination(destinationName); return endpoint; }
@Test public void messageConverterUsedIfSet() throws JMSException { this.containerFactory.setMessageConverter(new UpperCaseMessageConverter()); testMessageConverterIsUsed(); }
@Override public void start() { for (MessageListenerContainer listenerContainer : getListenerContainers()) { startIfNecessary(listenerContainer); } }
/** * Create a message listener container for the given {@link JmsListenerEndpoint}. * <p>This create the necessary infrastructure to honor that endpoint * with regards to its configuration. * @param endpoint the endpoint to add * @param factory the listener factory to use * @see #registerListenerContainer(JmsListenerEndpoint, JmsListenerContainerFactory, boolean) */ public void registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory) { registerListenerContainer(endpoint, factory, false); }
@Override public MessageListenerTestContainer createListenerContainer(JmsListenerEndpoint endpoint) { MessageListenerTestContainer container = new MessageListenerTestContainer(endpoint); container.setAutoStartup(this.autoStartup); this.listenerContainers.put(endpoint.getId(), container); return container; }
/** * Instantiate an empty {@link MethodJmsListenerEndpoint} for further * configuration with provided parameters in {@link #processJmsListener}. * @return a new {@code MethodJmsListenerEndpoint} or subclass thereof * @since 4.1.9 * @see MethodJmsListenerEndpoint#createMessageListenerInstance() */ protected MethodJmsListenerEndpoint createMethodJmsListenerEndpoint() { return new MethodJmsListenerEndpoint(); }
@Override public void afterPropertiesSet() { registerAllEndpoints(); }
private MessagingMessageListenerAdapter createDefaultInstance(Class<?>... parameterTypes) { return createInstance(this.factory, getDefaultListenerMethod(parameterTypes)); }
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain) throws JMSException { processAndReplyWithSendTo(listener, replyDestinationName, pubSubDomain, null); }
@Override public boolean isReplyPubSubDomain() { return isPubSubDomain(); }
@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); }
private MethodJmsListenerEndpoint createMethodJmsEndpoint(DefaultMessageHandlerMethodFactory factory, Method method) { MethodJmsListenerEndpoint endpoint = new MethodJmsListenerEndpoint(); endpoint.setBean(listener); endpoint.setMethod(method); endpoint.setMessageHandlerMethodFactory(factory); return endpoint; }
@Test public void messagingMessageConverterCanBeUsed() throws JMSException { MessagingMessageConverter converter = new MessagingMessageConverter(); converter.setPayloadConverter(new UpperCaseMessageConverter()); this.containerFactory.setMessageConverter(converter); testMessageConverterIsUsed(); }