Repository: qpid-jms
Updated Branches:
  refs/heads/master 4a1282fdc -> c43870514


Add listener event point for notifications of remote close to the JMS
layer.  

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/c4387051
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/c4387051
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/c4387051

Branch: refs/heads/master
Commit: c438705140c68233e9596f0e5943cc18b4feec21
Parents: 4a1282f
Author: Timothy Bish <[email protected]>
Authored: Fri Feb 20 17:19:02 2015 -0500
Committer: Timothy Bish <[email protected]>
Committed: Fri Feb 20 17:19:02 2015 -0500

----------------------------------------------------------------------
 .../java/org/apache/qpid/jms/JmsConnection.java |  7 +++++-
 .../jms/provider/DefaultProviderListener.java   |  5 +++++
 .../qpid/jms/provider/ProviderListener.java     | 12 ++++++++++
 .../qpid/jms/provider/ProviderWrapper.java      | 23 ++++++++++++--------
 4 files changed, 37 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/c4387051/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
index 9f69e90..b449bb0 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnection.java
@@ -1124,11 +1124,16 @@ public class JmsConnection implements Connection, 
TopicConnection, QueueConnecti
                     }
                 });
             } else {
-                LOG.debug("Async exception with no exception listener: " + 
error, error);
+                LOG.debug("Async exception with no exception listener: {}", 
error, error);
             }
         }
     }
 
+    @Override
+    public void onResourceRemotelyClosed(JmsResource resource, Exception 
cause) {
+        LOG.info("A JMS resource has been remotely closed: {}", resource);
+    }
+
     protected void providerFailed(IOException error) {
         failed.set(true);
         if (firstFailureError == null) {

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/c4387051/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/DefaultProviderListener.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/DefaultProviderListener.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/DefaultProviderListener.java
index 19b0c9f..3b38ecb 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/DefaultProviderListener.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/DefaultProviderListener.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.net.URI;
 
 import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
+import org.apache.qpid.jms.meta.JmsResource;
 
 /**
  * Default implementation that does nothing for all callbacks.
@@ -53,4 +54,8 @@ public class DefaultProviderListener implements 
ProviderListener {
     @Override
     public void onConnectionRestored(URI remoteURI) {
     }
+
+    @Override
+    public void onResourceRemotelyClosed(JmsResource resource, Exception 
cause) {
+    }
 }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/c4387051/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderListener.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderListener.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderListener.java
index 0928a89..a870dea 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderListener.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderListener.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.net.URI;
 
 import org.apache.qpid.jms.message.JmsInboundMessageDispatch;
+import org.apache.qpid.jms.meta.JmsResource;
 
 /**
  * Events interface used to update the listener with changes in provider state.
@@ -110,4 +111,15 @@ public interface ProviderListener {
      */
     void onConnectionFailure(IOException ex);
 
+    /**
+     * Called to indicate that a currently active resource has been closed on 
the
+     * remote end due to management or other action.
+     *
+     * @param resource
+     *        the JmsResource instance that has been remotely closed.
+     * @param cause
+     *        optional exception object that indicates the cause of the close.
+     */
+    void onResourceRemotelyClosed(JmsResource resource, Exception cause);
+
 }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/c4387051/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderWrapper.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderWrapper.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderWrapper.java
index 4f24805..4bb9d51 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderWrapper.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/ProviderWrapper.java
@@ -142,48 +142,53 @@ public class ProviderWrapper<E extends Provider> 
implements Provider, ProviderLi
 
     @Override
     public ProviderListener getProviderListener() {
-        return this.listener;
+        return listener;
     }
 
     @Override
     public void onInboundMessage(JmsInboundMessageDispatch envelope) {
-        this.listener.onInboundMessage(envelope);
+        listener.onInboundMessage(envelope);
     }
 
     @Override
     public void onConnectionInterrupted(URI remoteURI) {
-        this.listener.onConnectionInterrupted(remoteURI);
+        listener.onConnectionInterrupted(remoteURI);
     }
 
     @Override
     public void onConnectionRecovery(Provider provider) throws Exception {
-        this.listener.onConnectionRecovery(provider);
+        listener.onConnectionRecovery(provider);
     }
 
     @Override
     public void onConnectionRecovered(Provider provider) throws Exception {
-        this.listener.onConnectionRecovered(provider);
+        listener.onConnectionRecovered(provider);
     }
 
     @Override
     public void onConnectionRestored(URI remoteURI) {
-        this.listener.onConnectionRestored(remoteURI);
+        listener.onConnectionRestored(remoteURI);
     }
 
     @Override
     public void onConnectionEstablished(URI remoteURI) {
-        this.listener.onConnectionEstablished(this.next.getRemoteURI());
+        listener.onConnectionEstablished(this.next.getRemoteURI());
     }
 
     @Override
     public void onConnectionFailure(IOException ex) {
-        this.listener.onConnectionFailure(ex);
+        listener.onConnectionFailure(ex);
+    }
+
+    @Override
+    public void onResourceRemotelyClosed(JmsResource resource, Exception 
cause) {
+        listener.onResourceRemotelyClosed(resource, cause);
     }
 
     /**
      * @return the wrapped AsyncProvider.
      */
     public Provider getNext() {
-        return this.next;
+        return next;
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to