X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.activemq%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjms%2FJmsSlcEventPublisher.java;h=ad51bfc9cb82082f508e6263fa30e3c24a7e2caf;hb=856754d1c9381f2734f3583aba037efbbaaeab1d;hp=bcf13325cf666f28e1b436ce79adab00240baa5e;hpb=87efa1cdb79eeaf3f203cc9bf4f3d9f8d0a299f8;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsSlcEventPublisher.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsSlcEventPublisher.java index bcf13325c..ad51bfc9c 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsSlcEventPublisher.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsSlcEventPublisher.java @@ -1,21 +1,47 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.argeo.slc.jms; import java.util.Map; +import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.slc.SlcException; import org.argeo.slc.msg.event.SlcEvent; import org.argeo.slc.msg.event.SlcEventPublisher; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessagePostProcessor; public class JmsSlcEventPublisher implements SlcEventPublisher { + private static final Log log = LogFactory + .getLog(JmsSlcEventPublisher.class); private Destination eventsDestination; private JmsTemplate jmsTemplate; public void publish(final SlcEvent event) { + if (jmsTemplate.getDeliveryMode() != DeliveryMode.PERSISTENT) + throw new SlcException( + "Delivery mode has to be persistent in order to have durable subscription"); + jmsTemplate.convertAndSend(eventsDestination, event, new MessagePostProcessor() { @@ -28,17 +54,11 @@ public class JmsSlcEventPublisher implements SlcEventPublisher { return message; } }); - // jmsTemplate.send(eventsDestination, new MessageCreator() { - // public Message createMessage(Session session) throws JMSException { - // TextMessage msg = session.createTextMessage(); - // // TODO: remove workaround when upgrading to ActiveMQ 5.3 - // // Workaround for - // // https://issues.apache.org/activemq/browse/AMQ-2046 - // msg.setText(""); - // - // return msg; - // } - // }); + if (log.isTraceEnabled()) { + log.trace("Event " + event.toString() + " sent to " + + eventsDestination.toString()); + } + } public void setEventsDestination(Destination eventsDestination) {