summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-08-03 18:06:09 +0000
committerKeith Wall <kwall@apache.org>2014-08-03 18:06:09 +0000
commit50ef5c1742d607847dc0e5080278bcdd7e84b69a (patch)
treea24069745efbcb268fae366515944132016dbea3 /qpid/java
parent20beab35b19f246a88ec79828f788e512628252c (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java3
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java6
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java5
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java8
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java6
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Connection.js7
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/showConnection.html89
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java1
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,