You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2016/04/29 13:04:44 UTC

svn commit: r1741609 [11/31] - in /qpid/java/trunk: bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb/ bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb_ha/ bdbstore/src/main/java/resources/js/qpid/management/virtual...

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js Fri Apr 29 11:04:40 2016
@@ -19,253 +19,284 @@
  *
  */
 define(["dojo/parser",
-    "dojo/query",
-    "dojo/_base/connect",
-    "dijit/registry",
-    "dojox/html/entities",
-    "qpid/common/properties",
-    "qpid/common/updater",
-    "qpid/common/util",
-    "qpid/common/formatter",
-    "qpid/common/UpdatableStore",
-    "dojox/grid/EnhancedGrid",
-    "dojo/text!showLogger.html",
-    "qpid/management/addLogger",
-    "qpid/management/addLogInclusionRule",
-    "dojo/domReady!"],
-  function (parser, query, connect, registry, entities, properties, updater, util, formatter, UpdatableStore, EnhancedGrid, template, addLogger, addLogInclusionRule)
-  {
-
-    function Logger(name, parent, controller)
-    {
-      this.name = name;
-      this.controller = controller;
-      this.management = controller.management;
-      var isBrokerParent = parent.type == "broker";
-      this.category = isBrokerParent ? "BrokerLogger" : "VirtualHostLogger";
-      this.logInclusionRuleCategory = isBrokerParent? "BrokerLogInclusionRule" : "VirtualHostLogInclusionRule";
-      this.modelObj = {type: this.category.toLowerCase(), name: name, parent: parent};
-      this.userFriendlyName = (isBrokerParent ? "Broker Logger" : "Virtual Host Logger");
-    }
-
-    Logger.prototype.getTitle = function ()
-    {
-      return this.userFriendlyName + ": " + this.name;
-    };
-
-    Logger.prototype.open = function (contentPane)
-    {
-      var that = this;
-      this.contentPane = contentPane;
-      contentPane.containerNode.innerHTML = template;
-      parser.parse(contentPane.containerNode).then(function (instances)
-      {
-        that.onOpen(contentPane.containerNode)
-      });
-
-    };
-
-    Logger.prototype.onOpen = function (containerNode)
-    {
-      var that = this;
-      this.editLoggerButton = registry.byNode(query(".editLoggerButton", containerNode)[0]);
-      this.deleteLoggerButton = registry.byNode(query(".deleteLoggerButton", containerNode)[0]);
-      this.deleteLoggerButton.on("click",
-        function (e)
-        {
-          if (confirm("Are you sure you want to delete logger '" + entities.encode(String(that.name)) + "'?"))
-          {
-            that.management.remove(that.modelObj).then(
-              function (x)
-              {
-                that.destroy();
-              }, util.xhrErrorHandler);
-          }
-        }
-      );
-      this.editLoggerButton.on("click",
-        function (event)
-        {
-          that.management.load(that.modelObj, {actuals: true, depth: 0}).then(
-            function(data)
-            {
-              addLogger.show(that.management, that.modelObj, that.category, data[0]);
-            }
-          );
-        }
-      );
-
-      var gridProperties = {
-        selectionMode: "extended",
-        plugins: {
-          indirectSelection: true
-        }
-      };
-
-      this.logInclusionRuleGrid = new UpdatableStore([], query(".logInclusionRuleGrid", containerNode)[0],
-        [
-          {name: "Rule Name", field: "name", width: "20%"},
-          {name: "Type", field: "type", width: "20%"},
-          {name: "Logger Name", field: "loggerName", width: "30%"},
-          {name: "Level", field: "level", width: "20%"},
-          {name: "Durable", field: "durable", width: "10%", formatter: util.buildCheckboxMarkup}
-        ], function (obj)
-        {
-          connect.connect(obj.grid, "onRowDblClick", obj.grid,
-            function (evt)
-            {
-              var idx = evt.rowIndex;
-              var theItem = this.getItem(idx);
-              that.showLogInclusionRule(theItem);
-            });
-        }, gridProperties, EnhancedGrid);
-
-      this.addLogInclusionRuleButton = registry.byNode(query(".addLogInclusionRuleButton", containerNode)[0]);
-      this.deleteLogInclusionRuleButton = registry.byNode(query(".deleteLogInclusionRuleButton", containerNode)[0]);
-
-      this.deleteLogInclusionRuleButton.on("click",
-        function (e)
-        {
-          util.deleteSelectedObjects(
-            that.logInclusionRuleGrid.grid,
-            "Are you sure you want to delete log inclusion rule",
-            that.management,
-            {type: that.logInclusionRuleCategory.toLowerCase(), parent: that.modelObj},
-            that.loggerUpdater);
-        }
-      );
-
-      this.addLogInclusionRuleButton.on("click",
-        function(e)
-        {
-          addLogInclusionRule.show(that.management, that.modelObj, that.logInclusionRuleCategory);
-        }
-      );
-
-      this.loggerUpdater = new Updater(this);
-      this.loggerUpdater.update(function (x)
-      {
-        updater.add(that.loggerUpdater);
-      });
-    };
-
-    Logger.prototype.showLogInclusionRule = function (item)
-    {
-      var ruleModelObj = {name: item.name, type: this.logInclusionRuleCategory.toLowerCase(), parent: this.modelObj};
-      var that = this;
-      this.management.load(ruleModelObj, {actuals: true}).then(
-                              function(data)
-                              {
-                                addLogInclusionRule.show(that.management, ruleModelObj, that.logInclusionRuleCategory, data[0]);
-                              });
-    };
-
-    Logger.prototype.close = function ()
-    {
-      updater.remove(this.loggerUpdater);
-    };
-
-    Logger.prototype.destroy = function ()
-    {
-      this.close();
-      this.contentPane.onClose();
-      this.controller.tabContainer.removeChild(this.contentPane);
-      this.contentPane.destroyRecursive();
-    };
-
-    function Updater(logger)
-    {
-      var domNode = logger.contentPane.containerNode;
-      this.tabObject = logger;
-      this.modelObj = logger.modelObj;
-      var that = this;
-
-      function findNode(name)
-      {
-        return query("." + name, domNode)[0];
-      }
-
-      function storeNodes(names)
-      {
-        for (var i = 0; i < names.length; i++)
-        {
-          that[names[i]] = findNode(names[i]);
-        }
-      }
-
-      storeNodes(["name", "state", "type", "loggerAttributes", "loggerTypeSpecificDetails", "logInclusionRuleWarning", "durable", "errorCount", "warnCount"]);
-    }
-
-    Updater.prototype.update = function (callback)
-    {
-      var that = this;
-      that.tabObject.management.load(this.modelObj).then(
-        function (data)
-        {
-          that.loggerData = data[0] || {};
-          that.updateUI(that.loggerData);
-
-          if (callback)
-          {
-            callback();
-          }
-        },
-        function (error)
-        {
-          util.tabErrorHandler(error, {
-            updater: that,
-            contentPane: that.tabObject.contentPane,
-            tabContainer: that.tabObject.controller.tabContainer,
-            name: that.modelObj.name,
-            category: that.tabObject.userFriendlyName
-          });
-        });
-    };
-
-    Updater.prototype.updateUI = function (data)
-    {
-      this.name.innerHTML = entities.encode(String(data["name"]));
-      this.state.innerHTML = entities.encode(String(data["state"]));
-      this.type.innerHTML = entities.encode(String(data["type"]));
-      this.durable.innerHTML = util.buildCheckboxMarkup(data["durable"]);
-      this.errorCount.innerHTML = String(data["statistics"]["errorCount"]);
-      this.warnCount.innerHTML = String(data["statistics"]["warnCount"]);
-
-      if (!this.details)
-      {
-        var that = this;
-        require(["qpid/management/logger/" + this.tabObject.modelObj.type + "/show"],
-          function (Details)
-          {
-            that.details = new Details({
-              containerNode: that.loggerAttributes,
-              typeSpecificDetailsNode: that.loggerTypeSpecificDetails,
-              metadata: that.tabObject.management.metadata,
-              data: data,
-              management: that.tabObject.management,
-              modelObj: that.tabObject.modelObj
-            });
-          }
-        );
-      }
-      else
-      {
-        this.details.update(data);
-      }
-
-      var ruleFieldName = this.tabObject.logInclusionRuleCategory.toLowerCase() + "s"; // add plural "s"
-      if (data[ruleFieldName])
-      {
-        this.tabObject.logInclusionRuleGrid.grid.domNode.style.display = "block";
-        this.logInclusionRuleWarning.style.display = "none";
-      }
-      else
-      {
-        this.tabObject.logInclusionRuleGrid.grid.domNode.style.display = "none";
-        this.logInclusionRuleWarning.style.display = "block";
-      }
-      util.updateUpdatableStore(this.tabObject.logInclusionRuleGrid, data[ruleFieldName]);
-    };
+        "dojo/query",
+        "dojo/_base/connect",
+        "dijit/registry",
+        "dojox/html/entities",
+        "qpid/common/properties",
+        "qpid/common/updater",
+        "qpid/common/util",
+        "qpid/common/formatter",
+        "qpid/common/UpdatableStore",
+        "dojox/grid/EnhancedGrid",
+        "dojo/text!showLogger.html",
+        "qpid/management/addLogger",
+        "qpid/management/addLogInclusionRule",
+        "dojo/domReady!"],
+       function (parser, query, connect, registry, entities, properties, updater, util, formatter, UpdatableStore, EnhancedGrid, template, addLogger, addLogInclusionRule)
+       {
+
+           function Logger(name, parent, controller)
+           {
+               this.name = name;
+               this.controller = controller;
+               this.management = controller.management;
+               var isBrokerParent = parent.type == "broker";
+               this.category = isBrokerParent ? "BrokerLogger" : "VirtualHostLogger";
+               this.logInclusionRuleCategory =
+                   isBrokerParent ? "BrokerLogInclusionRule" : "VirtualHostLogInclusionRule";
+               this.modelObj = {
+                   type: this.category.toLowerCase(),
+                   name: name,
+                   parent: parent
+               };
+               this.userFriendlyName = (isBrokerParent ? "Broker Logger" : "Virtual Host Logger");
+           }
+
+           Logger.prototype.getTitle = function ()
+           {
+               return this.userFriendlyName + ": " + this.name;
+           };
+
+           Logger.prototype.open = function (contentPane)
+           {
+               var that = this;
+               this.contentPane = contentPane;
+               contentPane.containerNode.innerHTML = template;
+               parser.parse(contentPane.containerNode).then(function (instances)
+                                                            {
+                                                                that.onOpen(contentPane.containerNode)
+                                                            });
+
+           };
+
+           Logger.prototype.onOpen = function (containerNode)
+           {
+               var that = this;
+               this.editLoggerButton = registry.byNode(query(".editLoggerButton", containerNode)[0]);
+               this.deleteLoggerButton = registry.byNode(query(".deleteLoggerButton", containerNode)[0]);
+               this.deleteLoggerButton.on("click", function (e)
+               {
+                   if (confirm("Are you sure you want to delete logger '" + entities.encode(String(that.name)) + "'?"))
+                   {
+                       that.management.remove(that.modelObj).then(function (x)
+                                                                  {
+                                                                      that.destroy();
+                                                                  }, util.xhrErrorHandler);
+                   }
+               });
+               this.editLoggerButton.on("click", function (event)
+               {
+                   that.management.load(that.modelObj,
+                                        {
+                                            actuals: true,
+                                            depth: 0
+                                        }).then(function (data)
+                                                {
+                                                    addLogger.show(that.management,
+                                                                   that.modelObj,
+                                                                   that.category,
+                                                                   data[0]);
+                                                });
+               });
+
+               var gridProperties = {
+                   selectionMode: "extended",
+                   plugins: {
+                       indirectSelection: true
+                   }
+               };
+
+               this.logInclusionRuleGrid = new UpdatableStore([], query(".logInclusionRuleGrid", containerNode)[0], [{
+                   name: "Rule Name",
+                   field: "name",
+                   width: "20%"
+               },
+                   {
+                       name: "Type",
+                       field: "type",
+                       width: "20%"
+                   },
+                   {
+                       name: "Logger Name",
+                       field: "loggerName",
+                       width: "30%"
+                   },
+                   {
+                       name: "Level",
+                       field: "level",
+                       width: "20%"
+                   },
+                   {
+                       name: "Durable",
+                       field: "durable",
+                       width: "10%",
+                       formatter: util.buildCheckboxMarkup
+                   }], function (obj)
+               {
+                   connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt)
+                   {
+                       var idx = evt.rowIndex;
+                       var theItem = this.getItem(idx);
+                       that.showLogInclusionRule(theItem);
+                   });
+               }, gridProperties, EnhancedGrid);
+
+               this.addLogInclusionRuleButton = registry.byNode(query(".addLogInclusionRuleButton", containerNode)[0]);
+               this.deleteLogInclusionRuleButton =
+                   registry.byNode(query(".deleteLogInclusionRuleButton", containerNode)[0]);
+
+               this.deleteLogInclusionRuleButton.on("click", function (e)
+               {
+                   util.deleteSelectedObjects(that.logInclusionRuleGrid.grid,
+                                              "Are you sure you want to delete log inclusion rule",
+                                              that.management,
+                                              {
+                                                  type: that.logInclusionRuleCategory.toLowerCase(),
+                                                  parent: that.modelObj
+                                              },
+                                              that.loggerUpdater);
+               });
+
+               this.addLogInclusionRuleButton.on("click", function (e)
+               {
+                   addLogInclusionRule.show(that.management, that.modelObj, that.logInclusionRuleCategory);
+               });
+
+               this.loggerUpdater = new Updater(this);
+               this.loggerUpdater.update(function (x)
+                                         {
+                                             updater.add(that.loggerUpdater);
+                                         });
+           };
+
+           Logger.prototype.showLogInclusionRule = function (item)
+           {
+               var ruleModelObj = {
+                   name: item.name,
+                   type: this.logInclusionRuleCategory.toLowerCase(),
+                   parent: this.modelObj
+               };
+               var that = this;
+               this.management.load(ruleModelObj, {actuals: true}).then(function (data)
+                                                                        {
+                                                                            addLogInclusionRule.show(that.management,
+                                                                                                     ruleModelObj,
+                                                                                                     that.logInclusionRuleCategory,
+                                                                                                     data[0]);
+                                                                        });
+           };
+
+           Logger.prototype.close = function ()
+           {
+               updater.remove(this.loggerUpdater);
+           };
+
+           Logger.prototype.destroy = function ()
+           {
+               this.close();
+               this.contentPane.onClose();
+               this.controller.tabContainer.removeChild(this.contentPane);
+               this.contentPane.destroyRecursive();
+           };
+
+           function Updater(logger)
+           {
+               var domNode = logger.contentPane.containerNode;
+               this.tabObject = logger;
+               this.modelObj = logger.modelObj;
+               var that = this;
+
+               function findNode(name)
+               {
+                   return query("." + name, domNode)[0];
+               }
+
+               function storeNodes(names)
+               {
+                   for (var i = 0; i < names.length; i++)
+                   {
+                       that[names[i]] = findNode(names[i]);
+                   }
+               }
+
+               storeNodes(["name",
+                           "state",
+                           "type",
+                           "loggerAttributes",
+                           "loggerTypeSpecificDetails",
+                           "logInclusionRuleWarning",
+                           "durable",
+                           "errorCount",
+                           "warnCount"]);
+           }
+
+           Updater.prototype.update = function (callback)
+           {
+               var that = this;
+               that.tabObject.management.load(this.modelObj).then(function (data)
+                                                                  {
+                                                                      that.loggerData = data[0] || {};
+                                                                      that.updateUI(that.loggerData);
+
+                                                                      if (callback)
+                                                                      {
+                                                                          callback();
+                                                                      }
+                                                                  }, function (error)
+                                                                  {
+                                                                      util.tabErrorHandler(error, {
+                                                                          updater: that,
+                                                                          contentPane: that.tabObject.contentPane,
+                                                                          tabContainer: that.tabObject.controller.tabContainer,
+                                                                          name: that.modelObj.name,
+                                                                          category: that.tabObject.userFriendlyName
+                                                                      });
+                                                                  });
+           };
+
+           Updater.prototype.updateUI = function (data)
+           {
+               this.name.innerHTML = entities.encode(String(data["name"]));
+               this.state.innerHTML = entities.encode(String(data["state"]));
+               this.type.innerHTML = entities.encode(String(data["type"]));
+               this.durable.innerHTML = util.buildCheckboxMarkup(data["durable"]);
+               this.errorCount.innerHTML = String(data["statistics"]["errorCount"]);
+               this.warnCount.innerHTML = String(data["statistics"]["warnCount"]);
+
+               if (!this.details)
+               {
+                   var that = this;
+                   require(["qpid/management/logger/" + this.tabObject.modelObj.type + "/show"], function (Details)
+                   {
+                       that.details = new Details({
+                           containerNode: that.loggerAttributes,
+                           typeSpecificDetailsNode: that.loggerTypeSpecificDetails,
+                           metadata: that.tabObject.management.metadata,
+                           data: data,
+                           management: that.tabObject.management,
+                           modelObj: that.tabObject.modelObj
+                       });
+                   });
+               }
+               else
+               {
+                   this.details.update(data);
+               }
+
+               var ruleFieldName = this.tabObject.logInclusionRuleCategory.toLowerCase() + "s"; // add plural "s"
+               if (data[ruleFieldName])
+               {
+                   this.tabObject.logInclusionRuleGrid.grid.domNode.style.display = "block";
+                   this.logInclusionRuleWarning.style.display = "none";
+               }
+               else
+               {
+                   this.tabObject.logInclusionRuleGrid.grid.domNode.style.display = "none";
+                   this.logInclusionRuleWarning.style.display = "block";
+               }
+               util.updateUpdatableStore(this.tabObject.logInclusionRuleGrid, data[ruleFieldName]);
+           };
 
-    return Logger;
-  });
+           return Logger;
+       });

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Management.js Fri Apr 29 11:04:40 2016
@@ -29,546 +29,592 @@ define(["dojo/_base/lang",
         "qpid/common/metadata",
         "qpid/common/timezone",
         "qpid/management/UserPreferences"],
-  function (lang, array, xhr, ioQuery, json, Promise, Deferred, sasl, Metadata, Timezone, UserPreferences)
-  {
+       function (lang, array, xhr, ioQuery, json, Promise, Deferred, sasl, Metadata, Timezone, UserPreferences)
+       {
 
-    function shallowCopy(source, target, excludes)
-    {
-        if (source)
-        {
-            for(var fieldName in source)
-            {
-                if(source.hasOwnProperty(fieldName))
-                {
-                    if (excludes && array.indexOf(excludes,fieldName) != -1)
-                    {
-                        continue;
-                    }
-
-                    target[fieldName] = source[fieldName];
-                }
-            }
-        }
-        return target;
-    }
-
-    function merge(data1, data2)
-    {
-        var result = {};
-        shallowCopy(data1, result);
-        shallowCopy(data2, result);
-        return result;
-    }
-
-    // summary:
-    // This is a facade for sending management requests to broker at given brokerURL specifying schema, host and port.
-    // Optional errorHandler method can be set and invoked on error responses.
-    function Management(brokerURL, errorHandler)
-    {
-        this.brokerURL = brokerURL;
-        this.errorHandler = errorHandler || function(error){console.error(error);};
-    }
-
-    // summary:
-    // Submits HTTP request to broker using dojo.request.xhr
-    // request: Object?
-    //        request object can have the same fields as dojo.request.xhr options and  additional 'url' field:
-    //          data: String|Object|FormData?
-    //                Data to transfer. This is ignored for GET and DELETE requests.
-    //          headers: Object?
-    //              Headers to use for the request.
-    //          user: String?
-    //                Username to use during the request.
-    //          password: String?
-    //                Password to use during the request.
-    //          withCredentials: Boolean?
-    //                For cross-site requests, whether to send credentials or not.
-    //          query: Object?
-    //              the query parameters to add to the request url
-    //          handleAs: String
-    //                Indicates how the response will be handled.
-    //          url: String?
-    //              relative URL to broker REST API
-    //
-    // returns: promise of type dojo.promise.Promise
-    //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
-    Management.prototype.submit = function(request)
-    {
-        var requestOptions = {
-            sync: false,
-            handleAs: "json",
-            withCredentials: true,
-            headers: { "Content-Type": "application/json"}
-        };
-
-        if (request)
-        {
-            shallowCopy(request, requestOptions, ["url"]);
-            if (requestOptions.data && requestOptions.headers && requestOptions.headers["Content-Type"]
-                && requestOptions.headers["Content-Type"] == "application/json"
-                && typeof requestOptions.data != "string")
-            {
-                requestOptions.data = json.stringify(request.data );
-            }
-        }
-
-        if (!requestOptions.method)
-        {
-            requestOptions.method = "GET";
-        }
-
-        var url = this.getFullUrl(request.url);
-        var promise = xhr(url, requestOptions);
-        var errorHandler = this.errorHandler;
-
-        // decorate promise in order to use a default error handler when 'then' method is invoked without providing error handler
-        return lang.mixin(new Promise(),
-               {
-                   then:          function(callback, errback, progback) { return promise.then(callback, errback||errorHandler, progback ); },
-                   cancel:        function(reason, strict) { return promise.cancel(reason, strict); },
-                   isResolved:    function(){return promise.isResolved();},
-                   isRejected:    function(){return promise.isRejected();},
-                   isFulfilled:   function(){return promise.isFulfilled();},
-                   isCanceled:    function(){return promise.isCanceled();},
-                   always:        function(callbackOrErrback){return promise.always(callbackOrErrback);},
-                   otherwise:     function(errback){return promise.otherwise(errback);},
-                   trace:         function(){ return promise.trace();},
-                   traceRejected: function(){return promise.traceRejected();},
-                   toString:      function(){return promise.toString();},
-                   response:      promise.response
+           function shallowCopy(source, target, excludes)
+           {
+               if (source)
+               {
+                   for (var fieldName in source)
+                   {
+                       if (source.hasOwnProperty(fieldName))
+                       {
+                           if (excludes && array.indexOf(excludes, fieldName) != -1)
+                           {
+                               continue;
+                           }
+
+                           target[fieldName] = source[fieldName];
+                       }
+                   }
+               }
+               return target;
+           }
+
+           function merge(data1, data2)
+           {
+               var result = {};
+               shallowCopy(data1, result);
+               shallowCopy(data2, result);
+               return result;
+           }
+
+           // summary:
+           // This is a facade for sending management requests to broker at given brokerURL specifying schema, host and port.
+           // Optional errorHandler method can be set and invoked on error responses.
+           function Management(brokerURL, errorHandler)
+           {
+               this.brokerURL = brokerURL;
+               this.errorHandler = errorHandler || function (error)
+                   {
+                       console.error(error);
+                   };
+           }
+
+           // summary:
+           // Submits HTTP request to broker using dojo.request.xhr
+           // request: Object?
+           //        request object can have the same fields as dojo.request.xhr options and  additional 'url' field:
+           //          data: String|Object|FormData?
+           //                Data to transfer. This is ignored for GET and DELETE requests.
+           //          headers: Object?
+           //              Headers to use for the request.
+           //          user: String?
+           //                Username to use during the request.
+           //          password: String?
+           //                Password to use during the request.
+           //          withCredentials: Boolean?
+           //                For cross-site requests, whether to send credentials or not.
+           //          query: Object?
+           //              the query parameters to add to the request url
+           //          handleAs: String
+           //                Indicates how the response will be handled.
+           //          url: String?
+           //              relative URL to broker REST API
+           //
+           // returns: promise of type dojo.promise.Promise
+           //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
+           Management.prototype.submit = function (request)
+           {
+               var requestOptions = {
+                   sync: false,
+                   handleAs: "json",
+                   withCredentials: true,
+                   headers: {"Content-Type": "application/json"}
+               };
+
+               if (request)
+               {
+                   shallowCopy(request, requestOptions, ["url"]);
+                   if (requestOptions.data && requestOptions.headers && requestOptions.headers["Content-Type"]
+                       && requestOptions.headers["Content-Type"] == "application/json" && typeof requestOptions.data
+                                                                                          != "string")
+                   {
+                       requestOptions.data = json.stringify(request.data);
+                   }
+               }
+
+               if (!requestOptions.method)
+               {
+                   requestOptions.method = "GET";
+               }
+
+               var url = this.getFullUrl(request.url);
+               var promise = xhr(url, requestOptions);
+               var errorHandler = this.errorHandler;
+
+               // decorate promise in order to use a default error handler when 'then' method is invoked without providing error handler
+               return lang.mixin(new Promise(), {
+                   then: function (callback, errback, progback)
+                   {
+                       return promise.then(callback, errback || errorHandler, progback);
+                   },
+                   cancel: function (reason, strict)
+                   {
+                       return promise.cancel(reason, strict);
+                   },
+                   isResolved: function ()
+                   {
+                       return promise.isResolved();
+                   },
+                   isRejected: function ()
+                   {
+                       return promise.isRejected();
+                   },
+                   isFulfilled: function ()
+                   {
+                       return promise.isFulfilled();
+                   },
+                   isCanceled: function ()
+                   {
+                       return promise.isCanceled();
+                   },
+                   always: function (callbackOrErrback)
+                   {
+                       return promise.always(callbackOrErrback);
+                   },
+                   otherwise: function (errback)
+                   {
+                       return promise.otherwise(errback);
+                   },
+                   trace: function ()
+                   {
+                       return promise.trace();
+                   },
+                   traceRejected: function ()
+                   {
+                       return promise.traceRejected();
+                   },
+                   toString: function ()
+                   {
+                       return promise.toString();
+                   },
+                   response: promise.response
                });
-    };
+           };
+
+           Management.prototype.get = function (request)
+           {
+               var requestOptions = merge(request, {method: "GET"});
+               return this.submit(requestOptions);
+           };
+
+           Management.prototype.post = function (request, data)
+           {
+               var requestOptions = merge(request,
+                                          {
+                                              method: "POST",
+                                              data: data
+                                          });
+               return this.submit(requestOptions);
+           };
+
+           Management.prototype.del = function (request)
+           {
+               var requestOptions = merge(request, {method: "DELETE"});
+               return this.submit(requestOptions);
+           };
+
+           // summary:
+           //  Loads object data specified as modelObj argument
+           //   modelObj: Object?
+           //             is a JSON object specifying the hierarchy
+           //             It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //
+           //   parameters: Object?
+           //               is optional JSON to pass additional request parameters which will be added into query of REST url
+           //
+           // returns: promise of type dojo.promise.Promise
+           //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
+           Management.prototype.load = function (modelObj, parameters, requestOptions)
+           {
+               var url = this.objectToURL(modelObj);
+               var request = {url: url};
 
-    Management.prototype.get = function(request)
-    {
-        var requestOptions = merge(request, {method: "GET"});
-        return this.submit(requestOptions);
-    };
-
-    Management.prototype.post = function(request, data)
-    {
-        var requestOptions = merge(request, {method: "POST", data: data});
-        return this.submit(requestOptions);
-    };
-
-    Management.prototype.del = function(request)
-    {
-        var requestOptions = merge(request, {method: "DELETE"});
-        return this.submit(requestOptions);
-    };
-
-    // summary:
-    //  Loads object data specified as modelObj argument
-    //   modelObj: Object?
-    //             is a JSON object specifying the hierarchy
-    //             It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //
-    //   parameters: Object?
-    //               is optional JSON to pass additional request parameters which will be added into query of REST url
-    //
-    // returns: promise of type dojo.promise.Promise
-    //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
-    Management.prototype.load = function(modelObj, parameters, requestOptions)
-    {
-        var url = this.objectToURL(modelObj);
-        var request = {url: url};
-
-        if (requestOptions)
-        {
-            lang.mixin(request,requestOptions);
-        }
-
-        if (parameters)
-        {
-            request.query = parameters;
-        }
-        return this.get(request);
-    };
-
-    // summary:
-    //  Creates object as specified in data parameter with given category and with given parent parentModelObject
-    //   category: String?
-    //             Object category
-    //
-    //   parentModelObject: Object?
-    //              Parent object hierarchy
-    //              It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   data; Object?
-    //              Object structure
-    //
-    // returns: promise of type dojo.promise.Promise
-    //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
-    Management.prototype.create = function(category, parentModelObject, data)
-    {
-        var newObjectModel ={type: category.toLowerCase(), parent: parentModelObject};
-        var url = this.objectToURL(newObjectModel);
-        var request = {url: url};
-        return this.post(request, data);
-    };
-
-    // summary:
-    //  Updates object (which can be located using modelObj parameter) attributes to the values set in data parameter
-    //
-    //   modelObj: Object?
-    //              Object specifying hierarchy
-    //              It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   data; Object?
-    //              New attributes
-    //
-    // returns: promise of type dojo.promise.Promise
-    //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
-    Management.prototype.update = function(modelObj, data)
-    {
-        var url = this.objectToURL(modelObj);
-        var request = {url: url};
-        return this.post(request, data);
-    };
-
-    // summary:
-    //  Removes object specified as modelObj argument
-    //   modelObj: Object?
-    //             hierarchy object
-    //             It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   parameters: Object?
-    //               is optional JSON object to pass additional request parameters which will be added into query of REST url
-    //
-    // returns: promise of type dojo.promise.Promise
-    //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
-    Management.prototype.remove = function(modelObj, parameters)
-    {
-        var url = this.objectToURL(modelObj);
-        var request = {url: url};
-        if (parameters)
-        {
-            request.query = parameters;
-        }
-        return this.del(request);
-    };
-
-    // summary:
-    //  Downloads current JSON for object specified as modelObj argument
-    //
-    //   modelObj: Object?
-    //             hierarchy object
-    //             It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   parameters: Object?
-    //               is optional JSON object to pass additional request parameters  which will be added into query of REST url
-    //
-    Management.prototype.download = function(modelObj, parameters)
-    {
-        var url = this.buildObjectURL(modelObj, parameters);
-        setTimeout(function() {window.location  = url;}, 100);
-    }
-
-    // summary:
-    //  Downloads current JSON for object specified as modelObj argument into iframe
-    Management.prototype.downloadIntoFrame = function(modelObj, parameters)
-    {
-        var url = this.buildObjectURL(modelObj, parameters);
-        var iframe = document.createElement('iframe');
-        iframe.id = "downloader_" + modelObj.name;
-        document.body.appendChild(iframe);
-        iframe.src = url;
-        // It seems there is no way to remove this iframe in a manner that is cross browser compatible.
-    }
-
-    // summary:
-    //  Builds relative REST url (excluding schema, host and port) for the object representing CO hierarchy
-    //   modelObj: Object?
-    //             hierarchy object
-    //             It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   parameters: Object?
-    //             is optional JSON object to pass additional request parameters  which will be added into query of REST url
-    //
-    // returns: relative REST url for the hierarchy object
-    //
-    Management.prototype.objectToURL = function(modelObj)
-    {
-        var url = null;
-        if (modelObj.type == "broker")
-        {
-            url = "broker"
-        }
-        else
-        {
-            url = encodeURIComponent(modelObj.type);
-            var parentPath = this.objectToPath(modelObj);
-            if (parentPath)
-            {
-                 url = url + "/" + parentPath;
-            }
-
-            if (modelObj.name)
-            {
-               if (url.substring(url.length - 1) != "/")
-               {
-                    url = url + "/";
-               }
-               // Double encode the object name in case it contains slashes
-               url = url + encodeURIComponent(encodeURIComponent(modelObj.name))
-            }
-        }
-        return "api/latest/" + url;
-    };
-
-    // summary:
-    //  Builds a servlet path of REST url for the object representing CO hierarchy
-    //   modelObj: Object?
-    //             hierarchy object
-    //             It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   parameters: Object?
-    //             is optional JSON object to pass additional request parameters  which will be added into query of REST url
-    //
-    // returns: relative REST servlet path for the hierarchy object
-    //
-    Management.prototype.objectToPath = function(modelObj)
-    {
-        var path = "";
-        var parent = modelObj.parent;
-        while (parent && parent.type != "broker")
-        {
-            if (path)
-            {
-                path = encodeURIComponent(encodeURIComponent(parent.name)) + "/" + path;
-            }
-            else
-            {
-                path = encodeURIComponent(encodeURIComponent(parent.name));
-            }
-            parent = parent.parent;
-        }
-        return path;
-    };
-
-    // summary:
-    //  Builds full REST url for the object representing CO hierarchy
-    //   modelObj: Object?
-    //             hierarchy object
-    //             It can have the following fields:
-    //               name: String?
-    //                     name of the object
-    //               type: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     parent of the object in the same format, having fields name, type, parent
-    //   parameters: Object?
-    //             is optional JSON object to pass additional request parameters  which will be added into query of REST url
-    //
-    // returns: full REST url for the hierarchy object
-    //
-    Management.prototype.buildObjectURL = function(modelObj, parameters)
-    {
-        var url = this.objectToURL(modelObj);
-        if (parameters)
-        {
-            url = url + "?" + ioQuery.objectToQuery(parameters);
-        }
-        return this.getFullUrl(url);
-    }
-
-    // summary:
-    //  Returns full REST url for the relative REST url
-    //
-    // returns: full urk for the given relative URL
-    //
-    Management.prototype.getFullUrl = function(url)
-    {
-        var baseUrl = this.brokerURL || "";
-        if (baseUrl != "")
-        {
-            baseUrl = baseUrl + "/";
-        }
-        return baseUrl + url;
-    }
-
-    // summary:
-    //  Loads meta data, time zones, user preferences and invokes callback functions after loading user preferences
-    //
-    Management.prototype.init = function(callback)
-    {
-        var that = this;
-        this.loadMetadata(function()
+               if (requestOptions)
+               {
+                   lang.mixin(request, requestOptions);
+               }
+
+               if (parameters)
+               {
+                   request.query = parameters;
+               }
+               return this.get(request);
+           };
+
+           // summary:
+           //  Creates object as specified in data parameter with given category and with given parent parentModelObject
+           //   category: String?
+           //             Object category
+           //
+           //   parentModelObject: Object?
+           //              Parent object hierarchy
+           //              It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   data; Object?
+           //              Object structure
+           //
+           // returns: promise of type dojo.promise.Promise
+           //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
+           Management.prototype.create = function (category, parentModelObject, data)
+           {
+               var newObjectModel = {
+                   type: category.toLowerCase(),
+                   parent: parentModelObject
+               };
+               var url = this.objectToURL(newObjectModel);
+               var request = {url: url};
+               return this.post(request, data);
+           };
+
+           // summary:
+           //  Updates object (which can be located using modelObj parameter) attributes to the values set in data parameter
+           //
+           //   modelObj: Object?
+           //              Object specifying hierarchy
+           //              It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   data; Object?
+           //              New attributes
+           //
+           // returns: promise of type dojo.promise.Promise
+           //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
+           Management.prototype.update = function (modelObj, data)
+           {
+               var url = this.objectToURL(modelObj);
+               var request = {url: url};
+               return this.post(request, data);
+           };
+
+           // summary:
+           //  Removes object specified as modelObj argument
+           //   modelObj: Object?
+           //             hierarchy object
+           //             It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   parameters: Object?
+           //               is optional JSON object to pass additional request parameters which will be added into query of REST url
+           //
+           // returns: promise of type dojo.promise.Promise
+           //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
+           Management.prototype.remove = function (modelObj, parameters)
+           {
+               var url = this.objectToURL(modelObj);
+               var request = {url: url};
+               if (parameters)
+               {
+                   request.query = parameters;
+               }
+               return this.del(request);
+           };
+
+           // summary:
+           //  Downloads current JSON for object specified as modelObj argument
+           //
+           //   modelObj: Object?
+           //             hierarchy object
+           //             It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   parameters: Object?
+           //               is optional JSON object to pass additional request parameters  which will be added into query of REST url
+           //
+           Management.prototype.download = function (modelObj, parameters)
+           {
+               var url = this.buildObjectURL(modelObj, parameters);
+               setTimeout(function ()
                           {
-                            that.loadTimezones(function()
-                                                {
-                                                    that.loadUserPreferences(callback)
-                                                });
-                          });
-    };
-
-    // summary:
-    //  Loads meta data and store it under 'metadata' field as object of type qpid.common.metadata object.
-    //  When meta data are loaded successfully a callback function is executed, otherwise default error handler is invoked
-    //
-    Management.prototype.loadMetadata = function(callback)
-    {
-        var that = this;
-        this.get({url: "service/metadata"}).then(
-                 function(data)
-                 {
-                    that.metadata = new Metadata(data);
-                    if (callback)
-                    {
-                        callback();
-                    }
-                 });
-    };
-
-    // summary:
-    //  Loads timezones and store them under 'timezone' field as  object of type qpid.common.timezone object
-    //  When timezones are loaded successfully a callback function is executed, otherwise default error handler is invoked
-    //
-    Management.prototype.loadTimezones = function(callback)
-    {
-        var that = this;
-        that.get({url: "service/timezones"}).then(
-                 function(timezones)
-                 {
-                    that.timezone = new Timezone(timezones);
-                    if (callback)
-                    {
-                        callback();
-                    }
-                 });
-    };
-
-    // summary:
-    //  Loads user preferences and store them under 'userPreferences' field as object of type qpid.management.UserPreferences
-    //  Callback is invoked on both successful and unsuccessful preferences request
-    //
-    Management.prototype.loadUserPreferences = function(callback)
-    {
-        this.userPreferences = new UserPreferences(this);
-        this.userPreferences.load(callback, callback);
-    };
-
-    var saslServiceUrl = "service/sasl";
-
-    Management.prototype.getSaslStatus = function()
-    {
-        return this.get({url: saslServiceUrl});
-    }
-
-    Management.prototype.sendSaslResponse = function(response)
-    {
-        return this.submit({
-                              url: saslServiceUrl,
-                              data: response,
-                              headers: {},
-                              method: "POST"
-                           });
-    };
-
-    Management.prototype.authenticate = function(forceAuthentication)
-    {
-        var that = this;
-        var deferred = new Deferred();
-        var successCallback = function(data)
-                              {
-                                that.getSaslStatus().then(function(saslData)
-                                                          {
-                                                            if (saslData.user)
-                                                            {
-                                                                deferred.resolve(saslData);
-                                                            }
-                                                            else
+                              window.location = url;
+                          }, 100);
+           }
+
+           // summary:
+           //  Downloads current JSON for object specified as modelObj argument into iframe
+           Management.prototype.downloadIntoFrame = function (modelObj, parameters)
+           {
+               var url = this.buildObjectURL(modelObj, parameters);
+               var iframe = document.createElement('iframe');
+               iframe.id = "downloader_" + modelObj.name;
+               document.body.appendChild(iframe);
+               iframe.src = url;
+               // It seems there is no way to remove this iframe in a manner that is cross browser compatible.
+           }
+
+           // summary:
+           //  Builds relative REST url (excluding schema, host and port) for the object representing CO hierarchy
+           //   modelObj: Object?
+           //             hierarchy object
+           //             It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   parameters: Object?
+           //             is optional JSON object to pass additional request parameters  which will be added into query of REST url
+           //
+           // returns: relative REST url for the hierarchy object
+           //
+           Management.prototype.objectToURL = function (modelObj)
+           {
+               var url = null;
+               if (modelObj.type == "broker")
+               {
+                   url = "broker"
+               }
+               else
+               {
+                   url = encodeURIComponent(modelObj.type);
+                   var parentPath = this.objectToPath(modelObj);
+                   if (parentPath)
+                   {
+                       url = url + "/" + parentPath;
+                   }
+
+                   if (modelObj.name)
+                   {
+                       if (url.substring(url.length - 1) != "/")
+                       {
+                           url = url + "/";
+                       }
+                       // Double encode the object name in case it contains slashes
+                       url = url + encodeURIComponent(encodeURIComponent(modelObj.name))
+                   }
+               }
+               return "api/latest/" + url;
+           };
+
+           // summary:
+           //  Builds a servlet path of REST url for the object representing CO hierarchy
+           //   modelObj: Object?
+           //             hierarchy object
+           //             It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   parameters: Object?
+           //             is optional JSON object to pass additional request parameters  which will be added into query of REST url
+           //
+           // returns: relative REST servlet path for the hierarchy object
+           //
+           Management.prototype.objectToPath = function (modelObj)
+           {
+               var path = "";
+               var parent = modelObj.parent;
+               while (parent && parent.type != "broker")
+               {
+                   if (path)
+                   {
+                       path = encodeURIComponent(encodeURIComponent(parent.name)) + "/" + path;
+                   }
+                   else
+                   {
+                       path = encodeURIComponent(encodeURIComponent(parent.name));
+                   }
+                   parent = parent.parent;
+               }
+               return path;
+           };
+
+           // summary:
+           //  Builds full REST url for the object representing CO hierarchy
+           //   modelObj: Object?
+           //             hierarchy object
+           //             It can have the following fields:
+           //               name: String?
+           //                     name of the object
+           //               type: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     parent of the object in the same format, having fields name, type, parent
+           //   parameters: Object?
+           //             is optional JSON object to pass additional request parameters  which will be added into query of REST url
+           //
+           // returns: full REST url for the hierarchy object
+           //
+           Management.prototype.buildObjectURL = function (modelObj, parameters)
+           {
+               var url = this.objectToURL(modelObj);
+               if (parameters)
+               {
+                   url = url + "?" + ioQuery.objectToQuery(parameters);
+               }
+               return this.getFullUrl(url);
+           }
+
+           // summary:
+           //  Returns full REST url for the relative REST url
+           //
+           // returns: full urk for the given relative URL
+           //
+           Management.prototype.getFullUrl = function (url)
+           {
+               var baseUrl = this.brokerURL || "";
+               if (baseUrl != "")
+               {
+                   baseUrl = baseUrl + "/";
+               }
+               return baseUrl + url;
+           }
+
+           // summary:
+           //  Loads meta data, time zones, user preferences and invokes callback functions after loading user preferences
+           //
+           Management.prototype.init = function (callback)
+           {
+               var that = this;
+               this.loadMetadata(function ()
+                                 {
+                                     that.loadTimezones(function ()
+                                                        {
+                                                            that.loadUserPreferences(callback)
+                                                        });
+                                 });
+           };
+
+           // summary:
+           //  Loads meta data and store it under 'metadata' field as object of type qpid.common.metadata object.
+           //  When meta data are loaded successfully a callback function is executed, otherwise default error handler is invoked
+           //
+           Management.prototype.loadMetadata = function (callback)
+           {
+               var that = this;
+               this.get({url: "service/metadata"}).then(function (data)
+                                                        {
+                                                            that.metadata = new Metadata(data);
+                                                            if (callback)
                                                             {
-                                                                deferred.reject({message: "User identifier is not found!"
-                                                                                          + " Authentication failed!"});
+                                                                callback();
                                                             }
-                                                          },
-                                                          failureCallback);
-                              };
-        var failureCallback = function(data)
-                              {
-                                deferred.reject(data);
-                              };
-        this.getSaslStatus().then(function(data)
+                                                        });
+           };
+
+           // summary:
+           //  Loads timezones and store them under 'timezone' field as  object of type qpid.common.timezone object
+           //  When timezones are loaded successfully a callback function is executed, otherwise default error handler is invoked
+           //
+           Management.prototype.loadTimezones = function (callback)
+           {
+               var that = this;
+               that.get({url: "service/timezones"}).then(function (timezones)
+                                                         {
+                                                             that.timezone = new Timezone(timezones);
+                                                             if (callback)
+                                                             {
+                                                                 callback();
+                                                             }
+                                                         });
+           };
+
+           // summary:
+           //  Loads user preferences and store them under 'userPreferences' field as object of type qpid.management.UserPreferences
+           //  Callback is invoked on both successful and unsuccessful preferences request
+           //
+           Management.prototype.loadUserPreferences = function (callback)
+           {
+               this.userPreferences = new UserPreferences(this);
+               this.userPreferences.load(callback, callback);
+           };
+
+           var saslServiceUrl = "service/sasl";
+
+           Management.prototype.getSaslStatus = function ()
+           {
+               return this.get({url: saslServiceUrl});
+           }
+
+           Management.prototype.sendSaslResponse = function (response)
+           {
+               return this.submit({
+                                      url: saslServiceUrl,
+                                      data: response,
+                                      headers: {},
+                                      method: "POST"
+                                  });
+           };
+
+           Management.prototype.authenticate = function (forceAuthentication)
+           {
+               var that = this;
+               var deferred = new Deferred();
+               var successCallback = function (data)
+               {
+                   that.getSaslStatus().then(function (saslData)
+                                             {
+                                                 if (saslData.user)
+                                                 {
+                                                     deferred.resolve(saslData);
+                                                 }
+                                                 else
+                                                 {
+                                                     deferred.reject({
+                                                                         message: "User identifier is not found!"
+                                                                                  + " Authentication failed!"
+                                                                     });
+                                                 }
+                                             }, failureCallback);
+               };
+               var failureCallback = function (data)
+               {
+                   deferred.reject(data);
+               };
+               this.getSaslStatus().then(function (data)
+                                         {
+                                             if (data.user && !forceAuthentication)
+                                             {
+                                                 deferred.resolve(data);
+                                             }
+                                             else
                                              {
-                                                if (data.user && !forceAuthentication)
-                                                {
-                                                    deferred.resolve(data);
-                                                }
-                                                else
-                                                {
-                                                    sasl.authenticate(data.mechanisms, that).then(successCallback,
-                                                                                                  failureCallback);
-                                                }
-                                             },
-                                             failureCallback);
-        return deferred.promise;
-    };
-
-    // summary:
-    //   Sends query request
-    //   query: query Object?
-    //             is a JSON object specifying the hierarchy
-    //             It can have the following fields:
-    //               where: String?
-    //                     sql like expression containing 'where' conditions
-    //               select: String?
-    //                     coma separated list of fields to select
-    //               category: String?
-    //                     category of the object
-    //               parent: Object?
-    //                     hierarchy object defining query scope,
-    //                     if not set queries will be executed against broker.
-    //                     Virtual host query scope can be defined by setting parent
-    //                     into corresponding object representing a virtual host hierarchy
-    //
-    // returns: promise of type dojo.promise.Promise
-    //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
-    Management.prototype.query = function(query)
-    {
-        var url = "api/latest/"  + (query.parent &&  query.parent.type === "virtualhost" ?
-                                    "queryvhost/" +  this.objectToPath({parent: query.parent}) :
-                                    "querybroker") +  (query.category ? "/" + query.category  : "");
-        var request = {url: this.getFullUrl(url), query: {}};
-        shallowCopy(query, request.query, ["parent", "category"]);
-        return this.get(request);
-    };
+                                                 sasl.authenticate(data.mechanisms, that)
+                                                     .then(successCallback, failureCallback);
+                                             }
+                                         }, failureCallback);
+               return deferred.promise;
+           };
+
+           // summary:
+           //   Sends query request
+           //   query: query Object?
+           //             is a JSON object specifying the hierarchy
+           //             It can have the following fields:
+           //               where: String?
+           //                     sql like expression containing 'where' conditions
+           //               select: String?
+           //                     coma separated list of fields to select
+           //               category: String?
+           //                     category of the object
+           //               parent: Object?
+           //                     hierarchy object defining query scope,
+           //                     if not set queries will be executed against broker.
+           //                     Virtual host query scope can be defined by setting parent
+           //                     into corresponding object representing a virtual host hierarchy
+           //
+           // returns: promise of type dojo.promise.Promise
+           //      Promise returned by dojo.request.xhr with modified then method allowing to use default error handler if none is specified.
+           Management.prototype.query = function (query)
+           {
+               var url = "api/latest/" + (query.parent && query.parent.type === "virtualhost" ? "queryvhost/"
+                         + this.objectToPath({parent: query.parent}) : "querybroker") + (query.category ? "/"
+                         + query.category : "");
+               var request = {
+                   url: this.getFullUrl(url),
+                   query: {}
+               };
+               shallowCopy(query, request.query, ["parent", "category"]);
+               return this.get(request);
+           };
 
-    return Management;
-  });
+           return Management;
+       });

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js?rev=1741609&r1=1741608&r2=1741609&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Plugin.js Fri Apr 29 11:04:40 2016
@@ -29,31 +29,41 @@ define(["dojo/parser",
         "dojox/html/entities",
         "dojo/text!showPlugin.html",
         "dojo/domReady!"],
-       function (parser, query, connect, properties, updater, util, registry, event, entities, template) {
+       function (parser, query, connect, properties, updater, util, registry, event, entities, template)
+       {
 
-           function Plugin(name, parent, controller) {
+           function Plugin(name, parent, controller)
+           {
                this.name = name;
                this.controller = controller;
                this.management = controller.management;
-               this.modelObj = { type: "plugin", name: name, parent: parent };
+               this.modelObj = {
+                   type: "plugin",
+                   name: name,
+                   parent: parent
+               };
            }
 
-           Plugin.prototype.getTitle = function() {
-               return "Plugin: " + this.name ;
+           Plugin.prototype.getTitle = function ()
+           {
+               return "Plugin: " + this.name;
            };
 
-           Plugin.prototype.open = function(contentPane) {
+           Plugin.prototype.open = function (contentPane)
+           {
                var that = this;
                this.contentPane = contentPane;
-                contentPane.containerNode.innerHTML = template;
-                parser.parse(contentPane.containerNode).then(function(instances)
-                {
-                    that.pluginUpdater = new PluginUpdater(contentPane, that.modelObj, that.controller);
-                });
+               contentPane.containerNode.innerHTML = template;
+               parser.parse(contentPane.containerNode).then(function (instances)
+                                                            {
+                                                                that.pluginUpdater =
+                                                                    new PluginUpdater(contentPane, that.modelObj, that.controller);
+                                                            });
            };
 
-           Plugin.prototype.close = function() {
-               updater.remove( this.pluginUpdater );
+           Plugin.prototype.close = function ()
+           {
+               updater.remove(this.pluginUpdater);
            };
 
            function PluginUpdater(contentPane, pluginObject, controller)
@@ -68,25 +78,27 @@ define(["dojo/parser",
                var that = this;
 
                this.management.load(that.modelObj)
-                   .then(function(data)
+                   .then(function (data)
                          {
                              that.pluginData = data[0];
 
                              that.updateHeader();
 
-                             require(["qpid/management/plugin/"+ that.pluginData.type.toLowerCase().replace('-','')],
-                                 function(SpecificPlugin) {
-                                 that.details = new SpecificPlugin(query(".pluginDetails", node)[0], pluginObject, controller, contentPane);
-                             });
+                             require(["qpid/management/plugin/" + that.pluginData.type.toLowerCase().replace('-', '')],
+                                     function (SpecificPlugin)
+                                     {
+                                         that.details = new SpecificPlugin(query(".pluginDetails",
+                                                                                 node)[0], pluginObject, controller, contentPane);
+                                     });
 
                          }, util.xhrErrorHandler);
 
            }
 
-           PluginUpdater.prototype.updateHeader = function()
+           PluginUpdater.prototype.updateHeader = function ()
            {
-               this.name.innerHTML = entities.encode(String(this.pluginData[ "name" ]));
-               this.type.innerHTML = entities.encode(String(this.pluginData[ "type" ]));
+               this.name.innerHTML = entities.encode(String(this.pluginData["name"]));
+               this.type.innerHTML = entities.encode(String(this.pluginData["type"]));
            };
 
            return Plugin;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org