1 17 package org.apache.activemq.util; 18 19 import org.apache.activemq.broker.ConnectionContext; 20 import org.apache.activemq.broker.ProducerBrokerExchange; 21 import org.apache.activemq.command.ActiveMQDestination; 22 import org.apache.activemq.command.Message; 23 import org.apache.activemq.command.ProducerInfo; 24 import org.apache.activemq.state.ProducerState; 25 26 public class BrokerSupport { 27 28 34 static public void resend(final ConnectionContext context, Message message, ActiveMQDestination deadLetterDestination) throws Exception { 35 if(message.getOriginalDestination()!=null) 36 message.setOriginalDestination(message.getDestination()); 37 if(message.getOriginalTransactionId()!=null) 38 message.setOriginalTransactionId(message.getTransactionId()); 39 message.setDestination(deadLetterDestination); 40 message.setTransactionId(null); 41 boolean originalFlowControl=context.isProducerFlowControl(); 42 try{ 43 context.setProducerFlowControl(false); 44 ProducerInfo info = new ProducerInfo(); 45 ProducerState state = new ProducerState(info); 46 ProducerBrokerExchange producerExchange = new ProducerBrokerExchange(); 47 producerExchange.setProducerState(state); 48 producerExchange.setMutable(true); 49 producerExchange.setConnectionContext(context); 50 context.getBroker().send(producerExchange,message); 51 }finally{ 52 context.setProducerFlowControl(originalFlowControl); 53 } 54 } 55 56 } 57 | Popular Tags |