Author: janstey Date: Tue Aug 2 18:04:51 2011 New Revision: 1153230 URL: http://svn.apache.org/viewvc?rev=1153230&view=rev Log: CAMEL-4297 - Add errorHandler option for DMLC to camel-jms
Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.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/reply/PersistentQueueReplyManager.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=1153230&r1=1153229&r2=1153230&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Tue Aug 2 18:04:51 2011 @@ -37,6 +37,7 @@ import org.springframework.jms.core.JmsO import org.springframework.jms.support.converter.MessageConverter; import org.springframework.jms.support.destination.DestinationResolver; import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.util.ErrorHandler; import static org.apache.camel.util.ObjectHelper.removeStartingCharacters; @@ -206,6 +207,10 @@ public class JmsComponent extends Defaul getConfiguration().setExceptionListener(exceptionListener); } + public void setErrorHandler(ErrorHandler errorHandler) { + getConfiguration().setErrorHandler(errorHandler); + } + public void setExplicitQosEnabled(boolean explicitQosEnabled) { getConfiguration().setExplicitQosEnabled(explicitQosEnabled); } Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java?rev=1153230&r1=1153229&r2=1153230&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java Tue Aug 2 18:04:51 2011 @@ -41,6 +41,7 @@ import org.springframework.jms.support.c import org.springframework.jms.support.destination.DestinationResolver; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.util.Assert; +import org.springframework.util.ErrorHandler; import static org.apache.camel.component.jms.JmsMessageHelper.normalizeDestinationName; @@ -64,6 +65,7 @@ public class JmsConfiguration implements private String acknowledgementModeName; // Used to configure the spring Container private ExceptionListener exceptionListener; + private ErrorHandler errorHandler; private boolean autoStartup = true; private boolean acceptMessagesWhileStopping; private String clientId; @@ -460,6 +462,14 @@ public class JmsConfiguration implements this.exceptionListener = exceptionListener; } + public void setErrorHandler(ErrorHandler errorHandler) { + this.errorHandler = errorHandler; + } + + public ErrorHandler getErrorHandler() { + return errorHandler; + } + @Deprecated public boolean isSubscriptionDurable() { return subscriptionDurable; @@ -839,6 +849,10 @@ public class JmsConfiguration implements container.setExceptionListener(exceptionListener); } + if (errorHandler != null) { + container.setErrorHandler(errorHandler); + } + container.setAcceptMessagesWhileStopping(acceptMessagesWhileStopping); container.setExposeListenerSession(exposeListenerSession); container.setSessionTransacted(transacted); 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=1153230&r1=1153229&r2=1153230&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 Tue Aug 2 18:04:51 2011 @@ -60,6 +60,7 @@ import org.springframework.jms.listener. import org.springframework.jms.support.converter.MessageConverter; import org.springframework.jms.support.destination.DestinationResolver; import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.util.ErrorHandler; /** * A <a href="http://activemq.apache.org/jms.html">JMS Endpoint</a> @@ -513,6 +514,10 @@ public class JmsEndpoint extends Default return getConfiguration().getExceptionListener(); } + public ErrorHandler getErrorHandler() { + return getConfiguration().getErrorHandler(); + } + @ManagedAttribute public int getIdleTaskExecutionLimit() { return getConfiguration().getIdleTaskExecutionLimit(); @@ -770,6 +775,10 @@ public class JmsEndpoint extends Default getConfiguration().setExceptionListener(exceptionListener); } + public void setErrorHandler(ErrorHandler errorHandler) { + getConfiguration().setErrorHandler(errorHandler); + } + @ManagedAttribute public void setExplicitQosEnabled(boolean explicitQosEnabled) { getConfiguration().setExplicitQosEnabled(explicitQosEnabled); Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/PersistentQueueReplyManager.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/PersistentQueueReplyManager.java?rev=1153230&r1=1153229&r2=1153230&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/PersistentQueueReplyManager.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/PersistentQueueReplyManager.java Tue Aug 2 18:04:51 2011 @@ -193,6 +193,9 @@ public class PersistentQueueReplyManager if (endpoint.getExceptionListener() != null) { answer.setExceptionListener(endpoint.getExceptionListener()); } + if (endpoint.getErrorHandler() != null) { + answer.setErrorHandler(endpoint.getErrorHandler()); + } if (endpoint.getReceiveTimeout() >= 0) { answer.setReceiveTimeout(endpoint.getReceiveTimeout()); } Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java?rev=1153230&r1=1153229&r2=1153230&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java Tue Aug 2 18:04:51 2011 @@ -110,6 +110,9 @@ public class TemporaryQueueReplyManager if (endpoint.getExceptionListener() != null) { answer.setExceptionListener(endpoint.getExceptionListener()); } + if (endpoint.getErrorHandler() != null) { + answer.setErrorHandler(endpoint.getErrorHandler()); + } if (endpoint.getReceiveTimeout() >= 0) { answer.setReceiveTimeout(endpoint.getReceiveTimeout()); } Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java?rev=1153230&r1=1153229&r2=1153230&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java Tue Aug 2 18:04:51 2011 @@ -35,6 +35,7 @@ import org.springframework.jms.core.JmsT import org.springframework.jms.listener.AbstractMessageListenerContainer; import org.springframework.jms.listener.DefaultMessageListenerContainer; import org.springframework.jms.support.converter.SimpleMessageConverter; +import org.springframework.util.ErrorHandler; import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge; @@ -210,6 +211,7 @@ public class JmsEndpointConfigurationTes assertEquals("jms://queue:Foo", endpoint.getEndpointKey()); assertEquals("jms://queue:Foo", endpoint.getEndpointUri()); assertNull(endpoint.getExceptionListener()); + assertNull(endpoint.getErrorHandler()); assertEquals(1, endpoint.getIdleTaskExecutionLimit()); assertEquals(1, endpoint.getIdleConsumerLimit()); assertEquals(null, endpoint.getJmsMessageType()); @@ -304,6 +306,12 @@ public class JmsEndpointConfigurationTes }); assertNotNull(endpoint.getExceptionListener()); + endpoint.setErrorHandler(new ErrorHandler() { + public void handleError(Throwable t) { + } + }); + assertNotNull(endpoint.getErrorHandler()); + endpoint.setExplicitQosEnabled(true); assertEquals(true, endpoint.isExplicitQosEnabled());