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]
