diff options
| author | Keith Wall <kwall@apache.org> | 2014-08-03 18:06:09 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-08-03 18:06:09 +0000 |
| commit | 50ef5c1742d607847dc0e5080278bcdd7e84b69a (patch) | |
| tree | a24069745efbcb268fae366515944132016dbea3 /qpid/java | |
| parent | 20beab35b19f246a88ec79828f788e512628252c (diff) | |
| download | qpid-python-50ef5c1742d607847dc0e5080278bcdd7e84b69a.tar.gz | |
QPID-5958: [Java Broker] Wire up the Connection#remoteProcessPid attribute to the client's process identifier made
available as connection properties during connection negotiation.
* Make information available via the Connection tab during the Web Management UI.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1615425 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
9 files changed, 101 insertions, 26 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java index d71c69919d..31668e3bc5 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java @@ -130,7 +130,7 @@ public final class ConnectionAdapter extends AbstractConfiguredObject<Connection @Override public String getRemoteProcessPid() { - return null; + return _underlyingConnection.getRemoteProcessPid(); } @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java index 5d898c3a36..c9045999b9 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java @@ -75,6 +75,8 @@ public interface AMQConnectionModel<T extends AMQConnectionModel<T,S>, S extends SocketAddress getRemoteAddress(); + String getRemoteProcessPid(); + String getClientId(); String getClientVersion(); @@ -104,4 +106,5 @@ public interface AMQConnectionModel<T extends AMQConnectionModel<T,S>, S extends void addSessionListener(SessionModelListener listener); void removeSessionListener(SessionModelListener listener); + } diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java index ede51ef213..2ad79ad980 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java @@ -507,6 +507,12 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S } @Override + public String getRemoteProcessPid() + { + return getConnectionDelegate().getRemoteProcessPid(); + } + + @Override public void closed() { performDeleteTasks(); diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java index 390d7a8c46..7751ff765d 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java @@ -367,6 +367,11 @@ public class ServerConnectionDelegate extends ServerDelegate return _clientProperties == null ? null : (String) _clientProperties.get(ConnectionStartProperties.PRODUCT); } + public String getRemoteProcessPid() + { + return (_clientProperties == null || _clientProperties.get(ConnectionStartProperties.PID) == null) ? null : String.valueOf(_clientProperties.get(ConnectionStartProperties.PID)); + } + @Override protected int getHeartbeatMax() { diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java index 0db0f9339c..46a9430814 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java @@ -99,6 +99,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi private String _clientVersion = null; private String _clientProduct = null; + private String _remoteProcessPid = null; private VirtualHostImpl _virtualHost; @@ -1117,6 +1118,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _clientVersion = clientProperties.getString(ConnectionStartProperties.VERSION_0_8); _clientProduct = clientProperties.getString(ConnectionStartProperties.PRODUCT); + _remoteProcessPid = clientProperties.getString(ConnectionStartProperties.PID); String clientId = clientProperties.getString(ConnectionStartProperties.CLIENT_ID_0_8); if (clientId != null) @@ -1220,6 +1222,12 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi return _network.getRemoteAddress(); } + @Override + public String getRemoteProcessPid() + { + return _remoteProcessPid; + } + public SocketAddress getLocalAddress() { return _network.getLocalAddress(); diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java index 31a962f71e..ffa65b2477 100644 --- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java +++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java @@ -304,6 +304,12 @@ public class Connection_1_0 implements ConnectionEventListener, AMQConnectionMod } @Override + public String getRemoteProcessPid() + { + return null; // TODO + } + + @Override public String getClientId() { return _conn.getRemoteContainerId(); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js index 8836f6a40c..6c20f85dc0 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js @@ -86,6 +86,9 @@ define(["dojo/_base/xhr", "principal", "port", "transport", + "remoteProcessPid", + "createdTime", + "lastIoTime", "msgInRate", "bytesInRate", "bytesInRateUnits", @@ -150,7 +153,9 @@ define(["dojo/_base/xhr", this.principal.innerHTML = entities.encode(String(this.connectionData[ "principal" ])); this.port.innerHTML = entities.encode(String(this.connectionData[ "port" ])); this.transport.innerHTML = entities.encode(String(this.connectionData[ "transport" ])); - + this.remoteProcessPid.innerHTML = entities.encode(String(this.connectionData[ "remoteProcessPid" ])); + this.createdTime.innerHTML = UserPreferences.formatDateTime(this.connectionData[ "createdTime" ], {addOffset: true, appendTimeZone: true}); + this.lastIoTime.innerHTML = UserPreferences.formatDateTime(this.connectionData[ "lastIoTime" ], {addOffset: true, appendTimeZone: true}); }; ConnectionUpdater.prototype.update = function() diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showConnection.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showConnection.html index 1032bdeaef..7b76b42473 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showConnection.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showConnection.html @@ -19,30 +19,73 @@ - --> <div class="connection"> - <span style="">Name:</span><span class="name" style="position:absolute; left:8em"></span> - <br/> - <span style="">User:</span><span class="principal" style="position:absolute; left:8em"></span> - <span style="position:absolute; left:26em">Pre-fetched:</span> - <br/> - <span style="">ClientID:</span><span class="clientId" style="position:absolute; left:8em"></span> - <span style="position:absolute; left:26em">Inbound:</span> - <span class="msgInRate" style="position:absolute; right:9.5em"></span> - <span style="position:absolute; right: 5em; width: 4em"> msg/s</span> - <span class="bytesInRate" style="position:absolute; right: 3.3em"></span> - <span class="bytesInRateUnits" style="position:absolute; right: 0em; width: 3em"></span> - <br/> - <span style="">Client Version:</span><span style="position:absolute; left:8em" class="clientVersion"></span> - <span style="position:absolute; left:26em">Outbound:</span> - <span class="msgOutRate" style="position:absolute; right:9.5em"></span> - <span style="position:absolute; right: 5em; width: 4em"> msg/s</span> - <span class="bytesOutRate" style="position:absolute; right: 3.3em"></span> - <span class="bytesOutRateUnits" style="position:absolute; right: 0em; width: 3em"></span> - <br/> - <span style="">Port:</span><span style="position:absolute; left:8em" class="port"></span> - <br/> - <span style="">Transport:</span><span style="position:absolute; left:8em" class="transport"></span> - <br/> + <div class="alignLeft"> + <div style="clear:both"> + <div class="formLabel-labelCell">Name:</div> + <div class="name" style="float:left;"></div> + </div> + <div style="clear:both"> + <div class="formLabel-labelCell">User:</div> + <div class="principal" style="float:left;"></div> + </div> + <div style="clear:both"> + <div class="formLabel-labelCell">Client ID:</div> + <div class="clientId" style="float:left;"></div> + </div> + <div style="clear:both"> + <div class="formLabel-labelCell">Client Version:</div> + <div class="clientVersion" style="float:left;"></div> + </div> + </div> + <div class="alignRight"> + <div> + <div class="formLabel-labelCell">Inbound:</div> + <div class="alignRight"> + <span class="msgInRate"></span> + <span> msg/s</span> + <span class="bytesInRate"></span> + <span class="bytesInRateUnits"></span> + </div> + </div> + <div> + <div class="formLabel-labelCell">Outbound:</div> + <div class="alignRight"> + <span class="msgOutRate"></span> + <span> msg/s</span> + <span class="bytesOutRate"></span> + <span class="bytesOutRateUnits"></span> + </div> + </div> + <div> + <div class="formLabel-labelCell">Connect Time:</div> + <div class="alignRight"> + <div class="createdTime"></div> + </div> + </div> + <div> + <div class="formLabel-labelCell">Last I/O Time:</div> + <div class="alignRight"> + <div class="lastIoTime"></div> + </div> + </div> + </div> + <div style="clear:both"></div> + <div style="clear:both"> + <div class="formLabel-labelCell">Remote Process (PID):</div> + <div class="remoteProcessPid" style="float:left;"></div> + </div> + <div style="clear:both"> + <div class="formLabel-labelCell">Port:</div> + <div class="port" style="float:left;"></div> + </div> + <div style="clear:both"> + <div class="formLabel-labelCell">Transport:</div> + <div class="transport" style="float:left;"></div> + </div> + <div style="clear:both"/> + <br/> + <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Sessions'"> <div class="sessions"></div> </div> diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java index 3ac79076d6..3ae32a17ae 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java @@ -230,7 +230,6 @@ public class Asserts Connection.LIFETIME_POLICY, Connection.INCOMING, Connection.REMOTE_PROCESS_NAME, - Connection.REMOTE_PROCESS_PID, Connection.LOCAL_ADDRESS, Connection.PROPERTIES, ConfiguredObject.TYPE, |
