Author: davsclaus Date: Mon Jul 27 04:58:33 2009 New Revision: 798024 URL: http://svn.apache.org/viewvc?rev=798024&view=rev Log: CAMEL-1853: ensuring JmsEndpoint and JmsBinding is always there when needed. Preparing for CAMEL-1853.
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java?rev=798024&r1=798023&r2=798024&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java Mon Jul 27 04:58:33 2009 @@ -137,8 +137,9 @@ public Exchange createExchange(Message message, Destination replyDestination) { Exchange exchange = new DefaultExchange(endpoint, endpoint.getExchangePattern()); - exchange.setProperty(Exchange.BINDING, getBinding()); - exchange.setIn(new JmsMessage(message)); + JmsBinding binding = getBinding(); + exchange.setProperty(Exchange.BINDING, binding); + exchange.setIn(new JmsMessage(message, binding)); // lets set to an InOut if we have some kind of reply-to destination if (replyDestination != null && !disableReplyTo) { Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=798024&r1=798023&r2=798024&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Mon Jul 27 04:58:33 2009 @@ -84,7 +84,8 @@ } public JmsEndpoint(String endpointUri, String destinationName, boolean pubSubDomain) { - this(endpointUri, new JmsBinding(), new JmsConfiguration(), destinationName, pubSubDomain); + this(endpointUri, null, new JmsConfiguration(), destinationName, pubSubDomain); + this.binding = new JmsBinding(this); } /** @@ -203,7 +204,7 @@ public Exchange createExchange(Message message) { Exchange exchange = createExchange(getExchangePattern()); - exchange.setIn(new JmsMessage(message)); + exchange.setIn(new JmsMessage(message, getBinding())); return exchange; } Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java?rev=798024&r1=798023&r2=798024&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java Mon Jul 27 04:58:33 2009 @@ -25,7 +25,7 @@ import javax.jms.Queue; import javax.jms.Topic; -import org.apache.camel.RuntimeCamelException; +import org.apache.camel.RuntimeExchangeException; import org.apache.camel.impl.DefaultMessage; import org.apache.camel.util.ExchangeHelper; import org.apache.commons.logging.Log; @@ -41,15 +41,8 @@ private Message jmsMessage; private JmsBinding binding; - public JmsMessage() { - } - - public JmsMessage(Message jmsMessage) { - setJmsMessage(jmsMessage); - } - public JmsMessage(Message jmsMessage, JmsBinding binding) { - this(jmsMessage); + setJmsMessage(jmsMessage); setBinding(binding); } @@ -90,8 +83,7 @@ public JmsBinding getBinding() { if (binding == null) { - JmsBinding b = ExchangeHelper.getBinding(getExchange(), JmsBinding.class); - return b != null ? b : new JmsBinding(); + binding = ExchangeHelper.getBinding(getExchange(), JmsBinding.class); } return binding; } @@ -101,10 +93,12 @@ } public void setJmsMessage(Message jmsMessage) { - try { - setMessageId(jmsMessage.getJMSMessageID()); - } catch (JMSException e) { - LOG.warn("Unable to retrieve JMSMessageID from JMS Message", e); + if (jmsMessage != null) { + try { + setMessageId(jmsMessage.getJMSMessageID()); + } catch (JMSException e) { + LOG.warn("Unable to retrieve JMSMessageID from JMS Message", e); + } } this.jmsMessage = jmsMessage; } @@ -118,7 +112,7 @@ try { answer = jmsMessage.getObjectProperty(name); } catch (JMSException e) { - throw new RuntimeCamelException(name, e); + throw new RuntimeExchangeException("Unable to retrieve header from JMS Message: " + name, getExchange(), e); } } if (answer == null) { @@ -138,7 +132,7 @@ answer = JmsMessageHelper.removeJmsProperty(jmsMessage, name); } } catch (JMSException e) { - throw new RuntimeCamelException(name, e); + throw new RuntimeExchangeException("Unable to remove header from JMS Message: " + name, getExchange(), e); } } @@ -147,7 +141,7 @@ @Override public JmsMessage newInstance() { - return new JmsMessage(); + return new JmsMessage(null, binding); } /** @@ -184,7 +178,7 @@ String id = getDestinationAsString(jmsMessage.getJMSDestination()) + jmsMessage.getJMSMessageID(); return getSanitizedString(id); } catch (JMSException e) { - throw new RuntimeCamelException("Failed to get JMSMessageID property", e); + throw new RuntimeExchangeException("Unable to retrieve JMSMessageID from JMS Message", getExchange(), e); } } @@ -210,10 +204,10 @@ try { return jmsMessage.getJMSMessageID(); } catch (JMSException e) { - throw new RuntimeCamelException("Failed to get JMSMessageID property", e); + throw new RuntimeExchangeException("Unable to retrieve JMSMessageID from JMS Message", getExchange(), e); } } return super.createExchangeId(); - } + }