Removed ChannelPublisher. MessageExchangeTemplate is sufficient.

This commit is contained in:
Mark Fisher
2008-07-30 23:32:27 +00:00
parent fa58dc9457
commit 3a99b96966
3 changed files with 21 additions and 86 deletions

View File

@@ -21,9 +21,9 @@ import java.util.List;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.integration.channel.ChannelPublisher;
import org.springframework.integration.channel.MessageChannel;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.MessageExchangeTemplate;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
@@ -33,13 +33,18 @@ import org.springframework.util.CollectionUtils;
*
* @author Mark Fisher
*/
public class ApplicationEventSource extends ChannelPublisher implements ApplicationListener {
public class ApplicationEventSource implements ApplicationListener {
private final MessageChannel channel;
private List<Class<? extends ApplicationEvent>> eventTypes = new ArrayList<Class<? extends ApplicationEvent>>();
private final MessageExchangeTemplate messageExchangeTemplate = new MessageExchangeTemplate();
public ApplicationEventSource(MessageChannel channel) {
super(channel);
Assert.notNull(channel, "channel must not be null");
this.channel = channel;
}
@@ -67,7 +72,8 @@ public class ApplicationEventSource extends ChannelPublisher implements Applicat
}
private boolean sendMessage(ApplicationEvent event) {
return this.publish(new GenericMessage<ApplicationEvent>(event));
return this.messageExchangeTemplate.send(
new GenericMessage<ApplicationEvent>(event), this.channel);
}
}

View File

@@ -18,12 +18,13 @@ package org.springframework.integration.adapter.jms;
import javax.jms.MessageListener;
import org.springframework.integration.channel.ChannelPublisher;
import org.springframework.integration.channel.MessageChannel;
import org.springframework.integration.message.Message;
import org.springframework.integration.message.MessageDeliveryException;
import org.springframework.integration.message.MessageExchangeTemplate;
import org.springframework.integration.message.MessagingException;
import org.springframework.jms.support.converter.MessageConverter;
import org.springframework.util.Assert;
/**
* JMS {@link MessageListener} implementation that converts the received JMS
@@ -31,13 +32,18 @@ import org.springframework.jms.support.converter.MessageConverter;
*
* @author Mark Fisher
*/
public class ChannelPublishingJmsListener extends ChannelPublisher implements MessageListener {
public class ChannelPublishingJmsListener implements MessageListener {
private final MessageChannel channel;
private final MessageConverter converter;
private final MessageExchangeTemplate messageExchangeTemplate = new MessageExchangeTemplate();
public ChannelPublishingJmsListener(MessageChannel channel, MessageConverter converter) {
super(channel);
Assert.notNull(channel, "channel must not be null");
this.channel = channel;
this.converter = (converter != null && converter instanceof HeaderMappingMessageConverter) ?
converter : new HeaderMappingMessageConverter(converter);
}
@@ -46,8 +52,8 @@ public class ChannelPublishingJmsListener extends ChannelPublisher implements Me
public void onMessage(javax.jms.Message jmsMessage) {
try {
Message<?> messageToSend = (Message<?>) this.converter.fromMessage(jmsMessage);
if (!this.publish(messageToSend)){
throw new MessageDeliveryException(messageToSend, "failed to send Message to channel: " + this.getChannel());
if (!this.messageExchangeTemplate.send(messageToSend, this.channel)) {
throw new MessageDeliveryException(messageToSend, "failed to send Message to channel: " + this.channel);
}
}
catch (Exception e) {