Author: gtully
Date: Mon Jan 12 07:48:07 2009
New Revision: 733811

URL: http://svn.apache.org/viewvc?rev=733811&view=rev
Log:
resolve AMQ-2062 - add setExceptionListener to amq connection factory - 

Modified:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java?rev=733811&r1=733810&r2=733811&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
 Mon Jan 12 07:48:07 2009
@@ -27,6 +27,7 @@
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
+import javax.jms.ExceptionListener;
 import javax.jms.JMSException;
 import javax.jms.QueueConnection;
 import javax.jms.QueueConnectionFactory;
@@ -110,6 +111,7 @@
     private int sendTimeout =0;
     private boolean sendAcksAsync=true;
     private TransportListener transportListener;
+       private ExceptionListener exceptionListener;
 
     // /////////////////////////////////////////////
     //
@@ -286,7 +288,7 @@
         return connection;
     }
 
-    protected void configureConnection(ActiveMQConnection connection) {
+    protected void configureConnection(ActiveMQConnection connection) throws 
JMSException {
         connection.setPrefetchPolicy(getPrefetchPolicy());
         
connection.setDisableTimeStampsByDefault(isDisableTimeStampsByDefault());
         connection.setOptimizedMessageDispatch(isOptimizedMessageDispatch());
@@ -311,6 +313,9 @@
         if (transportListener != null) {
             connection.addTransportListener(transportListener);
         }
+        if (exceptionListener != null) {
+               connection.setExceptionListener(exceptionListener);
+        }
     }
 
     // /////////////////////////////////////////////
@@ -859,4 +864,22 @@
     public void setTransportListener(TransportListener transportListener) {
         this.transportListener = transportListener;
     }
+    
+    
+    public ExceptionListener getExceptionListener() {
+        return exceptionListener;
+    }
+    
+    /**
+     * Allows an {...@link ExceptionListener} to be configured on the 
ConnectionFactory so that when this factory
+     * is used by frameworks which don't expose the Connection such as Spring 
JmsTemplate, you can register
+     * an exception listener.
+     * <p> Note: access to this exceptionLinstener will <b>not</b> be 
serialized if it is associated with more than
+     * on connection (as it will be if more than one connection is 
subsequently created by this connection factory)
+     * @param exceptionListener sets the exception listener to be registered 
on all connections
+     * created by this factory
+     */
+    public void setExceptionListener(ExceptionListener exceptionListener) {
+       this.exceptionListener = exceptionListener;
+    }
 }


Reply via email to