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());
 


Reply via email to