diff --git a/activemq-camel/src/main/java/org/apache/activemq/camel/converter/IdentityMessageReuseConverter.java b/activemq-camel/src/main/java/org/apache/activemq/camel/converter/IdentityMessageReuseConverter.java deleted file mode 100644 index bb3194ccc9..0000000000 --- a/activemq-camel/src/main/java/org/apache/activemq/camel/converter/IdentityMessageReuseConverter.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.apache.activemq.camel.converter; - -import javax.jms.JMSException; -import javax.jms.Message; -import javax.jms.Session; - -import org.apache.activemq.command.ActiveMQMessage; -import org.springframework.jms.support.converter.MessageConversionException; -import org.springframework.jms.support.converter.MessageConverter; -import org.springframework.util.ObjectUtils; - -/** - * Identity conversion, return the original ActiveMQMessage as is, useful when camel does message - * redelivery routing. ReadOnlyPropertes flag inverted to allow - * additional properties to be appended or existing properties to be modified - */ -public class IdentityMessageReuseConverter implements MessageConverter { - - /* (non-Javadoc) - * @see org.springframework.jms.support.converter.MessageConverter#fromMessage(javax.jms.Message) - */ - public Object fromMessage(Message message) throws JMSException, MessageConversionException { - return message; - } - - /* (non-Javadoc) - * @see org.springframework.jms.support.converter.MessageConverter#toMessage(java.lang.Object, javax.jms.Session) - */ - public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { - if (object instanceof ActiveMQMessage) { - // allow setting additional properties - ((ActiveMQMessage)object).setReadOnlyProperties(false); - return (Message)object; - } else { - throw new MessageConversionException("Cannot reuse object of type [" + - ObjectUtils.nullSafeClassName(object) + "] as ActiveMQMessage message. Message must already be an ActiveMQMessage."); - } - } -} diff --git a/activemq-camel/src/test/java/org/apache/activemq/camel/CamelRedeliveryTest.java b/activemq-camel/src/test/java/org/apache/activemq/camel/CamelRedeliveryTest.java deleted file mode 100644 index a272766682..0000000000 --- a/activemq-camel/src/test/java/org/apache/activemq/camel/CamelRedeliveryTest.java +++ /dev/null @@ -1,109 +0,0 @@ -/** - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.apache.activemq.camel; - -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Session; -import javax.jms.TextMessage; - -import org.apache.activemq.ActiveMQConnection; -import org.apache.activemq.ActiveMQConnectionFactory; -import org.apache.activemq.RedeliveryPolicy; -import org.apache.activemq.command.ActiveMQDestination; -import org.apache.activemq.command.ActiveMQMessage; -import org.apache.activemq.command.ActiveMQQueue; -import org.apache.camel.CamelContext; -import org.apache.camel.Handler; -import org.apache.camel.RecipientList; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import static org.junit.Assert.*; - -/** - * - */ -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class CamelRedeliveryTest { - private static final transient Logger LOG = LoggerFactory.getLogger(CamelRedeliveryTest.class); - - @Autowired - protected CamelContext camelContext; - - @Autowired - protected ApplicationContext applicationContext; - - @Test - public void testRedeliveryViaCamel() throws Exception { - - - ActiveMQConnectionFactory factory = applicationContext.getBean("connectionFactory", ActiveMQConnectionFactory.class); - ActiveMQConnection connection = (ActiveMQConnection) factory.createConnection(); - - // send message to dlq immediately - RedeliveryPolicy policy = connection.getRedeliveryPolicy(); - policy.setMaximumRedeliveries(0); - connection.start(); - - Session session = connection.createSession(true, Session.SESSION_TRANSACTED); - ActiveMQQueue destination = new ActiveMQQueue("camelRedeliveryQ"); - MessageProducer producer = session.createProducer(destination); - - MessageConsumer consumer = session.createConsumer(destination); - // Send the messages - producer.send(session.createTextMessage("1st")); - session.commit(); - LOG.info("sent 1st message"); - - TextMessage m; - m = (TextMessage)consumer.receive(1000); - assertNotNull(m); - assertEquals("1st", m.getText()); - session.rollback(); - - LOG.info("received and rolledback 1st message: " + m); - m = (TextMessage)consumer.receive(1); - assertNull("no immediate redelivery", m); - - m = (TextMessage)consumer.receive(20000); - LOG.info("received redelivery on second wait attempt, message: " + m); - - assertNotNull("got redelivery on second attempt", m); - assertEquals("text matches original", "1st", m.getText()); - - // came from camel - assertTrue("redelivery marker header set, so came from camel", m.getBooleanProperty("CamelRedeliveryMarker")); - } - - public static class DestinationExtractor { - - @RecipientList @Handler - public String routeTo(ActiveMQMessage body) throws Exception { - ActiveMQDestination originalDestination = body.getOriginalDestination(); - return "activemq:" + originalDestination.getPhysicalName() + "?explicitQosEnabled=true&messageConverter=#messageConverter"; - } - } -} diff --git a/activemq-camel/src/test/resources/org/apache/activemq/camel/CamelRedeliveryTest-context.xml b/activemq-camel/src/test/resources/org/apache/activemq/camel/CamelRedeliveryTest-context.xml deleted file mode 100644 index 4bef8ac4ab..0000000000 --- a/activemq-camel/src/test/resources/org/apache/activemq/camel/CamelRedeliveryTest-context.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - true - - 1000 - - - - - - - - - - - - - - - -