Author: orudyy
Date: Tue Jun 23 21:49:46 2015
New Revision: 1687140

URL: http://svn.apache.org/r1687140
Log:
QPID-6609: [Java Broker] Add into Web Management Console UI to add/edit/delete 
loggers and filters

Added:
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLogger.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLoggerFilter.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/images/warning-yellow.svg
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/CategoryTabExtension.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TypeTabExtension.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogger.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLoggerFilter.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/add.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/add.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/show.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/add.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/add.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/show.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/show.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/add.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/add.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/file/show.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/virtualhostlogger/show.js
      - copied, changed from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/brokerloggerfilter/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/brokerloggerfilter/nameandlevel/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/brokerloggerfilter/nameandlevel/add.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/virtualhostloggerfilter/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/virtualhostloggerfilter/nameandlevel/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/loggerfilter/virtualhostloggerfilter/nameandlevel/add.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/brokerlogger/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/brokerlogger/add.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/brokerlogger/show.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/console/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/console/add.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/console/show.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/file/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/file/add.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/file/show.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/memory/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/memory/add.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/memory/show.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/virtualhostlogger/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/logger/virtualhostlogger/show.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/loggerfilter/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/loggerfilter/nameandlevel/
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/loggerfilter/nameandlevel/add.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showLogger.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showLoggerFilter.html
Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerNameAndLevelFilter.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostNameAndLevelFilter.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/css/common.css
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/treeView.js
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showBroker.html
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showVirtualHost.html

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerNameAndLevelFilter.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerNameAndLevelFilter.java?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerNameAndLevelFilter.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerNameAndLevelFilter.java
 Tue Jun 23 21:49:46 2015
@@ -35,6 +35,6 @@ public interface BrokerNameAndLevelFilte
     @ManagedAttribute( defaultValue = "" )
     String getLoggerName();
 
-    @ManagedAttribute(defaultValue = "INFO" )
+    @ManagedAttribute(defaultValue = "INFO", validValues = 
{"org.apache.qpid.server.logging.LogLevel#validValues()"})
     LogLevel getLevel();
 }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 Tue Jun 23 21:49:46 2015
@@ -20,7 +20,23 @@
  */
 package org.apache.qpid.server.logging;
 
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.List;
+
 public enum LogLevel
 {
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
+    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF;
+
+    public static Collection<String> validValues()
+    {
+        List<String> validValues = new ArrayList<>();
+        for (LogLevel level : EnumSet.allOf(LogLevel.class))
+        {
+            validValues.add(level.name());
+        }
+        return validValues;
+    }
 }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostNameAndLevelFilter.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostNameAndLevelFilter.java?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostNameAndLevelFilter.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostNameAndLevelFilter.java
 Tue Jun 23 21:49:46 2015
@@ -34,6 +34,6 @@ public interface VirtualHostNameAndLevel
     @ManagedAttribute( defaultValue = "" )
     String getLoggerName();
 
-    @ManagedAttribute(defaultValue = "INFO" )
+    @ManagedAttribute(defaultValue = "INFO", validValues = 
{"org.apache.qpid.server.logging.LogLevel#validValues()"})
     LogLevel getLevel();
 }

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
 Tue Jun 23 21:49:46 2015
@@ -110,7 +110,7 @@ public class HttpManagement extends Abst
     private static final String JSESSIONID_COOKIE_PREFIX = "JSESSIONID_";
 
     private static final String[] STATIC_FILE_TYPES = { "*.js", "*.css", 
"*.html", "*.png", "*.gif", "*.jpg",
-                                                        "*.jpeg", "*.json", 
"*.txt", "*.xsl" };
+                                                        "*.jpeg", "*.json", 
"*.txt", "*.xsl", "*.svg" };
 
     private Server _server;
 

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
 Tue Jun 23 21:49:46 2015
@@ -51,6 +51,7 @@ public class FileServlet extends HttpSer
         contentTypes.put("jpg",  "image/jpg");
         contentTypes.put("png",  "image/png");
         contentTypes.put("gif",  "image/gif");
+        contentTypes.put("svg",  "image/svg+xml");
         CONTENT_TYPES = Collections.unmodifiableMap(contentTypes);
     }
 

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLogger.html
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLogger.html?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLogger.html
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLogger.html
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,79 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<div class="dijitHidden">
+    <div data-dojo-type="dijit/Dialog" data-dojo-props="title:'Add Logger'" 
id="addLogger">
+        <form id="addLogger.form" method="post" 
data-dojo-type="dijit/form/Form">
+            <div id="addLogger.contentPane">
+                <div class="formBox">
+                    <div class="clear">
+                        <div class="formLabel-labelCell 
tableContainer-labelCell">Name*:</div>
+                        <div class="formLabel-controlCell 
tableContainer-valueCell">
+                            <input type="text" id="addLogger.name"
+                                   
data-dojo-type="dijit/form/ValidationTextBox"
+                                   data-dojo-props="
+                              name: 'name',
+                              placeHolder: 'logger name',
+                              required: true,
+                              promptMessage: 'Name of logger, must be unique',
+                              title: 'Enter a unique logger name'" />
+                        </div>
+                    </div>
+                    <div class="clear">
+                        <div class="formLabel-labelCell 
tableContainer-labelCell">Type*:</div>
+                        <div class="tableContainer-valueCell 
formLabel-controlCell">
+                            <select id="addLogger.type" 
data-dojo-type="dijit/form/FilteringSelect"
+                                    data-dojo-props="
+                                    name: 'type',
+                                    required: true,
+                                    placeHolder: 'select logger type',
+                                    promptMessage: 'Type of logger',
+                                    title: 'Select type',
+                                    searchAttr: 'name'">
+                            </select>
+                        </div>
+                    </div>
+                    <div class="clear">
+                        <div id="addLogger.categoryFields"></div>
+                    </div>
+                    <div class="clear">
+                        <div id="addLogger.typeFields"></div>
+                    </div>
+                    <div class="clear">
+                        <div class="formLabel-labelCell 
tableContainer-labelCell">Durable:</div>
+                        <div class="formLabel-controlCell 
tableContainer-valueCell">
+                            <input type="checkbox" id="addLogger.durable"
+                               data-dojo-type="dijit/form/CheckBox"
+                               data-dojo-props="
+                              name: 'durable',
+                              required: false,
+                              title: 'If selected, persists logger in the 
configuration store',
+                              checked: true"/>
+                        </div>
+                    </div>
+                </div>
+                <div class="clear"></div>
+            </div>
+            <div class="dijitDialogPaneActionBar qpidDialogPaneActionBar">
+                <button data-dojo-type="dijit/form/Button" 
id="addLogger.addButton" data-dojo-props="label: 'Save'" type="submit"></button>
+                <button data-dojo-type="dijit/form/Button" 
id="addLogger.cancelButton" data-dojo-props="label: 'Cancel'" ></button>
+            </div>
+        </form>
+    </div>
+</div>

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLoggerFilter.html
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLoggerFilter.html?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLoggerFilter.html
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/addLoggerFilter.html
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,73 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<div class="dijitHidden">
+    <div data-dojo-type="dijit/Dialog" data-dojo-props="title:'Add Logger 
Filter'" id="addLoggerFilter">
+        <form id="addLoggerFilter.form" method="post" 
data-dojo-type="dijit/form/Form">
+            <div id="addLoggerFilter.contentPane">
+                <div class="clear">
+                    <div class="formLabel-labelCell 
tableContainer-labelCell">Name*:</div>
+                    <div class="formLabel-controlCell 
tableContainer-valueCell">
+                        <input type="text" id="addLoggerFilter.name"
+                               data-dojo-type="dijit/form/ValidationTextBox"
+                               data-dojo-props="
+                          name: 'name',
+                          placeHolder: 'logger filter name',
+                          required: true,
+                          promptMessage: 'Name of logger filter must be 
unique',
+                          title: 'Enter a unique logger filter name'" />
+                    </div>
+                </div>
+                <div class="clear">
+                    <div class="formLabel-labelCell 
tableContainer-labelCell">Type*:</div>
+                    <div class="tableContainer-valueCell 
formLabel-controlCell">
+                        <select id="addLoggerFilter.type" 
data-dojo-type="dijit/form/FilteringSelect"
+                                data-dojo-props="
+                                name: 'type',
+                                required: true,
+                                placeHolder: 'logger filter type',
+                                promptMessage: 'Type of logger filter',
+                                title: 'Select type',
+                                searchAttr: 'name'">
+                        </select>
+                    </div>
+                </div>
+                <div class="clear">
+                    <div id="addLoggerFilter.typeFields"></div>
+                </div>
+                <div class="clear">
+                    <div class="formLabel-labelCell 
tableContainer-labelCell">Durable:</div>
+                    <div class="formLabel-controlCell 
tableContainer-valueCell">
+                        <input type="checkbox" id="addLoggerFilter.durable"
+                               data-dojo-type="dijit/form/CheckBox"
+                               data-dojo-props="
+                                  name: 'durable',
+                                  required: false,
+                                  checked: true"/>
+                    </div>
+                </div>
+                <div class="clear"></div>
+            </div>
+            <div class="dijitDialogPaneActionBar qpidDialogPaneActionBar">
+                <button data-dojo-type="dijit/form/Button" 
id="addLoggerFilter.addButton" data-dojo-props="label: 'Save'" 
type="submit"></button>
+                <button data-dojo-type="dijit/form/Button" 
id="addLoggerFilter.cancelButton" data-dojo-props="label: 'Cancel'" ></button>
+            </div>
+        </form>
+    </div>
+</div>

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/css/common.css
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/css/common.css?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/css/common.css
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/css/common.css
 Tue Jun 23 21:49:46 2015
@@ -342,7 +342,8 @@ div .messages {
 {
     width:50px;
     height:50px;
-    background:url("../images/warning.png") left center no-repeat;
+    background:url("../images/warning-yellow.svg") left center no-repeat;
+    background-size: contain;
     display: inline-block;
     float: left;
 }

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/images/warning-yellow.svg
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/images/warning-yellow.svg?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/images/warning-yellow.svg
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/images/warning-yellow.svg
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="360"
+   height="314"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="Warning.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="691.98643"
+     inkscape:cy="326.67973"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1151"
+     inkscape:window-x="0"
+     inkscape:window-y="25"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-738.36218)">
+    <text
+       xml:space="preserve"
+       
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="197.85715"
+       y="382.36218"
+       id="text3757"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3759"
+         x="197.85715"
+         y="382.36218"></tspan></text>
+    <g
+       id="g3765"
+       transform="translate(-34.544012,546.28528)">
+      <path
+         inkscape:transform-center-y="-49.000208"
+         d="m 384.0274,496.07689 -169.74169,1e-5 -169.741698,-1e-5 
84.870838,-147.00062 84.87086,-147.00062 84.87085,147.00061 z"
+         inkscape:randomized="0"
+         inkscape:rounded="0"
+         inkscape:flatsided="false"
+         sodipodi:arg2="1.5707963"
+         sodipodi:arg1="0.52359878"
+         sodipodi:r2="98.00042"
+         sodipodi:r1="196.00082"
+         sodipodi:cy="398.07648"
+         sodipodi:cx="214.28571"
+         sodipodi:sides="3"
+         id="path2987"
+         
style="fill:#ffff00;fill-rule:evenodd;stroke:#000000;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="star" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text3761"
+         y="470.21933"
+         x="159.50099"
+         
style="font-size:270.39556885px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+         xml:space="preserve"><tspan
+           y="470.21933"
+           x="159.50099"
+           id="tspan3763"
+           sodipodi:role="line">!</tspan></text>
+    </g>
+  </g>
+</svg>

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/CategoryTabExtension.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/CategoryTabExtension.js?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/CategoryTabExtension.js
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/CategoryTabExtension.js
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,69 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+define(["qpid/common/util",
+    "dojo/query",
+    "dojo/domReady!"],
+  function (util, query)
+  {
+    function CategoryTabExtension(containerNode, template, attributesNode, 
metadata, data, typeBaseFolder)
+    {
+      var that = this;
+      this.base = typeBaseFolder;
+      this.metadata = metadata;
+      util.parse(containerNode, template,
+        function()
+        {
+          that.typeSpecificAttributesContainer = query("." + attributesNode, 
containerNode)[0];
+          that.postParse(containerNode);
+          that.update(data)
+        });
+    }
+
+    CategoryTabExtension.prototype.postParse = function (containerNode)
+    {
+        // no-op
+    }
+
+    CategoryTabExtension.prototype.update = function (restData)
+    {
+      var data = restData || {};
+      if (!this.details)
+      {
+        if (data.type)
+        {
+          var that = this;
+          require([this.base + data.type.toLowerCase() + "/show"],
+            function(Details)
+            {
+              that.details = new 
Details({containerNode:that.typeSpecificAttributesContainer, metadata: 
that.metadata, data:data});
+            }
+          );
+        }
+      }
+      else
+      {
+        this.details.update(data);
+      }
+    }
+
+    return CategoryTabExtension;
+  }
+);

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TypeTabExtension.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TypeTabExtension.js?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TypeTabExtension.js
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/TypeTabExtension.js
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,80 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+define(["qpid/common/util",
+    "dojo/query",
+    "dojox/html/entities",
+    "dojo/domReady!"],
+  function (util, query, entities)
+  {
+
+    function TypeTabExtension(containerNode, template, category, type, 
metadata, data )
+    {
+      var that = this;
+      this.attributeContainers = {};
+      if (template)
+      {
+        util.parse(containerNode, template,
+          function ()
+          {
+            if (metadata && category && type)
+            {
+              var attributes = metadata.getMetaData(category, type).attributes;
+              for (var attrName in attributes)
+              {
+                var queryResult = query("." + attrName, containerNode);
+                if (queryResult && queryResult[0])
+                {
+                  var attr = attributes[attrName];
+                  that.attributeContainers[attrName] = {
+                    containerNode: queryResult[0],
+                    attributeType: attr.type
+                  };
+                }
+              }
+              that.update(data);
+            }
+          });
+      }
+    }
+
+    TypeTabExtension.prototype.update = function (restData)
+    {
+      for (var attrName in this.attributeContainers)
+      {
+        if (attrName in restData)
+        {
+          var content = "";
+          if (this.attributeContainers[attrName].attributeType == "Boolean")
+          {
+            content = util.buildCheckboxMarkup(restData[attrName]);
+          }
+          else
+          {
+            content = entities.encode(String(restData[attrName]));
+          }
+          this.attributeContainers[attrName].containerNode.innerHTML = content;
+        }
+      }
+    }
+
+    return TypeTabExtension;
+  }
+);

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
 Tue Jun 23 21:49:46 2015
@@ -49,6 +49,28 @@ define(["dojo/_base/array", "dojox/lang/
           return attributesForName ? attributesForName["immutable"] : 
undefined;
       };
 
+      Metadata.prototype.getDefaultValueForType = function (category, type)
+      {
+        var metaDataForInstance = this.getMetaData(category, type);
+        var attributesForType =  metaDataForInstance["attributes"];
+        var defaultValues = {};
+        for (var attributeName in attributesForType)
+        {
+          var attribute = attributesForType[attributeName];
+          if (attribute.defaultValue)
+          {
+            if (attribute.type == "Boolean")
+            {
+              defaultValues[attributeName] = (attribute.defaultValue === 
"true");
+            }
+            else
+            {
+              defaultValues[attributeName] = attribute.defaultValue;
+            }
+          }
+        }
+        return defaultValues;
+       };
 
       Metadata.prototype.getTypesForCategory = function (category)
        {

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
 Tue Jun 23 21:49:46 2015
@@ -754,5 +754,25 @@ define(["dojo/_base/xhr",
              }
            }
 
+           util.buildCheckboxMarkup = function (val)
+           {
+              return "<input type='checkbox' disabled='disabled' "+(val ? 
"checked='checked'": "")+" />" ;
+           }
+
+           util.makeTypeStoreFromMetadataByCategory = function(metadata, 
category)
+           {
+              var supportedTypes = metadata.getTypesForCategory(category);
+              supportedTypes.sort();
+              return this.makeTypeStore(supportedTypes);
+           }
+
+            util.extend = function(childConstructor, parentConstructor)
+            {
+                var childPrototype = 
Object.create(parentConstructor.prototype);
+                childPrototype.constructor = childConstructor;
+                childConstructor.prototype = childPrototype;
+                return childConstructor;
+            }
+
          return util;
        });

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
 Tue Jun 23 21:49:46 2015
@@ -37,6 +37,7 @@ define(["dojo/parser",
         "qpid/management/addGroupProvider",
         "qpid/management/addAccessControlProvider",
         "qpid/management/editBroker",
+        "qpid/management/addLogger",
         "dojo/text!showBroker.html",
         "dojox/grid/enhanced/plugins/Pagination",
         "dojox/grid/enhanced/plugins/IndirectSelection",
@@ -52,7 +53,7 @@ define(["dojo/parser",
         "dijit/MenuItem",
         "dojo/domReady!"],
        function (parser, query, json, connect, memory, properties, updater, 
util, UpdatableStore, EnhancedGrid, registry, entities,
-        addAuthenticationProvider, addVirtualHostNodeAndVirtualHost, addPort, 
addStore, addGroupProvider, addAccessControlProvider, editBroker, template) {
+        addAuthenticationProvider, addVirtualHostNodeAndVirtualHost, addPort, 
addStore, addGroupProvider, addAccessControlProvider, editBroker, addLogger, 
template) {
 
            var brokerAttributeNames = ["name", "operatingSystem", "platform", 
"productVersion", "modelVersion",
                                         "statisticsReportingPeriod", 
"statisticsReportingResetEnabled", 
"confidentialConfigurationEncryptionProvider",
@@ -234,6 +235,27 @@ define(["dojo/parser",
                                                 that.brokerUpdater);
                                 }
                             );
+
+                            var addLoggerButtonNode = 
query(".addBrokerLogger", contentPane.containerNode)[0];
+                            var addLoggerButton = 
registry.byNode(addLoggerButtonNode);
+                            addLoggerButton.on("click",
+                             function(evt){
+                                addLogger.show(that.management, that.modelObj, 
"BrokerLogger");
+                             });
+
+                            var deleteLoggerButtonNode = 
query(".deleteBrokerLogger", contentPane.containerNode)[0];
+                            var deleteLoggerButton = 
registry.byNode(deleteLoggerButtonNode);
+                            deleteLoggerButton.on("click",
+                             function(evt)
+                             {
+                                util.deleteSelectedObjects(
+                                    that.brokerUpdater.brokerLoggersGrid.grid,
+                                    "Are you sure you want to delete broker 
logger",
+                                    that.management,
+                                    {type: "brokerlogger", 
parent:that.modelObj},
+                                    that.brokerUpdater);
+                             });
+
                             });
                         }
            };
@@ -562,6 +584,26 @@ define(["dojo/parser",
                                                }, gridProperties, 
EnhancedGrid);
                              that.displayACLWarnMessage(aclData);
 
+                             var brokerLoggerData = 
that.brokerData.brokerloggers || [];
+                             that.brokerLoggersGrid =
+                               new UpdatableStore(brokerLoggerData, 
query(".broker-loggers")[0],
+                                               [ { name: "Name",  field: 
"name",  width: "40%"},
+                                                 { name: "State", field: 
"state", width: "20%"},
+                                                 { name: "Type",  field: 
"type", width: "20%"},
+                                                 { name: "Exclude Virtual Host 
Logs",  field: "virtualHostLogEventExcluded", width: "20%",
+                                                     formatter: function(val){
+                                                       return 
util.buildCheckboxMarkup(val);
+                                                     }
+                                                 }
+                                               ], function(obj) {
+                                                       
connect.connect(obj.grid, "onRowDblClick", obj.grid,
+                                                       function(evt){
+                                                           var idx = 
evt.rowIndex,
+                                                               theItem = 
this.getItem(idx);
+                                                           var name = 
obj.dataStore.getValue(theItem,"name");
+                                                           
that.controller.show("brokerlogger", name, brokerObj, theItem.id);
+                                                       });
+                                               }, gridProperties, 
EnhancedGrid);
                              updater.add( that);
 
                          });
@@ -680,6 +722,10 @@ define(["dojo/parser",
                          that.accessControlProvidersGrid.update(data);
                          that.displayACLWarnMessage(data);
                        }
+                       if (that.brokerLoggersGrid)
+                       {
+                         
that.brokerLoggersGrid.update(that.brokerData.brokerloggers);
+                       }
                    });
            };
 

Added: 
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=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Logger.js
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,265 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+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/addLoggerFilter",
+    "dojo/domReady!"],
+  function (parser, query, connect, registry, entities, properties, updater, 
util, formatter, UpdatableStore, EnhancedGrid, template, addLogger, 
addLoggerFilter)
+  {
+
+    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.filterCategory = this.category + "Filter";
+      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.filterGrid = new UpdatableStore([], query(".filterGrid", 
containerNode)[0],
+        [
+          {name: "Name", field: "name", width: "40%"},
+          {name: "Type", field: "type", width: "20%"},
+          {name: "Level", field: "level", width: "20%"},
+          {name: "Durable", field: "durable", width: "20%", formatter: 
util.buildCheckboxMarkup}
+        ], function (obj)
+        {
+          connect.connect(obj.grid, "onRowDblClick", obj.grid,
+            function (evt)
+            {
+              var idx = evt.rowIndex;
+              var theItem = this.getItem(idx);
+              that.showFilter(theItem);
+            });
+        }, gridProperties, EnhancedGrid);
+
+      this.addLoggerFilterButton = registry.byNode(query(".addFilterButton", 
containerNode)[0]);
+      this.deleteLoggerFilterButton = 
registry.byNode(query(".deleteFilterButton", containerNode)[0]);
+
+      this.deleteLoggerFilterButton.on("click",
+        function (e)
+        {
+          util.deleteSelectedObjects(
+            that.filterGrid.grid,
+            "Are you sure you want to delete logger filter",
+            that.management,
+            {type: that.filterCategory.toLowerCase(), parent: that.modelObj},
+            that.loggerUpdater);
+        }
+      );
+
+      this.addLoggerFilterButton.on("click",
+        function(e)
+        {
+          addLoggerFilter.show(that.management, that.modelObj, 
that.filterCategory);
+        }
+      );
+
+      this.loggerUpdater = new Updater(this);
+      this.loggerUpdater.update(function (x)
+      {
+        updater.add(that.loggerUpdater);
+      });
+    };
+
+    Logger.prototype.showFilter = function (item)
+    {
+      var filterModelObj = {name: item.name, type: 
this.filterCategory.toLowerCase(), parent: this.modelObj};
+      var that = this;
+      this.management.load(filterModelObj, {actuals: true}).then(
+                              function(data)
+                              {
+                                addLoggerFilter.show(that.management, 
filterModelObj, that.filterCategory, 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", 
"filterWarning", "durable"]);
+    }
+
+    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"]);
+
+      if (!this.details)
+      {
+        var that = this;
+        require(["qpid/management/logger/" + this.tabObject.modelObj.type + 
"/show"],
+          function (Details)
+          {
+            that.details = new Details({
+              containerNode: that.loggerAttributes,
+              metadata: that.tabObject.management.metadata,
+              data: data
+            });
+          }
+        );
+      }
+      else
+      {
+        this.details.update(data);
+      }
+
+      var filterFieldName = this.tabObject.filterCategory.toLowerCase() + "s"; 
// add plural "s"
+      if (data[filterFieldName])
+      {
+        this.tabObject.filterGrid.grid.domNode.style.display = "block";
+        this.filterWarning.style.display = "none";
+      }
+      else
+      {
+        this.tabObject.filterGrid.grid.domNode.style.display = "none";
+        this.filterWarning.style.display = "block";
+      }
+      util.updateUpdatableStore(this.tabObject.filterGrid, 
data[filterFieldName]);
+    };
+
+    return Logger;
+  });

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/VirtualHost.js
 Tue Jun 23 21:49:46 2015
@@ -30,11 +30,12 @@ define(["dojo/parser",
         "qpid/common/UpdatableStore",
         "qpid/management/addQueue",
         "qpid/management/addExchange",
+        "qpid/management/addLogger",
         "dojox/grid/EnhancedGrid",
         "qpid/management/editVirtualHost",
         "dojo/text!showVirtualHost.html",
         "dojo/domReady!"],
-       function (parser, query, connect, registry, entities, properties, 
updater, util, formatter, UpdatableStore, addQueue, addExchange, EnhancedGrid, 
editVirtualHost, template) {
+       function (parser, query, connect, registry, entities, properties, 
updater, util, formatter, UpdatableStore, addQueue, addExchange, addLogger, 
EnhancedGrid, editVirtualHost, template) {
 
            function VirtualHost(name, parent, controller) {
                this.name = name;
@@ -93,7 +94,28 @@ define(["dojo/parser",
                                     }
                             );
 
-                            that.stopButton = 
registry.byNode(query(".stopButton", containerNode)[0]);
+                            var addLoggerButtonNode = 
query(".addVirtualHostLogger", contentPane.containerNode)[0];
+                            var addLoggerButton = 
registry.byNode(addLoggerButtonNode);
+                            addLoggerButton.on("click",
+                              function(evt)
+                              {
+                                addLogger.show(that.management, that.modelObj, 
"VirtualHostLogger");
+                              });
+
+                            var deleteLoggerButtonNode = 
query(".deleteVirtualHostLogger", contentPane.containerNode)[0];
+                            var deleteLoggerButton = 
registry.byNode(deleteLoggerButtonNode);
+                            deleteLoggerButton.on("click",
+                              function(evt)
+                              {
+                                util.deleteSelectedObjects(
+                                  
that.vhostUpdater.virtualHostLoggersGrid.grid,
+                                  "Are you sure you want to delete virtual 
host logger",
+                                  that.management,
+                                  {type: "virtualhostlogger", 
parent:that.modelObj},
+                                  that.vhostUpdater);
+                              });
+
+                      that.stopButton = registry.byNode(query(".stopButton", 
containerNode)[0]);
                             that.startButton = 
registry.byNode(query(".startButton", containerNode)[0]);
                             that.editButton = 
registry.byNode(query(".editButton", containerNode)[0]);
                             that.downloadButton = 
registry.byNode(query(".downloadButton", containerNode)[0]);
@@ -301,6 +323,28 @@ define(["dojo/parser",
                                                                               
});
                                                              } );
 
+                   that.virtualHostLoggersGrid = new UpdatableStore([],
+                                                                    
findNode("loggers"),
+                                                                    [ { name: 
"Name",  field: "name",  width: "40%"},
+                                                                      { name: 
"State", field: "state", width: "20%"},
+                                                                      { name: 
"Type",  field: "type", width: "20%"},
+                                                                      { name: 
"Durable",  field: "durable", width: "20%",
+                                                                        
formatter: function(val){
+                                                                          
return util.buildCheckboxMarkup(val);
+                                                                        }
+                                                                      }
+                                                                    ],
+                                                                    
function(obj)
+                                                                    {
+                                                                      
connect.connect(obj.grid, "onRowDblClick", obj.grid,
+                                                                        
function(evt){
+                                                                          var 
idx = evt.rowIndex,
+                                                                            
theItem = this.getItem(idx);
+                                                                          var 
name = obj.dataStore.getValue(theItem, "name");
+                                                                          
controller.show("virtualhostlogger", name, vhost, theItem.id);
+                                                                        });
+                                                                    }, 
gridProperties, EnhancedGrid);
+
            }
 
            Updater.prototype.updateHeader = function()
@@ -482,6 +526,7 @@ define(["dojo/parser",
                 {
                     util.updateUpdatableStore(this.queuesGrid, data.queues);
                     util.updateUpdatableStore(this.exchangesGrid, 
data.exchanges);
+                    util.updateUpdatableStore(this.virtualHostLoggersGrid, 
data.virtualhostloggers);
 
                     var exchangesGrid = this.exchangesGrid.grid;
                     for(var i=0; i< data.exchanges.length; i++)

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogger.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogger.js?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogger.js
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLogger.js
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,222 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+define(["dojo/_base/lang",
+        "dojo/dom",
+        "dojo/dom-construct",
+        "dijit/registry",
+        "dojo/parser",
+        "dojo/store/Memory",
+        "dojo/_base/array",
+        "dojo/_base/event",
+        'dojo/json',
+        "qpid/common/util",
+        "dojo/text!addLogger.html",
+        "dojo/store/Memory",
+        "dojox/validate/us",
+        "dojox/validate/web",
+        "dijit/Dialog",
+        "dijit/form/CheckBox",
+        "dijit/form/Textarea",
+        "dijit/form/ComboBox",
+        "dijit/form/TextBox",
+        "dijit/form/ValidationTextBox",
+        "dijit/form/Button",
+        "dijit/form/Form",
+        "dijit/layout/ContentPane",
+        "dojox/layout/TableContainer",
+        "dojo/domReady!"],
+    function (lang, dom, construct, registry, parser, memory, array, event, 
json, util, template)
+    {
+        var addLogger =
+        {
+            init: function()
+            {
+                var that=this;
+                this.containerNode = construct.create("div", {innerHTML: 
template});
+                parser.parse(this.containerNode).then(function(instances) { 
that._postParse(); });
+            },
+            _postParse: function()
+            {
+                var that=this;
+                this.name = registry.byId("addLogger.name");
+                this.name.set("regExpGen", util.nameOrContextVarRegexp);
+
+                this.dialog = registry.byId("addLogger");
+                this.addButton = registry.byId("addLogger.addButton");
+                this.cancelButton = registry.byId("addLogger.cancelButton");
+                this.cancelButton.on("click", function(e){that._cancel(e);});
+                this.addButton.on("click", function(e){that._add(e);});
+
+                this.typeFieldsContainer = dom.byId("addLogger.typeFields");
+                this.form = registry.byId("addLogger.form");
+                this.form.on("submit", function(){return false;});
+
+                this.loggerType = registry.byId("addLogger.type");
+                this.loggerType.on("change", 
function(type){that._typeChanged(type);});
+
+                this.categoryFieldsContainer = 
dom.byId("addLogger.categoryFields");
+                this.allFieldsContainer = dom.byId("addLogger.contentPane");
+            },
+            show: function(management, modelObj, category, actualData)
+            {
+                this.management = management;
+                this.modelObj = modelObj;
+                this.category = category;
+                this.configured = false;
+                this._destroyTypeFields(this.typeFieldsContainer);
+                this._destroyTypeFields(this.categoryFieldsContainer);
+                this.form.reset();
+                this.loggerType.set("store", 
util.makeTypeStoreFromMetadataByCategory(management.metadata, category));
+                this.initialData = actualData;
+                this.isNew = !actualData;
+                this.name.set("disabled", !this.isNew);
+                this.loggerType.set("disabled", !this.isNew);
+                this.dialog.set("title",this.isNew ? "Add Logger" : "Edit 
Logger - " + actualData.name)
+
+                if (actualData)
+                {
+                  this._configure(actualData.type);
+                }
+
+                this._loadCategoryUserInterfacesAndShowDialog(actualData);
+            },
+            hide: function()
+            {
+              this._destroyTypeFields(this.categoryFieldsContainer);
+              this._destroyTypeFields(this.typeFieldsContainer);
+              this.dialog.hide();
+            },
+            _cancel: function(e)
+            {
+                event.stop(e);
+                this.hide();
+            },
+            _add: function(e)
+            {
+                event.stop(e);
+                this._submit();
+            },
+            _submit: function()
+            {
+                if (this.form.validate())
+                {
+                    var excludedData = this.initialData || 
this.management.metadata.getDefaultValueForType(this.category, 
this.loggerType.get("value"));
+                    var formData = util.getFormWidgetValues(this.form, 
excludedData);
+                    var that = this;
+                    if (this.isNew)
+                    {
+                      this.management.create(this.category, this.modelObj, 
formData).then(function(){that.hide();});
+                    }
+                    else
+                    {
+                      this.management.update(this.modelObj, 
formData).then(function(){that.hide();});
+                    }
+                }
+                else
+                {
+                    alert('Form contains invalid data. Please correct first');
+                }
+            },
+            _destroyTypeFields: function(typeFieldsContainer)
+            {
+                var widgets = registry.findWidgets(typeFieldsContainer);
+                array.forEach(widgets, function(item) { 
item.destroyRecursive();});
+                construct.empty(typeFieldsContainer);
+            },
+            _typeChanged: function(type)
+            {
+                 this._destroyTypeFields(this.typeFieldsContainer);
+
+                 if (type)
+                 {
+                     this._configure(type);
+                     var that = this;
+                     require(["qpid/management/logger/" + 
this.category.toLowerCase() + "/" + type.toLowerCase() + "/add"], 
function(typeUI)
+                     {
+                         try
+                         {
+                             var promise = typeUI.show({ 
containerNode:that.typeFieldsContainer, data: that.initialData });
+                             if (promise)
+                             {
+                                 promise.then(
+                                    function(instances)
+                                    {
+                                       
util.applyToWidgets(that.typeFieldsContainer, that.category, type, 
that.initialData, that.management.metadata);
+                                    });
+                             }
+                         }
+                         catch(e)
+                         {
+                             console.warn(e);
+                         }
+                     });
+                 }
+            },
+            _configure: function(type)
+            {
+                if (!this.configured)
+                {
+                    var metadata = this.management.metadata;
+                    util.applyToWidgets(this.allFieldsContainer, 
this.category, type, this.initialData, metadata);
+                    this.configured = true;
+                }
+            },
+            _loadCategoryUserInterfacesAndShowDialog : function(actualData)
+            {
+                var that = this;
+                var node = construct.create("div", {}, 
this.categoryFieldsContainer);
+                require(["qpid/management/logger/" + 
this.category.toLowerCase() + "/add"], function(categoryUI)
+                {
+                  try
+                  {
+                    var promise = categoryUI.show({containerNode: node, data: 
actualData});
+                    if (actualData)
+                    {
+                        promise.then(
+                            function(instances)
+                            {
+                                util.applyToWidgets(node, that.category, 
actualData.type, actualData, that.management.metadata);
+                                that.dialog.show();
+                            });
+                    }
+                    else
+                    {
+                        that.dialog.show();
+                    }
+                  }
+                  catch(e)
+                  {
+                    console.error(e);
+                  }
+                });
+            }
+        };
+
+        try
+        {
+            addLogger.init();
+        }
+        catch(e)
+        {
+            console.warn(e);
+        }
+        return addLogger;
+    });

Added: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLoggerFilter.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLoggerFilter.js?rev=1687140&view=auto
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLoggerFilter.js
 (added)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addLoggerFilter.js
 Tue Jun 23 21:49:46 2015
@@ -0,0 +1,190 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+define(["dojo/_base/lang",
+        "dojo/dom",
+        "dojo/dom-construct",
+        "dijit/registry",
+        "dojo/parser",
+        "dojo/store/Memory",
+        "dojo/_base/array",
+        "dojo/_base/event",
+        'dojo/json',
+        "qpid/common/util",
+        "dojo/text!addLoggerFilter.html",
+        "dojo/store/Memory",
+        "dojox/validate/us",
+        "dojox/validate/web",
+        "dijit/Dialog",
+        "dijit/form/CheckBox",
+        "dijit/form/Textarea",
+        "dijit/form/ComboBox",
+        "dijit/form/TextBox",
+        "dijit/form/ValidationTextBox",
+        "dijit/form/Button",
+        "dijit/form/Form",
+        "dijit/layout/ContentPane",
+        "dojox/layout/TableContainer",
+        "dojo/domReady!"],
+    function (lang, dom, construct, registry, parser, memory, array, event, 
json, util, template)
+    {
+        var addLoggerFilter =
+        {
+            init: function()
+            {
+                var that=this;
+                this.containerNode = construct.create("div", {innerHTML: 
template});
+                parser.parse(this.containerNode).then(function(instances) { 
that._postParse(); });
+            },
+            _postParse: function()
+            {
+                var that=this;
+                this.name = registry.byId("addLoggerFilter.name");
+                this.name.set("regExpGen", util.nameOrContextVarRegexp);
+
+                this.dialog = registry.byId("addLoggerFilter");
+                this.addButton = registry.byId("addLoggerFilter.addButton");
+                this.cancelButton = 
registry.byId("addLoggerFilter.cancelButton");
+                this.cancelButton.on("click", function(e){that._cancel(e);});
+                this.addButton.on("click", function(e){that._add(e);});
+
+                this.typeFieldsContainer = 
dom.byId("addLoggerFilter.typeFields");
+                this.form = registry.byId("addLoggerFilter.form");
+                this.form.on("submit", function(){return false;});
+
+                this.loggerFilterType = registry.byId("addLoggerFilter.type");
+                this.loggerFilterType.on("change", 
function(type){that._typeChanged(type);});
+
+                this.allFieldsContainer = 
dom.byId("addLoggerFilter.contentPane");
+            },
+            show: function(management, modelObj, category, actualData)
+            {
+                this.management = management;
+                this.modelObj = modelObj;
+                var metadata = management.metadata;
+                this.category = category;
+                this.configured = false;
+                this._destroyTypeFields(this.typeFieldsContainer);
+                this.loggerFilterType.set("store", 
util.makeTypeStoreFromMetadataByCategory(management.metadata, category));
+                this.form.reset();
+
+                this.initialData = actualData;
+                this.isNew = !actualData;
+
+                this.name.set("disabled", !this.isNew);
+                this.loggerFilterType.set("disabled", !this.isNew);
+                this.dialog.set("title", this.isNew ? "Add Logger Filter" : 
"Edit Logger Filter - " + actualData.name)
+
+                if (actualData)
+                {
+                  this._configure(actualData.type);
+                }
+
+                this.dialog.show();
+            },
+            _cancel: function(e)
+            {
+                event.stop(e);
+                this._destroyTypeFields(this.typeFieldsContainer);
+                this.dialog.hide();
+            },
+            _add: function(e)
+            {
+                event.stop(e);
+                this._submit();
+            },
+            _submit: function()
+            {
+                if (this.form.validate())
+                {
+                    var that = this;
+                    var formData = util.getFormWidgetValues(this.form, 
this.initialData);
+
+                    if (this.isNew)
+                    {
+                      this.management.create(this.category, this.modelObj, 
formData).then(function(x){that.dialog.hide();});
+                    }
+                    else
+                    {
+                      this.management.update(this.modelObj, 
formData).then(function(x){that.dialog.hide();});
+                    }
+                }
+                else
+                {
+                    alert('Form contains invalid data. Please correct first');
+                }
+            },
+            _destroyTypeFields: function(typeFieldsContainer)
+            {
+                var widgets = registry.findWidgets(typeFieldsContainer);
+                array.forEach(widgets, function(item) { 
item.destroyRecursive();});
+                construct.empty(typeFieldsContainer);
+            },
+            _typeChanged: function(type)
+            {
+                 this._destroyTypeFields(this.typeFieldsContainer);
+
+                 if (type)
+                 {
+                     this._configure(type);
+                     var that = this;
+                     require(["qpid/management/loggerfilter/" + 
this.category.toLowerCase() + "/" + type.toLowerCase() + "/add"], 
function(typeUI)
+                     {
+                         try
+                         {
+                             var metadata = that.management.metadata;
+                             var promise = 
typeUI.show({containerNode:that.typeFieldsContainer, data: that.initialData, 
metadata: metadata, category: that.category, type: type});
+                             if (promise)
+                             {
+                               promise.then(
+                                 function(instances)
+                                 {
+                                    
util.applyToWidgets(that.typeFieldsContainer, that.category, type, 
that.initialData, that.management.metadata);
+                                 });
+                             }
+                         }
+                         catch(e)
+                         {
+                             console.warn(e);
+                         }
+                     });
+                 }
+            },
+            _configure: function(type)
+            {
+                if (!this.configured)
+                {
+                    var metadata = this.management.metadata;
+                    util.applyToWidgets(this.allFieldsContainer, 
this.category, type, this.initialData, metadata);
+                    this.configured = true;
+                }
+            }
+        };
+
+        try
+        {
+            addLoggerFilter.init();
+        }
+        catch(e)
+        {
+            console.warn(e);
+        }
+        return addLoggerFilter;
+    });

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js?rev=1687140&r1=1687139&r2=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
 Tue Jun 23 21:49:46 2015
@@ -39,10 +39,11 @@ define(["dojo/dom",
         "qpid/management/logs/LogViewer",
         "qpid/management/PreferencesProvider",
         "qpid/management/VirtualHostNode",
+        "qpid/management/Logger",
         "dojo/ready",
         "dojo/domReady!"],
        function (dom, registry, ContentPane, CheckBox, entities, Broker, 
VirtualHost, Exchange, Queue, Connection, AuthProvider,
-                 GroupProvider, Group, KeyStore, TrustStore, 
AccessControlProvider, Port, Plugin, LogViewer, PreferencesProvider, 
VirtualHostNode, ready) {
+                 GroupProvider, Group, KeyStore, TrustStore, 
AccessControlProvider, Port, Plugin, LogViewer, PreferencesProvider, 
VirtualHostNode, Logger, ready) {
            var controller = {};
 
            var constructors = { broker: Broker, virtualhost: VirtualHost, 
exchange: Exchange,
@@ -51,7 +52,7 @@ define(["dojo/dom",
                                 group: Group, keystore: KeyStore, truststore: 
TrustStore,
                                 accesscontrolprovider: AccessControlProvider, 
port: Port,
                                 plugin: Plugin, logViewer: LogViewer, 
preferencesprovider: PreferencesProvider,
-                                virtualhostnode: VirtualHostNode};
+                                virtualhostnode: VirtualHostNode, 
brokerlogger: Logger, virtualhostlogger: Logger};
 
            var tabDiv = dom.byId("managedViews");
 

Copied: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/add.js
 (from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/add.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/add.js&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java&r1=1687110&r2=1687140&rev=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/add.js
 Tue Jun 23 21:49:46 2015
@@ -18,9 +18,22 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.logging;
+define(["dojo/dom",
+    "qpid/common/util",
+    "dojo/parser",
+    "dojo/text!logger/brokerlogger/add.html",
+    "dojo/domReady!"],
+  function (dom, util, parser, template)
+  {
+    var addBrokerLogger =
+    {
+      show: function(data)
+      {
+        data.containerNode.innerHTML = template;
+        return parser.parse(data.containerNode);
+      }
+    };
 
-public enum LogLevel
-{
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
-}
+    return addBrokerLogger;
+  }
+);

Copied: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/add.js
 (from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/add.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/add.js&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java&r1=1687110&r2=1687140&rev=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/add.js
 Tue Jun 23 21:49:46 2015
@@ -18,9 +18,22 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.logging;
-
-public enum LogLevel
-{
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
-}
+define(["dojo/dom",
+    "dojo/query",
+    "dojo/_base/array",
+    "dijit/registry",
+    "qpid/common/util",
+    "dojo/parser",
+    "dojo/text!logger/console/add.html",
+    "dojo/domReady!"],
+  function (dom, query, array, registry, util, parser, template)
+  {
+    return {
+      show: function(data)
+      {
+        data.containerNode.innerHTML = template;
+        return parser.parse(data.containerNode);
+      }
+    };
+  }
+);

Copied: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/show.js
 (from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/show.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/show.js&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java&r1=1687110&r2=1687140&rev=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/console/show.js
 Tue Jun 23 21:49:46 2015
@@ -18,9 +18,19 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.logging;
+define(["qpid/common/util",
+    "dojo/query",
+    "dojox/html/entities",
+    "dojo/text!logger/console/show.html",
+    "qpid/common/TypeTabExtension",
+    "dojo/domReady!"],
+  function (util, query, entities, template, TypeTabExtension)
+  {
+    function BrokerConsoleLogger(params)
+    {
+      TypeTabExtension.call(this, params.containerNode, template, 
"BrokerLogger", "Console", params.metadata, params.data);
+    }
 
-public enum LogLevel
-{
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
-}
+    return util.extend(BrokerConsoleLogger, TypeTabExtension);
+  }
+);

Copied: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/add.js
 (from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/add.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/add.js&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java&r1=1687110&r2=1687140&rev=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/add.js
 Tue Jun 23 21:49:46 2015
@@ -18,9 +18,25 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.logging;
+define(["dojo/dom",
+    "dojo/query",
+    "dojo/_base/array",
+    "dijit/registry",
+    "qpid/common/util",
+    "dojo/parser",
+    "dojo/text!logger/file/add.html",
+    "dojo/domReady!"],
+  function (dom, query, array, registry, util, parser, template)
+  {
+    var addFileLogger =
+    {
+      show: function(data)
+      {
+        data.containerNode.innerHTML = template;
+        return parser.parse(data.containerNode);
+      }
+    };
 
-public enum LogLevel
-{
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
-}
+    return addFileLogger;
+  }
+);

Copied: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js
 (from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java&r1=1687110&r2=1687140&rev=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/file/show.js
 Tue Jun 23 21:49:46 2015
@@ -18,9 +18,19 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.logging;
+define(["qpid/common/util",
+    "dojo/query",
+    "dojox/html/entities",
+    "dojo/text!logger/file/show.html",
+    "qpid/common/TypeTabExtension",
+    "dojo/domReady!"],
+  function (util, query, entities, template, TypeTabExtension)
+  {
+    function BrokerFileLogger(params)
+    {
+      TypeTabExtension.call(this, params.containerNode, template, 
"BrokerLogger", "File", params.metadata, params.data);
+    }
 
-public enum LogLevel
-{
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
-}
+    return util.extend(BrokerFileLogger, TypeTabExtension);
+  }
+);

Copied: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/add.js
 (from r1687110, 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/add.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/add.js&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java&r1=1687110&r2=1687140&rev=1687140&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogLevel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logger/brokerlogger/memory/add.js
 Tue Jun 23 21:49:46 2015
@@ -18,9 +18,22 @@
  * under the License.
  *
  */
-package org.apache.qpid.server.logging;
-
-public enum LogLevel
-{
-    ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
-}
+define(["dojo/dom",
+    "dojo/query",
+    "dojo/_base/array",
+    "dijit/registry",
+    "qpid/common/util",
+    "dojo/parser",
+    "dojo/text!logger/memory/add.html",
+    "dojo/domReady!"],
+  function (dom, query, array, registry, util, parser, template)
+  {
+    return {
+      show: function(data)
+      {
+        data.containerNode.innerHTML = template;
+        return parser.parse(data.containerNode);
+      }
+    };
+  }
+);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to