Author: rgodfrey
Date: Wed Mar 28 08:39:08 2012
New Revision: 1306213
URL: http://svn.apache.org/viewvc?rev=1306213&view=rev
Log:
NO-JIRA : [Java config] Changes to the web management prototype, added a page
for viewing exchanges
Added:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/exchange.css
- copied, changed from r1305835,
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/queue.css
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
- copied, changed from r1305835,
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/queue.html
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
- copied, changed from r1305835,
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ExchangeServlet.java
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/QueueServlet.java
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/vhost.js
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Publisher.java
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ExchangeServlet.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ExchangeServlet.java?rev=1306213&r1=1306212&r2=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ExchangeServlet.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ExchangeServlet.java
Wed Mar 28 08:39:08 2012
@@ -20,29 +20,8 @@
*/
package org.apache.qpid.server.management.plugin.servlet.rest;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.qpid.server.registry.ApplicationRegistry;
-import org.apache.qpid.server.security.auth.AuthenticationResult;
-import
org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase;
-import org.apache.qpid.server.security.auth.manager.AuthenticationManager;
-import org.codehaus.jackson.map.ObjectMapper;
-
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.security.SecurityManager;
-
-import javax.security.auth.Subject;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
-import java.security.Principal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -51,7 +30,20 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.StringTokenizer;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.Exchange;
+import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.Publisher;
+import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.Statistics;
+import org.apache.qpid.server.model.VirtualHost;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
public class ExchangeServlet extends AbstractServlet
{
@@ -71,6 +63,10 @@ public class ExchangeServlet extends Abs
response.setContentType("application/json");
response.setStatus(HttpServletResponse.SC_OK);
+ response.setHeader("Cache-Control","no-cache");
+ response.setHeader("Pragma","no-cache");
+ response.setDateHeader ("Expires", 0);
+
String[] sortKeys = request.getParameterValues("sort");
Comparator comparator;
if(sortKeys == null || sortKeys.length == 0)
@@ -84,12 +80,12 @@ public class ExchangeServlet extends Abs
Collection<VirtualHost> vhosts = _broker.getVirtualHosts();
- Collection<Exchange> exchanges = new ArrayList<Exchange>();
List<Map<String,Object>> outputObject = new
ArrayList<Map<String,Object>>();
final PrintWriter writer = response.getWriter();
ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
String vhostName = null;
String exchangeName = null;
@@ -129,31 +125,76 @@ public class ExchangeServlet extends Abs
Collections.sort(outputObject, comparator);
mapper.writeValue(writer, outputObject);
- }
+ response.setContentType("application/json");
+ response.setStatus(HttpServletResponse.SC_OK);
+
+ }
private Map<String,Object> convertToObject(final Exchange exchange)
{
+ Map<String, Object> object = convertObjectToMap(exchange);
+
+
+ List<Map<String,Object>> bindings = new ArrayList<Map<String,
Object>>();
+
+ for(Binding binding : exchange.getBindings())
+ {
+ bindings.add(convertObjectToMap(binding));
+ }
+
+ if(!bindings.isEmpty())
+ {
+ object.put("bindings", bindings);
+ }
+
+ List<Map<String,Object>> publishers = new ArrayList<Map<String,
Object>>();
+
+ for(Publisher publisher : exchange.getPublishers())
+ {
+ publishers.add(convertObjectToMap(publisher));
+ }
+
+ if(!publishers.isEmpty())
+ {
+ object.put("publishers", publishers);
+ }
+
+
+ return object;
+ }
+
+ private Map<String, Object> convertObjectToMap(final ConfiguredObject
confObject)
+ {
Map<String, Object> object = new LinkedHashMap<String, Object>();
- object.put("id",exchange.getId());
- object.put("name",exchange.getName());
- object.put("type", exchange.getExchangeType());
- object.put("durable", exchange.isDurable());
- object.put("auto-delete", exchange.getLifetimePolicy() ==
LifetimePolicy.AUTO_DELETE);
- object.put("binding-count", exchange.getBindings().size());
+ for(String name : confObject.getAttributeNames())
+ {
+ Object value = confObject.getAttribute(name);
+ if(value != null)
+ {
+ object.put(name, value);
+ }
+ }
- Map<String,Object> arguments = new HashMap<String, Object>();
- for(String key : exchange.getAttributeNames())
+ Statistics statistics = confObject.getStatistics();
+ Map<String, Object> statMap = new HashMap<String, Object>();
+ for(String name : statistics.getStatisticNames())
{
- if(!key.equals(Exchange.TYPE))
+ Object value = statistics.getStatistic(name);
+ if(value != null)
{
- arguments.put(key, exchange.getAttribute(key));
+ statMap.put(name, value);
}
}
- object.put("arguments", arguments);
+
+ if(!statMap.isEmpty())
+ {
+ object.put("statistics", statMap);
+ }
return object;
}
+
@Override
protected void onPut(final HttpServletRequest request, final
HttpServletResponse response)
throws ServletException, IOException
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/QueueServlet.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/QueueServlet.java?rev=1306213&r1=1306212&r2=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/QueueServlet.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/QueueServlet.java
Wed Mar 28 08:39:08 2012
@@ -20,23 +20,6 @@
*/
package org.apache.qpid.server.management.plugin.servlet.rest;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-
-import org.apache.qpid.server.model.Binding;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Consumer;
-import org.apache.qpid.server.model.LifetimePolicy;
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Statistics;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.queue.AMQQueue;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -47,6 +30,20 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.qpid.server.model.Binding;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.Consumer;
+import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.Queue;
+import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.Statistics;
+import org.apache.qpid.server.model.VirtualHost;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
public class QueueServlet extends AbstractServlet
{
@@ -83,7 +80,6 @@ public class QueueServlet extends Abstra
Collection<VirtualHost> vhosts = _broker.getVirtualHosts();
- Collection<AMQQueue> queues = new ArrayList<AMQQueue>();
List<Map<String,Object>> outputObject = new
ArrayList<Map<String,Object>>();
final PrintWriter writer = response.getWriter();
Copied:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/exchange.css
(from r1305835,
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/queue.css)
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/exchange.css?p2=qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/exchange.css&p1=qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/queue.css&r1=1305835&r2=1306213&rev=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/queue.css
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/exchange.css
Wed Mar 28 08:39:08 2012
@@ -3,8 +3,3 @@
width: 100%;
height: 100px;
}
-
-#consumers {
- width: 100%;
- height: 100px;
-}
Copied:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
(from r1305835,
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/queue.html)
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html?p2=qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html&p1=qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/queue.html&r1=1305835&r2=1306213&rev=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/queue.html
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
Wed Mar 28 08:39:08 2012
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>Queue</title>
+ <title>Exchange</title>
<!--<link rel="stylesheet"
href="/dojo/1.7.2/dojo/resources/dojo.css">
<link rel="stylesheet"
href="/dojo/1.7.2/dijit/themes/claro/claro.css">
<link rel="stylesheet"
href="/dojo/1.7.2/dojox/grid/resources/claroGrid.css">-->
@@ -10,7 +10,7 @@
<link rel="stylesheet"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dijit/themes/claro/claro.css">
<link rel="stylesheet"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojox/grid/resources/claroGrid.css">
- <link rel="stylesheet" href="../css/queue.css" media="screen">
+ <link rel="stylesheet" href="../css/exchange.css" media="screen">
<link rel="stylesheet" href="css/common.css" media="screen">
@@ -28,7 +28,7 @@
"dijit/TitlePane", "dojo/parser"]);
</script>
- <script src="/js/queue.js">
+ <script src="/js/exchange.js">
</script>
</head>
<body class="claro">
@@ -38,19 +38,9 @@
<div data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'top'">Top pane</div>
<div data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'leading'">Leading pane</div>
<div data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'center'">
- <span style="">Queue:</span><span id="name"
style="position:absolute; left:6em"></span>
- <span style="position:absolute; left:26em">Size:</span>
- <span id="queueDepthMessages" style="position:absolute;
right:9.5em"></span>
- <span style="position:absolute; right: 5em; width: 4em">
msgs</span>
- <span id="queueDepthBytes" style="position:absolute; right:
3.3em">(</span>
- <span id="queueDepthBytesUnits" style="position:absolute; right:
0em; width: 3em">)</span>
+ <span style="">Exchange:</span><span id="name"
style="position:absolute; left:6em"></span>
<br/>
<span style="">State:</span><span id="state"
style="position:absolute; left:6em"></span>
- <span style="position:absolute; left:26em">Pre-fetched:</span>
- <span id="unacknowledgedMessages" style="position:absolute;
right:9.5em"></span>
- <span style="position:absolute; right: 5em; width: 4em">
msgs</span>
- <span id="unacknowledgedBytes" style="position:absolute; right:
3.3em"></span>
- <span id="unacknowledgedBytesUnits" style="position:absolute;
right: 0em; width: 3em"></span>
<br/>
<span style="">Durable:</span><span id="durable"
style="position:absolute; left:6em"></span>
<span style="position:absolute; left:26em">Inbound:</span>
@@ -60,50 +50,18 @@
<span id="bytesInRateUnits" style="position:absolute; right: 0em;
width: 3em"></span>
<br/>
<span style="">Lifespan:</span><span style="position:absolute;
left:6em" id="lifetimePolicy"></span>
- <span style="position:absolute; left:26em">Outbound:</span>
- <span id="msgOutRate" style="position:absolute;
right:9.5em"></span>
+ <span style="position:absolute; left:26em">Dropped:</span>
+ <span id="msgDropRate" style="position:absolute;
right:9.5em"></span>
<span style="position:absolute; right: 5em; width: 4em">
msg/s</span>
- <span id="bytesOutRate" style="position:absolute; right:
3.3em"></span>
- <span id="bytesOutRateUnits" style="position:absolute; right: 0em;
width: 3em"></span>
+ <span id="bytesDropRate" style="position:absolute; right:
3.3em"></span>
+ <span id="bytesDropRateUnits" style="position:absolute; right:
0em; width: 3em"></span>
<br/>
<br/>
<div data-dojo-type="dijit.TitlePane" data-dojo-props="title:
'Bindings'">
<div id="bindings"></div>
</div>
<br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title:
'Consumers'">
- <div id="consumers"></div>
- </div>
- <br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title:
'Alerting Thresholds'">
- <span style="">Max. Queue Size:</span>
- <span id="alertThresholdQueueDepthMessages"
- style="position:absolute; left:8em; width:8em;
text-align:right"></span>
- <span style="position:absolute; left:16.2em">msgs</span>
-
- <span id="alertThresholdQueueDepthBytes"
- style="position:absolute; left:20em; width:8em;
text-align:right"></span>
- <span id="alertThresholdQueueDepthBytesUnits"
style="position:absolute; left:28.2em"></span>
- <br>
- <span style="">Max. Message Age:</span>
- <span id="alertThresholdMessageAge"
- style="position:absolute; left:8em; width:8em;
text-align:right"></span>
- <span id="alertThresholdMessageAgeUnits"
style="position:absolute; left:16.2em"></span>
-
- <span style="position:absolute; left:21em">Size: </span>
- <span id="alertThresholdMessageSize"
- style="position:absolute; left:23em; width:5em;
text-align:right"></span>
- <span id="alertThresholdMessageSizeUnits"
style="position:absolute; left:28.2em"></span>
- <br/>
- <br/>
- <span style="">Alert frequency:</span>
- <span id="alertRepeatGap"
- style="position:absolute; left:8em; width:8em;
text-align:right"></span>
- <span id="alertRepeatGapUnits" style="position:absolute;
left:16.2em"></span>
-
-
- </div>
</div>
<!--<div data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'trailing'">Trailing pane</div>-->
<div data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'bottom'">Bottom pane</div>
Copied:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
(from r1305835,
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js)
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js?p2=qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js&p1=qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js&r1=1305835&r2=1306213&rev=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
Wed Mar 28 08:39:08 2012
@@ -183,103 +183,81 @@ require(["dojo/store/JsonRest",
}
- function QueueUpdater()
+ function ExchangeUpdater()
{
this.name = dom.byId("name");
this.state = dom.byId("state");
this.durable = dom.byId("durable");
this.lifetimePolicy = dom.byId("lifetimePolicy");
- this.queueDepthMessages = dom.byId("queueDepthMessages");
- this.queueDepthBytes = dom.byId("queueDepthBytes");
- this.queueDepthBytesUnits = dom.byId("queueDepthBytesUnits");
- this.unacknowledgedMessages = dom.byId("unacknowledgedMessages");
- this.unacknowledgedBytes = dom.byId("unacknowledgedBytes");
- this.unacknowledgedBytesUnits =
dom.byId("unacknowledgedBytesUnits");
-
+
urlQuery =
dojo.queryToObject(dojo.doc.location.search.substr((dojo.doc.location.search[0]
=== "?" ? 1 : 0)));
- this.query = "/rest/queue/"+ urlQuery.vhost + "/" + urlQuery.queue;
+ this.query = "/rest/exchange/"+ urlQuery.vhost + "/" +
urlQuery.exchange;
var thisObj = this;
xhr.get({url: this.query, handleAs: "json"}).then(function(data)
{
- thisObj.queueData = data[0];
- var stats = thisObj.queueData[ "statistics" ];
+ thisObj.exchangeData = data[0];
+ var stats = thisObj.exchangeData[ "statistics"
];
// flatten statistics into attributes
for(var propName in stats)
{
- thisObj.queueData[ propName ] = stats[
propName ];
+ thisObj.exchangeData[ propName ] = stats[
propName ];
}
thisObj.updateHeader();
- thisObj.bindingsGrid = new
UpdatableStore(thisObj.queueData.bindings, "bindings",
- [ { name: "Exchange",
field: "exchange", width: "90px"},
+ thisObj.bindingsGrid = new
UpdatableStore(thisObj.exchangeData.bindings, "bindings",
+ [ { name: "Queue",
field: "queue", width: "90px"},
{ name: "Binding
Key", field: "name", width: "120px"},
- { name:
"Arguments", field: "arguments", width: "200px"}
- ]);
-
- thisObj.consumersGrid = new
UpdatableStore(thisObj.queueData.consumers, "consumers",
- [ { name: "Name",
field: "name", width: "70px"},
- { name: "Mode",
field: "distributionMode", width: "70px"},
- { name: "Msgs
Rate", field: "msgRate",
- width: "150px"},
- { name: "Bytes
Rate", field: "bytesRate",
- width: "150px"}
+ { name:
"Arguments", field: "argumentString", width: "200px"}
]);
-
-
});
}
- QueueUpdater.prototype.updateHeader = function()
+ ExchangeUpdater.prototype.updateHeader = function()
{
- this.name.innerHTML = this.queueData[ "name" ];
- this.state.innerHTML = this.queueData[ "state" ];
- this.durable.innerHTML = this.queueData[ "durable" ];
- this.lifetimePolicy.innerHTML = this.queueData[ "lifetimePolicy" ];
-
- this.queueDepthMessages.innerHTML =
this.queueData["queueDepthMessages"];
- bytesDepth = new formatBytes( this.queueData["queueDepthBytes"] );
- this.queueDepthBytes.innerHTML = "(" + bytesDepth.value;
- this.queueDepthBytesUnits.innerHTML = bytesDepth.units + ")"
-
- this.unacknowledgedMessages.innerHTML =
this.queueData["unacknowledgedMessages"];
- bytesDepth = new formatBytes(
this.queueData["unacknowledgedBytes"] );
- this.unacknowledgedBytes.innerHTML = "(" + bytesDepth.value;
- this.unacknowledgedBytesUnits.innerHTML = bytesDepth.units + ")"
+ this.name.innerHTML = this.exchangeData[ "name" ];
+ this.state.innerHTML = this.exchangeData[ "state" ];
+ this.durable.innerHTML = this.exchangeData[ "durable" ];
+ this.lifetimePolicy.innerHTML = this.exchangeData[
"lifetimePolicy" ];
}
- QueueUpdater.prototype.update = function()
+ ExchangeUpdater.prototype.update = function()
{
var thisObj = this;
xhr.get({url: this.query, handleAs: "json"}).then(function(data)
{
- thisObj.queueData = data[0];
- var stats = thisObj.queueData[ "statistics" ];
+ thisObj.exchangeData = data[0];
+ var stats = thisObj.exchangeData[ "statistics" ];
// flatten statistics into attributes
for(var propName in stats)
{
- thisObj.queueData[ propName ] = stats[ propName ];
+ thisObj.exchangeData[ propName ] = stats[ propName ];
}
- var bindings = thisObj.queueData[ "bindings" ];
+ var bindings = thisObj.exchangeData[ "bindings" ];
for(var i=0; i < bindings.length; i++)
{
- bindings[i].arguments =
dojo.toJson(bindings[i].arguments);
- bindings[i].argumentString =
dojo.toJson(bindings[i].arguments);
-
+ if(bindings[i].arguments)
+ {
+ bindings[i].argumentString =
dojo.toJson(bindings[i].arguments);
+ }
+ else
+ {
+ bindings[i].argumentString = "";
+ }
}
- var consumers = thisObj.queueData[ "consumers" ];
+ var consumers = thisObj.exchangeData[ "consumers" ];
if(consumers)
{
for(var i=0; i < consumers.length; i++)
@@ -296,107 +274,53 @@ require(["dojo/store/JsonRest",
thisObj.updateHeader();
- // update alerting info
- alertRepeatGap = new formatTime(
thisObj.queueData["alertRepeatGap"] );
-
- dom.byId("alertRepeatGap").innerHTML =
alertRepeatGap.value;
- dom.byId("alertRepeatGapUnits").innerHTML =
alertRepeatGap.units;
-
-
- alertMsgAge = new formatTime(
thisObj.queueData["alertThresholdMessageAge"] );
-
- dom.byId("alertThresholdMessageAge").innerHTML =
alertMsgAge.value;
- dom.byId("alertThresholdMessageAgeUnits").innerHTML =
alertMsgAge.units;
-
- alertMsgSize = new formatBytes(
thisObj.queueData["alertThresholdMessageSize"] );
-
- dom.byId("alertThresholdMessageSize").innerHTML =
alertMsgSize.value;
- dom.byId("alertThresholdMessageSizeUnits").innerHTML =
alertMsgSize.units;
-
- alertQueueDepth = new formatBytes(
thisObj.queueData["alertThresholdQueueDepthBytes"] );
-
- dom.byId("alertThresholdQueueDepthBytes").innerHTML =
alertQueueDepth.value;
- dom.byId("alertThresholdQueueDepthBytesUnits").innerHTML =
alertQueueDepth.units;
-
- dom.byId("alertThresholdQueueDepthMessages").innerHTML =
thisObj.queueData["alertThresholdQueueDepthMessages"];
-
- stats = thisObj.queueData[ "statistics" ];
+ stats = thisObj.exchangeData[ "statistics" ];
var sampleTime = new Date();
- var messageIn = stats["totalEnqueuedMessages"];
- var bytesIn = stats["totalEnqueuedBytes"];
- var messageOut = stats["totalDequeuedMessages"];
- var bytesOut = stats["totalDequeuedBytes"];
+ var messageIn = stats["messagesIn"];
+ var bytesIn = stats["bytesIn"];
+ var messageDrop = stats["messagesDropped"];
+ var bytesDrop = stats["bytesDropped"];
if(thisObj.sampleTime)
{
var samplePeriod = sampleTime.getTime() -
thisObj.sampleTime.getTime();
var msgInRate = (1000 * (messageIn -
thisObj.messageIn)) / samplePeriod;
- var msgOutRate = (1000 * (messageOut -
thisObj.messageOut)) / samplePeriod;
+ var msgDropRate = (1000 * (messageDrop -
thisObj.messageDrop)) / samplePeriod;
var bytesInRate = (1000 * (bytesIn - thisObj.bytesIn))
/ samplePeriod;
- var bytesOutRate = (1000 * (bytesOut -
thisObj.bytesOut)) / samplePeriod;
+ var bytesDropRate = (1000 * (bytesDrop -
thisObj.bytesDrop)) / samplePeriod;
dom.byId("msgInRate").innerHTML = msgInRate.toFixed(0);
bytesInFormat = new formatBytes( bytesInRate );
dom.byId("bytesInRate").innerHTML = "(" +
bytesInFormat.value;
dom.byId("bytesInRateUnits").innerHTML =
bytesInFormat.units + "/s)"
- dom.byId("msgOutRate").innerHTML =
msgOutRate.toFixed(0);
- bytesOutFormat = new formatBytes( bytesOutRate );
- dom.byId("bytesOutRate").innerHTML = "(" +
bytesOutFormat.value;
- dom.byId("bytesOutRateUnits").innerHTML =
bytesOutFormat.units + "/s)"
-
- if(consumers && thisObj.consumers)
- {
- for(var i=0; i < consumers.length; i++)
- {
- var consumer = consumers[i];
- for(var j = 0; j < thisObj.consumers.length;
j++)
- {
- var oldConsumer = thisObj.consumers[j];
- if(oldConsumer.id == consumer.id)
- {
- var msgRate = (1000 *
(consumer.messagesOut - oldConsumer.messagesOut)) /
- samplePeriod;
- consumer.msgRate = msgRate.toFixed(0)
+ "msg/s";
-
- var bytesRate = (1000 *
(consumer.bytesOut - oldConsumer.bytesOut)) /
- samplePeriod
- var bytesRateFormat = new formatBytes(
bytesRate );
- consumer.bytesRate =
bytesRateFormat.value + bytesRateFormat.units + "/s";
- }
-
-
- }
-
- }
- }
+ dom.byId("msgDropRate").innerHTML =
msgDropRate.toFixed(0);
+ bytesDropFormat = new formatBytes( bytesDropRate );
+ dom.byId("bytesDropRate").innerHTML = "(" +
bytesDropFormat.value;
+ dom.byId("bytesDropRateUnits").innerHTML =
bytesDropFormat.units + "/s)"
}
thisObj.sampleTime = sampleTime;
thisObj.messageIn = messageIn;
thisObj.bytesIn = bytesIn;
- thisObj.messageOut = messageOut;
- thisObj.bytesOut = bytesOut;
+ thisObj.messageDrop = messageDrop;
+ thisObj.bytesDrop = bytesDrop;
thisObj.consumers = consumers;
// update bindings
- thisObj.bindingsGrid.update(thisObj.queueData.bindings)
-
- // update consumers
- thisObj.consumersGrid.update(thisObj.queueData.consumers)
-
+ thisObj.bindingsGrid.update(thisObj.exchangeData.bindings)
});
};
- queueUpdater = new QueueUpdater();
+ exchangeUpdater = new ExchangeUpdater();
- updateList.push( queueUpdater );
+ updateList.push( exchangeUpdater );
- queueUpdater.update();
+ exchangeUpdater.update();
setInterval(function(){
for(var i = 0; i < updateList.length; i++)
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js?rev=1306213&r1=1306212&r2=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/queue.js
Wed Mar 28 08:39:08 2012
@@ -3,6 +3,7 @@ var bindingsTuple;
require(["dojo/store/JsonRest",
+ "dojo/json",
"dojo/store/Memory",
"dojo/store/Cache",
"dojox/grid/DataGrid",
@@ -12,7 +13,7 @@ require(["dojo/store/JsonRest",
"dojo/_base/xhr",
"dojo/dom",
"dojo/domReady!"],
- function(JsonRest, Memory, Cache, DataGrid, ObjectStore, query,
Observable, xhr, dom)
+ function(JsonRest, json, Memory, Cache, DataGrid, ObjectStore,
query, Observable, xhr, dom)
{
@@ -217,7 +218,7 @@ require(["dojo/store/JsonRest",
thisObj.bindingsGrid = new
UpdatableStore(thisObj.queueData.bindings, "bindings",
[ { name: "Exchange",
field: "exchange", width: "90px"},
{ name: "Binding
Key", field: "name", width: "120px"},
- { name:
"Arguments", field: "arguments", width: "200px"}
+ { name:
"Arguments", field: "argumentString", width: "200px"}
]);
thisObj.consumersGrid = new
UpdatableStore(thisObj.queueData.consumers, "consumers",
@@ -273,9 +274,7 @@ require(["dojo/store/JsonRest",
var bindings = thisObj.queueData[ "bindings" ];
for(var i=0; i < bindings.length; i++)
{
- bindings[i].arguments =
dojo.toJson(bindings[i].arguments);
- bindings[i].argumentString =
dojo.toJson(bindings[i].arguments);
-
+ bindings[i].argumentString =
json.stringify(bindings[i].arguments);
}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/vhost.js
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/vhost.js?rev=1306213&r1=1306212&r2=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/vhost.js
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/vhost.js
Wed Mar 28 08:39:08 2012
@@ -257,7 +257,22 @@ require(["dojo/store/JsonRest",
{ name: "Type",
field: "type", width: "120px"},
{ name: "Binding
Count", field: "bindingCount",
width: "90px"}
- ]);
+ ],
+ function(obj)
+ {
+
dojo.connect(obj.grid, "onRowDblClick", obj.grid,
+ function(evt){
+ var idx
= evt.rowIndex,
+ item =
this.getItem(idx);
+
+ url =
"/exchange?vhost="
+ +
thisObj.vhostData.name + "&exchange=" +
+
obj.dataStore.getValue(item,"name");
+
+
window.location = url;
+
+ });
+ } );
thisObj.connectionsGrid = new
UpdatableStore(thisObj.vhostData.connections,
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Publisher.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Publisher.java?rev=1306213&r1=1306212&r2=1306213&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Publisher.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Publisher.java
Wed Mar 28 08:39:08 2012
@@ -20,6 +20,6 @@
*/
package org.apache.qpid.server.model;
-public interface Publisher
+public interface Publisher extends ConfiguredObject
{
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]