You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ea...@apache.org on 2019/09/16 22:03:59 UTC

[qpid-dispatch] branch eallen-DISPATCH-1385 created (now bc64f77)

This is an automated email from the ASF dual-hosted git repository.

eallen pushed a change to branch eallen-DISPATCH-1385
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git.


      at bc64f77  Working on topology

This branch includes the following new commits:

     new bc64f77  Working on topology

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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


[qpid-dispatch] 01/01: Working on topology

Posted by ea...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

eallen pushed a commit to branch eallen-DISPATCH-1385
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git

commit bc64f77023a193e7e4dab2910891f5090abbf3b1
Author: Ernest Allen <ea...@redhat.com>
AuthorDate: Mon Sep 16 18:03:00 2019 -0400

    Working on topology
---
 bin/export.sh                                     | 105 ---
 bin/find_ports.sh                                 |  28 -
 bin/grinder                                       | 370 ---------
 bin/make_standalone_console_tarball.sh            | 107 ---
 bin/rebuild.sh                                    |  31 -
 bin/record-coverage.sh                            |  80 --
 bin/test.sh                                       |  43 -
 console/stand-alone/package-lock.json             | 958 ++++++++++------------
 console/stand-alone/package.json                  |   6 +-
 console/stand-alone/plugin/html/tmplListTree.html |  42 -
 tests/config-2/B.conf                             |   6 +
 11 files changed, 461 insertions(+), 1315 deletions(-)

diff --git a/bin/export.sh b/bin/export.sh
deleted file mode 100755
index 539af90..0000000
--- a/bin/export.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-#
-# 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.
-#
-
-# export.sh - Create a release archive.
-
-# run this script like this - 
-# Before executing this script, change directory to the folder in which this file is located, for example.
-#   1. cd /home/jdoe/qpid-dispatch/bin
-# Run the script like so - 
-#  2. ./export.sh <output_folder-full-path> <tag-name> 
-#  (Example : ./export.sh /home/jdoe/ 1.5.1 
-#  (/home/jdoe is the folder you want the tar.gz file to be put - specify the full path) 
-#  1.5.1 is the tag name
-# A file named qpid-dispatch-<tag-name>.tar.gz will be created at <output_folder-full-path>
-
-# Simply running ./export.sh will put the tar.gz file in the current folder and use the very latest createed tag 
-
-set -e
-trap "cleanup" 0 1 2 3 9 11 13 15
-
-# ME=export.sh
-ME=$(basename ${0})
-
-SRC=$(dirname $(dirname $(readlink -f $0)))
-echo Source directory=${SRC}
-
-usage()
-{
-    echo
-    echo "Usage: ${ME} [DIR] [TAG]"
-    exit 1
-}
-
-cleanup()
-{
-    trap - 0 1 2 3 9 11 13 15
-    echo
-    [ ${WORKDIR} ] && [ -d ${WORKDIR} ] && rm -rf ${WORKDIR}
-}
-
-
-DIR=$PWD
-
-# This will get the latest created tag
-TAG=$(git describe --tags --always)
-echo Using tag ${TAG} to create archive
-
-##
-## Allow overrides to be passed on the cmdline
-##
-if [ $# -gt 2 ]; then
-    usage
-elif [ $# -ge 1 ]; then
-    DIR=$1
-    if [ $# -eq 2 ]; then
-        TAG=$2
-    fi
-fi
-
-# verify the tag exists
-git rev-list -1 tags/${TAG} -- >/dev/null || usage
-
-# mktemp command creates a temp directory for example - /tmp/tmp.k8vDddIzni
-WORKDIR=$(mktemp -d)
-echo Working Directory=${WORKDIR}
-
-
-##
-## Create the archive
-##
-(
-    cd ${SRC}
-    MTIME=$(date -d @`git log -1 --pretty=format:%ct tags/${TAG}` '+%Y-%m-%d %H:%M:%S')
-    VERSION=$(git show tags/${TAG}:VERSION.txt)
-    ARCHIVE=$DIR/qpid-dispatch-${VERSION}.tar.gz
-    PREFIX=qpid-dispatch-${VERSION}
-    [ -d ${WORKDIR} ] || mkdir -p ${WORKDIR}
-    git archive --format=tar --prefix=${PREFIX}/ tags/${TAG} \
-        | tar -x -C ${WORKDIR}
-    cd ${WORKDIR}
-    tar -c -z \
-        --owner=root --group=root --numeric-owner \
-        --mtime="${MTIME}" \
-        -f ${ARCHIVE} ${PREFIX}
-    echo Created "${ARCHIVE}"
-    echo Success!!!
-)
diff --git a/bin/find_ports.sh b/bin/find_ports.sh
deleted file mode 100755
index 4c1239e..0000000
--- a/bin/find_ports.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-#
-# 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
-#
-
-
-# Usage: $0 [ dir ]
-# Find all the listening ports mentioned in *.log files under dir.
-# With no dir search under current directory.
-
-find "$@" -name '*.log' | xargs gawk 'match($0, /Listening on .* ([0-9]+)/, m) { print m[1] } match($0, /Configured Listener: .*:([0-9]+)/, m) { print m[1] }'
-
diff --git a/bin/grinder b/bin/grinder
deleted file mode 100755
index 9a4aa77..0000000
--- a/bin/grinder
+++ /dev/null
@@ -1,370 +0,0 @@
-#!/usr/bin/python
-#
-# 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.
-#
-
-#
-# a tool for post-processing Valgrind output from the unit tests
-# Use:
-#    1) configure the build to use valgrind and output xml
-#       $ cmake .. -DUSE_VALGRIND=Yes -DVALGRIND_XML=Yes
-#    2) build and run the unit tests
-#       $ make && make test
-#    3) run grinder from your build directory.  It will look for valgrind xml
-#       files named "valgrind-*.xml in the current directory and all
-#       subdirectories and process them. Output is sent to stdout
-#       $ ../bin/grinder
-#
-# Note: be sure to clean the build directory before running the unit tests
-# to remove old valgrind-*.xml files
-#
-
-import logging
-import os
-import re
-import sys
-import xml.etree.ElementTree as ET
-from xml.etree.ElementTree import ParseError
-
-
-class Frame(object):
-    """
-    Represents info for a single stack frame
-    """
-    FIELDS = ["fn", "dir", "file", "line"]
-    def __init__(self, frame):
-        self._fields = dict()
-        for tag in self.FIELDS:
-            _ = frame.find(tag)
-            self._fields[tag] = _.text if _ is not None else "<none>"
-
-    def __str__(self):
-        return ("(%s) %s/%s:%s" %
-                (self._fields['fn'],
-                 self._fields['dir'],
-                 self._fields['file'],
-                 self._fields['line']))
-
-    def __hash__(self):
-        return hash(self.__str__())
-
-
-class ErrorBase(object):
-    """
-    Base class representing a single valgrind error
-    """
-    def __init__(self, kind):
-        self.kind = kind
-        self.count = 1
-
-    def __hash__(self):
-        return hash(self.kind)
-
-    def __str__(self):
-        return "kind = %s  (count=%d)" % (self.kind, self.count)
-
-    def merge(self, other):
-        self.count += other.count
-
-    def __lt__(self, other):
-        return self.count < other.count
-    def __le__(self, other):
-        return self.count <= other.count
-    def __eq__(self, other):
-        return self.count == other.count
-    def __gt__(self, other):
-        return self.count > other.count
-    def __ge__(self, other):
-        return self.count >= other.count
-
-
-class GeneralError(ErrorBase):
-    """
-    For simple single stack errors
-    """
-    def __init__(self, error_xml):
-        kind = error_xml.find("kind").text
-        super(GeneralError, self).__init__(kind)
-        w = error_xml.find("what")
-        self._what = w.text if w is not None else "<none>"
-
-        # stack
-        self._stack = list()
-        s = error_xml.find("stack")
-        for frame in s.findall("frame"):
-            self._stack.append(Frame(frame))
-
-    def __hash__(self):
-        h = super(GeneralError, self).__hash__()
-        for f in self._stack:
-            h += hash(f)
-        return h
-
-    def __str__(self):
-        s = super(GeneralError, self).__str__() + "\n"
-        if self._what:
-            s += self._what + "\n"
-        s += "Stack:"
-        for frame in self._stack:
-            s += "\n  %s" % str(frame)
-        return s
-
-
-class LeakError(ErrorBase):
-    def __init__(self, error_xml):
-        kind = error_xml.find("kind").text
-        assert(kind.startswith("Leak_"))
-        super(LeakError, self).__init__(kind)
-        self._leaked_bytes = 0
-        self._leaked_blocks = 0
-        self._stack = list()
-
-        # xwhat:
-        #    leakedbytes
-        #    leakedblocks
-        lb = error_xml.find("xwhat/leakedbytes")
-        if lb is not None:
-            self._leaked_bytes = int(lb.text)
-        lb = error_xml.find("xwhat/leakedblocks")
-        if lb is not None:
-            self._leaked_blocks = int(lb.text)
-
-        # stack
-        s = error_xml.find("stack")
-        for frame in s.findall("frame"):
-            self._stack.append(Frame(frame))
-
-    def merge(self, other):
-        super(LeakError, self).merge(other)
-        self._leaked_bytes += other._leaked_bytes
-        self._leaked_blocks += other._leaked_blocks
-
-    def __hash__(self):
-        h = super(LeakError, self).__hash__()
-        for f in self._stack:
-            h += hash(f)
-        return h
-
-    def __str__(self):
-        s = super(LeakError, self).__str__() + "\n"
-        s += "Leaked Bytes = %d Blocks = %d\n" % (self._leaked_bytes,
-                                                  self._leaked_blocks)
-        s += "Stack:"
-        for frame in self._stack:
-            s += "\n  %s" % str(frame)
-        return s
-
-
-class InvalidMemError(ErrorBase):
-    def __init__(self, error_xml):
-        kind = error_xml.find("kind").text
-        super(InvalidMemError, self).__init__(kind)
-        # expect
-        #  what
-        #  stack  (invalid access)
-        #  followed by zero or more:
-        #      aux what  (aux stack description)
-        #      aux stack  (where alloced, freed)
-        self._what = "<none>"
-        self._stack = None
-        self._auxwhat = list()
-        self._aux_stacks = list()
-        for child in error_xml:
-            if child.tag == "what":
-                self._what = child.text
-            if child.tag == "auxwhat":
-                self._auxwhat.append(child.text)
-            if child.tag == "stack":
-                stack = list()
-                for frame in child.findall("frame"):
-                    stack.append(Frame(frame))
-                if self._stack == None:
-                    self._stack = stack
-                else:
-                    self._aux_stacks.append(stack)
-
-    def __hash__(self):
-        # for now don't include what/auxwhat as it may
-        # be different for the same codepath
-        h = super(InvalidMemError, self).__hash__()
-        for f in self._stack:
-            h += hash(f)
-        for s in self._aux_stacks:
-            for f in s:
-                h += hash(f)
-        return h
-
-    def __str__(self):
-        s = super(InvalidMemError, self).__str__() + "\n"
-        s += "%s\n" % self._what
-        s += "Stack:"
-        for frame in self._stack:
-            s += "\n  %s" % str(frame)
-
-        for what, stack in zip(self._auxwhat, self._aux_stacks):
-            s += "\n%s:" % what
-            for frame in stack:
-                s += "\n  %s" % str(frame)
-        return s
-
-
-class SignalError(ErrorBase):
-    def __init__(self, error_xml):
-        super(SignalError, self).__init__("FatalSignal")
-        # expects:
-        #  signo
-        #  signame
-        #  stack
-        self._signo = "<none>"
-        sn = error_xml.find("signo")
-        if sn is not None:
-            self._signo = sn.text
-        self._signame = "<none>"
-        sn = error_xml.find("signame")
-        if sn is not None:
-            self._signame = sn.text
-
-        self._stack = list()
-        s = error_xml.find("stack")
-        for frame in s.findall("frame"):
-            self._stack.append(Frame(frame))
-
-    def __hash__(self):
-        # for now don't include what/auxwhat as it may
-        # be different for the same codepath
-        h = super(SignalError, self).__hash__()
-        h += hash(self._signo)
-        h += hash(self._signame)
-        for f in self._stack:
-            h += hash(f)
-        return h
-
-    def __str__(self):
-        s = super(SignalError, self).__str__() + "\n"
-        s += "Signal %s (%s)\n" % (self._signo, self._signame)
-        s += "Stack:"
-        for frame in self._stack:
-            s += "\n  %s" % str(frame)
-        return s
-
-
-_ERROR_CLASSES = {
-    'InvalidRead':         InvalidMemError,
-    'InvalidWrite':        InvalidMemError,
-    'Leak_DefinitelyLost': LeakError,
-    'Leak_IndirectlyLost': LeakError,
-    'Leak_PossiblyLost':   LeakError,
-    'Leak_StillReachable': LeakError,
-    'UninitCondition':     GeneralError,
-    'SyscallParam':        GeneralError,
-    'InvalidFree':         InvalidMemError,
-    'FishyValue':          InvalidMemError,
-    # TBD:
-    'InvalidJump': None,
-    'UninitValue': None,
-}
-
-
-def parse_error(error_xml):
-    """
-    Factory that returns an Error instance
-    """
-    kind = error_xml.find("kind").text
-    e_cls = _ERROR_CLASSES.get(kind)
-    if e_cls:
-        return e_cls(error_xml)
-    raise Exception("Unsupported error type %s, please update grinder"
-                    " to handle it" % kind)
-
-
-def parse_xml_file(filename, exe_name='qdrouterd'):
-    """
-    Parse out errors from a valgrind output xml file
-    """
-    logging.debug("Parsing %s", filename)
-    error_list = list()
-    try:
-        root = ET.parse(filename).getroot()
-    except ParseError as exc:
-        if "no element found" not in str(exc):
-            logging.warning("Error parsing %s: %s - skipping",
-                            filename, str(exc))
-        else:
-            logging.debug("No errors found in: %s - skipping",
-                          filename)
-        return error_list
-
-    pv = root.find('protocolversion')
-    if pv is None or not "4" == pv.text:
-        # unsupported xml format version
-        logging.warning("Unsupported format version for %s, skipping...",
-                      filename)
-        return error_list
-
-    pt = root.find('protocoltool')
-    if pt is None or not "memcheck" == pt.text:
-        logging.warning("Not a memcheck file %s, skipping...",
-                        filename)
-        return error_list
-
-    if not exe_name in root.find('args/argv/exe').text:
-        # not from the target executable, skip
-        logging.debug("file %s is not generated from %s, skipping...",
-                      filename, exe_name)
-        return error_list
-
-    for error in root.findall('error'):
-        error_list.append(parse_error(error))
-
-    # sigabort, etc classified as fatal_signal
-    for signal in root.findall("fatal_signal"):
-        error_list.append(SignalError(signal))
-    return error_list
-
-
-def main():
-    errors_map = dict()
-    file_name = re.compile("valgrind-[0-9]+\.xml")
-    for dp, dn, fn in os.walk("."):
-        for name in fn:
-            if file_name.match(name):
-                errors = parse_xml_file(os.path.join(dp, name))
-                for e in errors:
-                    h = hash(e)
-                    if h in errors_map:
-                        # coalesce duplicate errors
-                        errors_map[h].merge(e)
-                    else:
-                        errors_map[h] = e
-
-    # sort by # of occurances
-    error_list = sorted([e for e in errors_map.values()], reverse=True)
-
-    if error_list:
-        for e in error_list:
-            print("\n-----")
-            print("%s" % str(e))
-        print("\n\n-----")
-        print("----- %s total issues detected" % len(error_list))
-        print("-----")
-    else:
-        print("No Valgrind errors found! Congratulations ;)")
-
-
-if __name__ == "__main__":
-    sys.exit(main())
diff --git a/bin/make_standalone_console_tarball.sh b/bin/make_standalone_console_tarball.sh
deleted file mode 100755
index e7f68e8..0000000
--- a/bin/make_standalone_console_tarball.sh
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-
-#
-# 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.
-#
-
-# export.sh - Create a release archive.
-set -e
-trap "cleanup" 0 1 2 3 9 11 13 15
-
-# ME=export.sh
-ME=$(basename ${0})
-
-SRC=$(dirname $(dirname $(readlink -f $0)))
-echo Source directory=${SRC}
-
-usage()
-{
-    echo
-    echo "Usage: ${ME} [DIR] [TAG]"
-    exit 1
-}
-
-cleanup()
-{
-    trap - 0 1 2 3 9 11 13 15
-    echo
-    [ ${WORKDIR} ] && [ -d ${WORKDIR} ] && rm -rf ${WORKDIR}
-}
-
-
-DIR=$PWD
-
-# This will get the latest created tag
-TAG=$(git describe --tags --always)
-
-##
-## Allow overrides to be passed on the cmdline
-##
-if [ $# -gt 2 ]; then
-    usage
-elif [ $# -ge 1 ]; then
-    DIR=$1
-    if [ $# -eq 2 ]; then
-        TAG=$2
-    fi
-fi
-
-if [ "$DIR" = "." ]; then 
-    DIR=$PWD
-fi
-
-echo Using tag ${TAG} to create archive
-echo File will be output to ${DIR}
-
-# verify the tag exists
-git rev-list -1 tags/${TAG} -- >/dev/null || usage
-
-# mktemp command creates a temp directory for example - /tmp/tmp.k8vDddIzni
-WORKDIR=$(mktemp -d)
-echo Working Directory=${WORKDIR}
-
-
-##
-## Create the archive
-##
-(
-    cd ${SRC}
-    MTIME=$(date -d @`git log -1 --pretty=format:%ct tags/${TAG}` '+%Y-%m-%d %H:%M:%S')
-    VERSION=$(git show tags/${TAG}:VERSION.txt)
-    ARCHIVE=$DIR/qpid-dispatch-console-${VERSION}.tar.gz
-    PREFIX=qpid-dispatch-${VERSION}
-    [ -d ${WORKDIR} ] || mkdir -p ${WORKDIR}
-    git archive --format=tar --prefix=${PREFIX}/ tags/${TAG} \
-        | tar -x -C ${WORKDIR}
-    cd ${WORKDIR}
-    BUILD_DIR=${WORKDIR}/build
-    INSTALL_DIR=${WORKDIR}/install
-    mkdir $BUILD_DIR
-    pushd $BUILD_DIR
-    cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_BUILD_TYPE=Release ../$PREFIX
-    make install
-    pushd $INSTALL_DIR/share/qpid-dispatch/
-    tar -c -h -z \
-        --owner=root --group=root --numeric-owner \
-        --mtime="${MTIME}" \
-        -f ${ARCHIVE} console
-    popd
-    popd
-    echo Created "${ARCHIVE}"
-    echo Success!!!
-)
diff --git a/bin/rebuild.sh b/bin/rebuild.sh
deleted file mode 100755
index 465c103..0000000
--- a/bin/rebuild.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -ev
-
-rm -rf $BUILD_DIR
-rm -rf $INSTALL_DIR
-
-mkdir $BUILD_DIR
-cd $BUILD_DIR
-
-cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_BUILD_TYPE=Debug "$@" $SOURCE_DIR
-make -j4
-make install
diff --git a/bin/record-coverage.sh b/bin/record-coverage.sh
deleted file mode 100755
index 33fe278..0000000
--- a/bin/record-coverage.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#! /usr/bin/env bash
-
-#
-# 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
-#
-
-
-# This script collates coverage data already present from running instrumented code.
-#
-# It requires the lcov tool to be installed (this provides the lcov and genhtml commands)
-#
-# It will produce a coverage analysis for gcc or clang compiled builds and currently for
-# C and C++ parts of the build tree.
-#
-# It takes two command line arguments:
-# - The first is the dispatch router source tree: this is mandatory.
-# - The second is the build tree: this is optional and if not specified is assumed to be the
-#   current directory.
-#
-# The output is in the form of an html report which will be found in the generated html direectory.
-# - There will also be a number of intermediate files left in the current directory.
-#
-# The typical way to use it would be to use the "Coverage" build type to get instrumented
-# code, then to run the tests then to extract the coverage information from running the
-# tests.
-# Something like:
-#   cmake -DCMAKE_BUILD_TYPE=Coverage ..
-#   make
-#   make test
-#   make coverage
-
-# set -x
-
-# get full path
-function getpath {
-  pushd -n $1 > /dev/null
-  echo $(dirs -0 -l)
-  popd -n > /dev/null
-}
-
-SRC=${1?}
-BLD=${2:-.}
-
-BLDPATH=$(getpath $BLD)
-SRCPATH=$(getpath $SRC)
-
-# Get base profile
-# - this initialises 0 counts for every profiled file
-#   without this step any file with no counts at all wouldn't
-#   show up on the final output.
-lcov -c -i -d $BLDPATH -o dispatch-base.info
-
-# Get actual coverage data
-lcov -c -d $BLDPATH -o dispatch-ctest.info
-
-# Total them up
-lcov --add dispatch-base.info --add dispatch-ctest.info > dispatch-total-raw.info
-
-# Snip out stuff in /usr (we don't care about coverage in system code)
-lcov --remove dispatch-total-raw.info "/usr/include*" "/usr/share*" "${SRCPATH}/tests/*" > dispatch-total.info
-
-# Generate report
-rm -rf html
-genhtml -p $SRCPATH -p $BLDPATH dispatch-total.info --title "Dispatch Router Test Coverage" --demangle-cpp -o html
-
diff --git a/bin/test.sh b/bin/test.sh
deleted file mode 100755
index f0fd69b..0000000
--- a/bin/test.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-test -z "$SOURCE_DIR" -a -f config.sh && source ./config.sh
-
-if [[ -z "$SOURCE_DIR" ]]; then
-    echo "The devel environment isn't ready.  Run 'source config.sh' from"
-    echo "the base of the dispatch source tree"
-    exit 1
-fi
-
-set -ev
-
-rm -rf $BUILD_DIR
-rm -rf $INSTALL_DIR
-
-mkdir $BUILD_DIR
-cd $BUILD_DIR
-
-cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_BUILD_TYPE=Debug ${DISPATCH_CMAKE_EXTRA_ARGS} $SOURCE_DIR
-make -j4
-# Test the build.
-ctest -VV ${DISPATCH_CTEST_EXTRA_ARGS}
-# Run system tests on the install.
-make install
-python $INSTALL_DIR/lib/qpid-dispatch/tests/run_system_tests.py
diff --git a/console/stand-alone/package-lock.json b/console/stand-alone/package-lock.json
index 8cd46be..d4acb12 100644
--- a/console/stand-alone/package-lock.json
+++ b/console/stand-alone/package-lock.json
@@ -54,9 +54,9 @@
           }
         },
         "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+          "version": "4.17.15",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
           "dev": true
         },
         "minimist": {
@@ -99,9 +99,9 @@
           "dev": true
         },
         "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+          "version": "4.17.15",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
           "dev": true
         },
         "source-map": {
@@ -261,6 +261,12 @@
             "to-fast-properties": "^2.0.0"
           }
         },
+        "lodash": {
+          "version": "4.17.15",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+          "dev": true
+        },
         "to-fast-properties": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -1263,9 +1269,9 @@
           "dev": true
         },
         "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+          "version": "4.17.15",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
           "dev": true
         },
         "ms": {
@@ -1288,9 +1294,9 @@
       },
       "dependencies": {
         "lodash": {
-          "version": "4.17.11",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-          "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+          "version": "4.17.15",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+          "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
           "dev": true
         },
         "to-fast-properties": {
@@ -1338,12 +1344,276 @@
         "through2": "^2.0.3"
       }
     },
+    "@types/c3": {
+      "version": "0.6.4",
+      "resolved": "https://registry.npmjs.org/@types/c3/-/c3-0.6.4.tgz",
+      "integrity": "sha512-W7i7oSmHsXYhseZJsIYexelv9HitGsWdQhx3mcy4NWso+GedpCYr02ghpkNvnZ4oTIjNeISdrOnM70s7HiuV+g==",
+      "optional": true,
+      "requires": {
+        "@types/d3": "^4"
+      }
+    },
+    "@types/d3": {
+      "version": "4.13.2",
+      "resolved": "https://registry.npmjs.org/@types/d3/-/d3-4.13.2.tgz",
+      "integrity": "sha512-jaMix9nFUgLeBSdU0md3usx5BaZfnO9Z0idyRmEq7mo7Ux7FpenW1SvyLXI0e59BtrgyPGNHMaZ0y2rJcSCMiw==",
+      "optional": true,
+      "requires": {
+        "@types/d3-array": "^1",
+        "@types/d3-axis": "*",
+        "@types/d3-brush": "*",
+        "@types/d3-chord": "*",
+        "@types/d3-collection": "*",
+        "@types/d3-color": "*",
+        "@types/d3-dispatch": "*",
+        "@types/d3-drag": "*",
+        "@types/d3-dsv": "*",
+        "@types/d3-ease": "*",
+        "@types/d3-force": "*",
+        "@types/d3-format": "*",
+        "@types/d3-geo": "*",
+        "@types/d3-hierarchy": "*",
+        "@types/d3-interpolate": "*",
+        "@types/d3-path": "*",
+        "@types/d3-polygon": "*",
+        "@types/d3-quadtree": "*",
+        "@types/d3-queue": "*",
+        "@types/d3-random": "*",
+        "@types/d3-request": "*",
+        "@types/d3-scale": "^1",
+        "@types/d3-selection": "*",
+        "@types/d3-shape": "*",
+        "@types/d3-time": "*",
+        "@types/d3-time-format": "*",
+        "@types/d3-timer": "*",
+        "@types/d3-transition": "*",
+        "@types/d3-voronoi": "*",
+        "@types/d3-zoom": "*"
+      }
+    },
+    "@types/d3-array": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.7.tgz",
+      "integrity": "sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA==",
+      "optional": true
+    },
+    "@types/d3-axis": {
+      "version": "1.0.12",
+      "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.12.tgz",
+      "integrity": "sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg==",
+      "optional": true,
+      "requires": {
+        "@types/d3-selection": "*"
+      }
+    },
+    "@types/d3-brush": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.0.10.tgz",
+      "integrity": "sha512-J8jREATIrfJaAfhJivqaEKPnJsRlwwrOPje+ABqZFgamADjll+q9zaDXnYyjiGPPsiJEU+Qq9jQi5rECxIOfhg==",
+      "optional": true,
+      "requires": {
+        "@types/d3-selection": "*"
+      }
+    },
+    "@types/d3-chord": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.9.tgz",
+      "integrity": "sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw==",
+      "optional": true
+    },
+    "@types/d3-collection": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.8.tgz",
+      "integrity": "sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ==",
+      "optional": true
+    },
+    "@types/d3-color": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.2.2.tgz",
+      "integrity": "sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw==",
+      "optional": true
+    },
+    "@types/d3-dispatch": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.7.tgz",
+      "integrity": "sha512-M+z84G7UKwK6hEPnGCSccOg8zJ3Nk2hgDQ9sCstHXgsFU0sMxlIZVKqKB5oxUDbALqQG6ucg0G9e8cmOSlishg==",
+      "optional": true
+    },
+    "@types/d3-drag": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.3.tgz",
+      "integrity": "sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ==",
+      "optional": true,
+      "requires": {
+        "@types/d3-selection": "*"
+      }
+    },
+    "@types/d3-dsv": {
+      "version": "1.0.36",
+      "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.0.36.tgz",
+      "integrity": "sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA==",
+      "optional": true
+    },
+    "@types/d3-ease": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.8.tgz",
+      "integrity": "sha512-VRf8czVWHSJPoUWxMunzpePK02//wHDAswknU8QWzcyrQn6pqe46bHRYi2smSpw5VjsT2CG8k/QeWIdWPS3Bmg==",
+      "optional": true
+    },
+    "@types/d3-force": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz",
+      "integrity": "sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA==",
+      "optional": true
+    },
+    "@types/d3-format": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.1.tgz",
+      "integrity": "sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A==",
+      "optional": true
+    },
+    "@types/d3-geo": {
+      "version": "1.11.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.11.1.tgz",
+      "integrity": "sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ==",
+      "optional": true,
+      "requires": {
+        "@types/geojson": "*"
+      }
+    },
+    "@types/d3-hierarchy": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz",
+      "integrity": "sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg==",
+      "optional": true
+    },
+    "@types/d3-interpolate": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz",
+      "integrity": "sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ==",
+      "optional": true,
+      "requires": {
+        "@types/d3-color": "*"
+      }
+    },
+    "@types/d3-path": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.8.tgz",
+      "integrity": "sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA==",
+      "optional": true
+    },
+    "@types/d3-polygon": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.7.tgz",
+      "integrity": "sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q==",
+      "optional": true
+    },
+    "@types/d3-quadtree": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz",
+      "integrity": "sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q==",
+      "optional": true
+    },
+    "@types/d3-queue": {
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/@types/d3-queue/-/d3-queue-3.0.8.tgz",
+      "integrity": "sha512-1FWOiI/MYwS5Z1Sa9EvS1Xet3isiVIIX5ozD6iGnwHonGcqL+RcC1eThXN5VfDmAiYt9Me9EWNEv/9J9k9RIKQ==",
+      "optional": true
+    },
+    "@types/d3-random": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.2.tgz",
+      "integrity": "sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA==",
+      "optional": true
+    },
+    "@types/d3-request": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/@types/d3-request/-/d3-request-1.0.5.tgz",
+      "integrity": "sha512-X+/c/qXp92o056C5Qbcp7jL27YRHpmIqOchHb/WB7NwFFqkBtAircqO7oKWv2GTtX4LyEqiDF9gqXsV+ldOlIg==",
+      "optional": true,
+      "requires": {
+        "@types/d3-dsv": "*"
+      }
+    },
+    "@types/d3-scale": {
+      "version": "1.0.14",
+      "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-1.0.14.tgz",
+      "integrity": "sha512-dW6Ii8bH+10klJzVVPPeeQvRpCbX3BO3x9cLTngu/+lXNDbk2uC51aFAA/XhocehZroaG5ajwAFelMFsgpClMg==",
+      "optional": true,
+      "requires": {
+        "@types/d3-time": "*"
+      }
+    },
+    "@types/d3-selection": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.1.tgz",
+      "integrity": "sha512-bv8IfFYo/xG6dxri9OwDnK3yCagYPeRIjTlrcdYJSx+FDWlCeBDepIHUpqROmhPtZ53jyna0aUajZRk0I3rXNA==",
+      "optional": true
+    },
+    "@types/d3-shape": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.1.tgz",
+      "integrity": "sha512-usqdvUvPJ7AJNwpd2drOzRKs1ELie53p2m2GnPKr076/ADM579jVTJ5dPsoZ5E/CMNWk8lvPWYQSvilpp6jjwg==",
+      "optional": true,
+      "requires": {
+        "@types/d3-path": "*"
+      }
+    },
+    "@types/d3-time": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.0.10.tgz",
+      "integrity": "sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw==",
+      "optional": true
+    },
+    "@types/d3-time-format": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.1.tgz",
+      "integrity": "sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g==",
+      "optional": true
+    },
+    "@types/d3-timer": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.9.tgz",
+      "integrity": "sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ==",
+      "optional": true
+    },
+    "@types/d3-transition": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.1.4.tgz",
+      "integrity": "sha512-/vsmKVUIXEyCcIXYAlw7bnYkIs9/J/nZbptRJFKUN3FdXq/dF6j9z9xXzerkyU6TDHLrMrwx9eGwdKyTIy/j9w==",
+      "optional": true,
+      "requires": {
+        "@types/d3-selection": "*"
+      }
+    },
+    "@types/d3-voronoi": {
+      "version": "1.1.9",
+      "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz",
+      "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==",
+      "optional": true
+    },
+    "@types/d3-zoom": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.7.4.tgz",
+      "integrity": "sha512-5jnFo/itYhJeB2khO/lKe730kW/h2EbKMOvY0uNp3+7NdPm4w63DwPEMxifQZ7n902xGYK5DdU67FmToSoy4VA==",
+      "optional": true,
+      "requires": {
+        "@types/d3-interpolate": "*",
+        "@types/d3-selection": "*"
+      }
+    },
     "@types/fancy-log": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/@types/fancy-log/-/fancy-log-1.3.0.tgz",
       "integrity": "sha512-mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw==",
       "dev": true
     },
+    "@types/geojson": {
+      "version": "7946.0.7",
+      "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz",
+      "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==",
+      "optional": true
+    },
     "@types/mocha": {
       "version": "5.2.2",
       "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.2.tgz",
@@ -1515,6 +1785,13 @@
           "integrity": "sha1-v+yJTtmDreHl0/QC/BD4gpZSrJk=",
           "dev": true
         },
+        "bootstrap": {
+          "version": "3.3.7",
+          "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
+          "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E=",
+          "dev": true,
+          "optional": true
+        },
         "jquery": {
           "version": "3.2.1",
           "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz",
@@ -2746,9 +3023,24 @@
       "dev": true
     },
     "bootstrap": {
-      "version": "3.3.7",
-      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
-      "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz",
+      "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA=="
+    },
+    "bootstrap-datepicker": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz",
+      "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==",
+      "optional": true,
+      "requires": {
+        "jquery": ">=1.7.1 <4.0.0"
+      }
+    },
+    "bootstrap-sass": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.4.1.tgz",
+      "integrity": "sha512-p5rxsK/IyEDQm2CwiHxxUi0MZZtvVFbhWmyMOt4lLkA4bujDA1TGoKT0i1FKIWiugAdP+kK8T5KMDFIKQCLYIA==",
+      "optional": true
     },
     "bootstrap-select": {
       "version": "1.12.4",
@@ -2760,6 +3052,24 @@
         "jquery": ">=1.8"
       }
     },
+    "bootstrap-slider": {
+      "version": "9.10.0",
+      "resolved": "https://registry.npmjs.org/bootstrap-slider/-/bootstrap-slider-9.10.0.tgz",
+      "integrity": "sha1-EQPWvADPv6jPyaJZmrUYxVZD2j8=",
+      "optional": true
+    },
+    "bootstrap-switch": {
+      "version": "3.3.4",
+      "resolved": "https://registry.npmjs.org/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz",
+      "integrity": "sha1-cOCusqh3wNx2aZHeEI4hcPwpov8=",
+      "optional": true
+    },
+    "bootstrap-touchspin": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/bootstrap-touchspin/-/bootstrap-touchspin-3.1.1.tgz",
+      "integrity": "sha1-l3nerHKq9Xfl52K4USx0fIcdlZc=",
+      "optional": true
+    },
     "brace-expansion": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -3642,8 +3952,39 @@
       "version": "1.10.19",
       "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.19.tgz",
       "integrity": "sha512-+ljXcI6Pj3PTGy5pesp3E5Dr3x3AV45EZe0o1r0gKENN2gafBKXodVnk2ypKwl2tTmivjxbkiqoWnipTefyBTA==",
-      "dev": true,
+      "optional": true,
+      "requires": {
+        "jquery": ">=1.7"
+      }
+    },
+    "datatables.net-bs": {
+      "version": "1.10.19",
+      "resolved": "https://registry.npmjs.org/datatables.net-bs/-/datatables.net-bs-1.10.19.tgz",
+      "integrity": "sha512-5gxoI2n+duZP06+4xVC2TtH6zcY369/TRKTZ1DdSgDcDUl4OYQsrXCuaLJmbVzna/5Y5lrMmK7CxgvYgIynICA==",
+      "optional": true,
+      "requires": {
+        "datatables.net": "1.10.19",
+        "jquery": ">=1.7"
+      }
+    },
+    "datatables.net-colreorder": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/datatables.net-colreorder/-/datatables.net-colreorder-1.5.1.tgz",
+      "integrity": "sha512-nKV0ZBOdOG+CCrtDZZlTOvhu9NC53pr4rYR8Xhd3KIKipLZohWWdBoOFGMu+VKDvllg2Xj79oS/wicYSiNyteA==",
+      "optional": true,
+      "requires": {
+        "datatables.net": "^1.10.15",
+        "jquery": ">=1.7"
+      }
+    },
+    "datatables.net-colreorder-bs": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/datatables.net-colreorder-bs/-/datatables.net-colreorder-bs-1.3.3.tgz",
+      "integrity": "sha1-Op3LCN7r612FQHlZHgbkk615OlM=",
+      "optional": true,
       "requires": {
+        "datatables.net-bs": ">=1.10.9",
+        "datatables.net-colreorder": ">=1.2.0",
         "jquery": ">=1.7"
       }
     },
@@ -3662,7 +4003,6 @@
       "version": "1.2.7",
       "resolved": "https://registry.npmjs.org/datatables.net-select/-/datatables.net-select-1.2.7.tgz",
       "integrity": "sha512-C3XDi7wpruGjDXV36dc9hN/FrAX9GOFvBZ7+KfKJTBNkGFbbhdzHS91SMeGiwRXPYivAyxfPTcVVndVaO83uBQ==",
-      "dev": true,
       "optional": true,
       "requires": {
         "datatables.net": "^1.10.15",
@@ -3959,6 +4299,15 @@
       "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
       "dev": true
     },
+    "drmonty-datatables-colvis": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/drmonty-datatables-colvis/-/drmonty-datatables-colvis-1.1.2.tgz",
+      "integrity": "sha1-lque37SGQ8wu3aP4e4iTPN7oEnw=",
+      "optional": true,
+      "requires": {
+        "jquery": ">=1.7.0"
+      }
+    },
     "duplexer2": {
       "version": "0.1.4",
       "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
@@ -4020,6 +4369,18 @@
         "once": "^1.4.0"
       }
     },
+    "eonasdan-bootstrap-datetimepicker": {
+      "version": "4.17.47",
+      "resolved": "https://registry.npmjs.org/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47.tgz",
+      "integrity": "sha1-ekmXAEQGUnbnll79Fvgic1IZ5zU=",
+      "optional": true,
+      "requires": {
+        "bootstrap": "^3.3",
+        "jquery": "^1.8.3 || ^2.0 || ^3.0",
+        "moment": "^2.10",
+        "moment-timezone": "^0.4.0"
+      }
+    },
     "error-ex": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -4328,9 +4689,9 @@
       }
     },
     "extend": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
-      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
       "dev": true
     },
     "extend-shallow": {
@@ -4612,6 +4973,17 @@
         "readable-stream": "^2.0.4"
       }
     },
+    "font-awesome": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+      "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+    },
+    "font-awesome-sass": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/font-awesome-sass/-/font-awesome-sass-4.7.0.tgz",
+      "integrity": "sha1-TtppPpFQCc4Asijglk3F7Km8NOE=",
+      "optional": true
+    },
     "for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -4856,6 +5228,12 @@
         "sparkles": "^1.0.0"
       }
     },
+    "google-code-prettify": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/google-code-prettify/-/google-code-prettify-1.0.5.tgz",
+      "integrity": "sha1-n0d/Ik2/piNy5e+AOn4VdBBAAIQ=",
+      "optional": true
+    },
     "graceful-fs": {
       "version": "4.1.11",
       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
@@ -5975,9 +6353,15 @@
       "dev": true
     },
     "jquery": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
-      "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
+      "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
+    },
+    "jquery-match-height": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/jquery-match-height/-/jquery-match-height-0.7.2.tgz",
+      "integrity": "sha1-+NnzulMU2qsQnPB0CGdL4gS+Xw4=",
+      "optional": true
     },
     "jquery-ui-dist": {
       "version": "1.12.1",
@@ -6175,9 +6559,9 @@
       }
     },
     "lodash": {
-      "version": "4.17.11",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-      "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+      "version": "4.17.15",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
       "dev": true
     },
     "lodash._basecopy": {
@@ -6533,9 +6917,9 @@
       }
     },
     "mixin-deep": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
-      "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
       "dev": true,
       "requires": {
         "for-in": "^1.0.2",
@@ -6608,9 +6992,17 @@
       "version": "2.19.4",
       "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.4.tgz",
       "integrity": "sha512-1xFTAknSLfc47DIxHDUbnJWC+UwgWxATmymaxIPQpmMh7LBm7ZbwVEsuushqwL2GYZU0jie4xO+TK44hJPjNSQ==",
-      "dev": true,
       "optional": true
     },
+    "moment-timezone": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.4.1.tgz",
+      "integrity": "sha1-gfWYw61eIs2teWtn7NjYjQ9bqgY=",
+      "optional": true,
+      "requires": {
+        "moment": ">= 2.6.0"
+      }
+    },
     "ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -7281,17 +7673,17 @@
       "dev": true
     },
     "patternfly": {
-      "version": "3.51.0",
-      "resolved": "https://registry.npmjs.org/patternfly/-/patternfly-3.51.0.tgz",
-      "integrity": "sha1-IQ3qyGHgc0kn+11h1zU6WkDZwP8=",
+      "version": "3.59.3",
+      "resolved": "https://registry.npmjs.org/patternfly/-/patternfly-3.59.3.tgz",
+      "integrity": "sha512-gStdjLCS9k6NmI2xCXa1IBK0s8p5l5dqMEh/zLEUwA+qdV6z6qwSxHe8QT3AjLyEy27qMSzmtUXxvkO1c8jENw==",
       "requires": {
         "@types/c3": "^0.6.0",
-        "bootstrap": "~3.3.7",
+        "bootstrap": "~3.4.1",
         "bootstrap-datepicker": "^1.7.1",
-        "bootstrap-sass": "^3.3.7",
+        "bootstrap-sass": "^3.4.0",
         "bootstrap-select": "1.12.2",
         "bootstrap-slider": "^9.9.0",
-        "bootstrap-switch": "~3.3.4",
+        "bootstrap-switch": "3.3.4",
         "bootstrap-touchspin": "~3.1.1",
         "c3": "~0.4.11",
         "d3": "~3.5.17",
@@ -7304,7 +7696,7 @@
         "font-awesome": "^4.7.0",
         "font-awesome-sass": "^4.7.0",
         "google-code-prettify": "~1.0.5",
-        "jquery": "~3.2.1",
+        "jquery": "~3.4.1",
         "jquery-match-height": "^0.7.2",
         "moment": "^2.19.1",
         "moment-timezone": "^0.4.1",
@@ -7312,284 +7704,6 @@
         "patternfly-bootstrap-treeview": "~2.1.0"
       },
       "dependencies": {
-        "@types/c3": {
-          "version": "0.6.0",
-          "resolved": "https://registry.npmjs.org/@types/c3/-/c3-0.6.0.tgz",
-          "integrity": "sha512-49E+Oh7KDKd8Dg4WjYh8NvFSZlmPUYuNquJzTvhk+CaBhsN7z+m1U/jmGS4V2QWHxBwj1HT7Hdz2mWbRXEmjQA==",
-          "optional": true,
-          "requires": {
-            "@types/d3": "^4"
-          }
-        },
-        "@types/d3": {
-          "version": "4.13.0",
-          "resolved": "https://registry.npmjs.org/@types/d3/-/d3-4.13.0.tgz",
-          "integrity": "sha512-L7C+aOIl+z/e7pPBvRXxA9EZ8a5RIZSq4UnTgdjCnypYV3bPI1wpx81snC8pE1zB4SZQC/WK4noZUHzWAABfBA==",
-          "optional": true,
-          "requires": {
-            "@types/d3-array": "*",
-            "@types/d3-axis": "*",
-            "@types/d3-brush": "*",
-            "@types/d3-chord": "*",
-            "@types/d3-collection": "*",
-            "@types/d3-color": "*",
-            "@types/d3-dispatch": "*",
-            "@types/d3-drag": "*",
-            "@types/d3-dsv": "*",
-            "@types/d3-ease": "*",
-            "@types/d3-force": "*",
-            "@types/d3-format": "*",
-            "@types/d3-geo": "*",
-            "@types/d3-hierarchy": "*",
-            "@types/d3-interpolate": "*",
-            "@types/d3-path": "*",
-            "@types/d3-polygon": "*",
-            "@types/d3-quadtree": "*",
-            "@types/d3-queue": "*",
-            "@types/d3-random": "*",
-            "@types/d3-request": "*",
-            "@types/d3-scale": "^1",
-            "@types/d3-selection": "*",
-            "@types/d3-shape": "*",
-            "@types/d3-time": "*",
-            "@types/d3-time-format": "*",
-            "@types/d3-timer": "*",
-            "@types/d3-transition": "*",
-            "@types/d3-voronoi": "*",
-            "@types/d3-zoom": "*"
-          }
-        },
-        "@types/d3-array": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.1.tgz",
-          "integrity": "sha512-YBaAfimGdWE4nDuoGVKsH89/dkz2hWZ0i8qC+xxqmqi+XJ/aXiRF0jPtzXmN7VdkpVjy1xuDmM5/m1FNuB6VWA==",
-          "optional": true
-        },
-        "@types/d3-axis": {
-          "version": "1.0.10",
-          "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.10.tgz",
-          "integrity": "sha512-5YF0wfdQMPKw01VAAupLIlg/T4pn5M3/vL9u0KZjiemnVnnKBEWE24na4X1iW+TfZiYJ8j+BgK2KFYnAAT54Ug==",
-          "optional": true,
-          "requires": {
-            "@types/d3-selection": "*"
-          }
-        },
-        "@types/d3-brush": {
-          "version": "1.0.8",
-          "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.0.8.tgz",
-          "integrity": "sha512-9Thv09jvolu9T1BE3fHmIeYSgbwSpdxtF6/A5HZEDjSTfgtA0mtaXRk5AiWOo0KjuLsI+/7ggD3ZGN5Ye8KXPQ==",
-          "optional": true,
-          "requires": {
-            "@types/d3-selection": "*"
-          }
-        },
-        "@types/d3-chord": {
-          "version": "1.0.7",
-          "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.7.tgz",
-          "integrity": "sha512-WbCN7SxhZMpQQw46oSjAovAmvl3IdjhLuQ4r7AXCzNKyxtXXBWuihSPZ4bVwFQF3+S2z37i9d4hfUBatcSJpog==",
-          "optional": true
-        },
-        "@types/d3-collection": {
-          "version": "1.0.7",
-          "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.7.tgz",
-          "integrity": "sha512-vR3BT0GwHc5y93Jv6bxn3zoxP/vGu+GdXu/r1ApjbP9dLk9I2g6NiV7iP/QMQSuFZd0It0n/qWrfXHxCWwHIkg==",
-          "optional": true
-        },
-        "@types/d3-color": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.2.1.tgz",
-          "integrity": "sha512-xwb1tqvYNWllbHuhMFhiXk63Imf+QNq/dJdmbXmr2wQVnwGenCuj3/0IWJ9hdIFQIqzvhT7T37cvx93jtAsDbQ=="
-        },
-        "@types/d3-dispatch": {
-          "version": "1.0.6",
-          "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.6.tgz",
-          "integrity": "sha512-xyWJQMr832vqhu6fD/YqX+MSFBWnkxasNhcStvlhqygXxj0cKqPft0wuGoH5TIq5ADXgP83qeNVa4R7bEYN3uA==",
-          "optional": true
-        },
-        "@types/d3-drag": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.1.tgz",
-          "integrity": "sha512-J9liJ4NNeV0oN40MzPiqwWjqNi3YHCRtHNfNMZ1d3uL9yh1+vDuo346LBEr8yyBm30WHvrHssAkExVZrGCswtA==",
-          "optional": true,
-          "requires": {
-            "@types/d3-selection": "*"
-          }
-        },
-        "@types/d3-dsv": {
-          "version": "1.0.33",
-          "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.0.33.tgz",
-          "integrity": "sha512-jx5YvaVC3Wfh6LobaiWTeU1NkvL2wPmmpmajk618bD+xVz98yNWzmZMvmlPHGK0HXbMeHmW/6oVX48V9AH1bRQ=="
-        },
-        "@types/d3-ease": {
-          "version": "1.0.7",
-          "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.7.tgz",
-          "integrity": "sha1-k6MBhovp4VBh89RDQ7GrP4rLbwk=",
-          "optional": true
-        },
-        "@types/d3-force": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.1.1.tgz",
-          "integrity": "sha512-ePkELuaFWY4yOuf+Bvx5Xd+ihFiYG4bdnW0BlvigovIm8Sob2t76e9RGO6lybQbv6AlW9Icn9HuZ9fmdzEoJyg==",
-          "optional": true
-        },
-        "@types/d3-format": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.0.tgz",
-          "integrity": "sha512-ZiY4j3iJvAdOwzwW24WjlZbUNvqOsnPAMfPBmdXqxj3uKJbrzBlRrdGl5uC89pZpFs9Dc92E81KcwG2uEgkIZA==",
-          "optional": true
-        },
-        "@types/d3-geo": {
-          "version": "1.10.3",
-          "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.10.3.tgz",
-          "integrity": "sha512-hfdaxM2L0wA9mDZrrSf2o+DyhEpnJYCiAN+lHFtpfZOVCQrYBA5g33sGRpUbAvjSMyO5jkHbftMWPEhuCMChSg==",
-          "optional": true,
-          "requires": {
-            "@types/geojson": "*"
-          }
-        },
-        "@types/d3-hierarchy": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.2.tgz",
-          "integrity": "sha512-L+Ht4doqlCIH8jYN2AC1mYIOj13OxlRhdWNWXv2pc3o5A9i3YmQ0kz6A7w8c+Ujylfusi/FO+zVlVnQoOHc2Qw==",
-          "optional": true
-        },
-        "@types/d3-interpolate": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.2.0.tgz",
-          "integrity": "sha512-qM9KlUrqbwIhBRtw9OtAEbkis1AxsOJEun2uxaX/vEsBp3vyNBmhPz9boXXEqic9ZRi7fCpUNRwyZvxa0PioIw==",
-          "requires": {
-            "@types/d3-color": "*"
-          }
-        },
-        "@types/d3-path": {
-          "version": "1.0.7",
-          "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.7.tgz",
-          "integrity": "sha512-U8dFRG+8WhkLJr2sxZ9Cw/5WeRgBnNqMxGdA1+Z0+ZG6tK0s75OQ4OXnxeyfKuh6E4wQPY8OAKr1+iNDx01BEQ=="
-        },
-        "@types/d3-polygon": {
-          "version": "1.0.6",
-          "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.6.tgz",
-          "integrity": "sha512-E6Kyodn9JThgLq20nxSbEce9ow5/ePgm9PX2EO6W1INIL4DayM7cFaiG10DStuamjYAd0X4rntW2q+GRjiIktw==",
-          "optional": true
-        },
-        "@types/d3-quadtree": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.5.tgz",
-          "integrity": "sha1-HOHmWerkUw3wyxJ/KX8XQaNnqC4=",
-          "optional": true
-        },
-        "@types/d3-queue": {
-          "version": "3.0.6",
-          "resolved": "https://registry.npmjs.org/@types/d3-queue/-/d3-queue-3.0.6.tgz",
-          "integrity": "sha512-CGGs7QeUs4F9YoD7KM0l4jwQ3wj2UqVLIweRk/OxF5n3ujnSJoT/wzIl2TCR0TiY88LEAnBfW+LhEJm9famk6A==",
-          "optional": true
-        },
-        "@types/d3-random": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.1.tgz",
-          "integrity": "sha512-jUPeBq1XKK9/5XasTvy5QAUwFeMsjma2yt/nP02yC2Tijovx7i/W5776U/HZugxc5SSmtpx4Z3g9KFVon0QrjQ==",
-          "optional": true
-        },
-        "@types/d3-request": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/@types/d3-request/-/d3-request-1.0.2.tgz",
-          "integrity": "sha1-2524FU9HgWWEcGxub3Ar5m8i9L4=",
-          "optional": true,
-          "requires": {
-            "@types/d3-dsv": "*"
-          }
-        },
-        "@types/d3-scale": {
-          "version": "1.0.13",
-          "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-1.0.13.tgz",
-          "integrity": "sha512-VkytFyGGRVNBn/CBfvstjta9elXALBAgg9yTqHHAglOTTR8EhPDQYBnMwE2kOYxu32kBXzUNXKdFCA9YejKjnw==",
-          "optional": true,
-          "requires": {
-            "@types/d3-time": "*"
-          }
-        },
-        "@types/d3-selection": {
-          "version": "1.3.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.3.1.tgz",
-          "integrity": "sha512-G+eO+2G1iW3GNrROxhoU+ar+bIJbQq1QkxcfhwjQ19xA20n3T31j5pSJqAOWvPSoFTz4Ets/DQgYhmgT4jepDg=="
-        },
-        "@types/d3-shape": {
-          "version": "1.2.3",
-          "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.2.3.tgz",
-          "integrity": "sha512-iP9TcX0EVi+LlX+jK9ceS+yhEz5abTitF+JaO2ugpRE/J+bccaYLe/0/3LETMmdaEkYarIyboZW8OF67Mpnj1w==",
-          "optional": true,
-          "requires": {
-            "@types/d3-path": "*"
-          }
-        },
-        "@types/d3-time": {
-          "version": "1.0.8",
-          "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.0.8.tgz",
-          "integrity": "sha512-/UCphyyw97YAq4zKsuXH33R3UNB4jDSza0fLvMubWr/ONh9IePi1NbgFP222blhiCe724ebJs8U87+aDuAq/jA=="
-        },
-        "@types/d3-time-format": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.0.tgz",
-          "integrity": "sha512-/myT3I7EwlukNOX2xVdMzb8FRgNzRMpsZddwst9Ld/VFe6LyJyRp0s32l/V9XoUzk+Gqu56F/oGk6507+8BxrA==",
-          "optional": true
-        },
-        "@types/d3-timer": {
-          "version": "1.0.7",
-          "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.7.tgz",
-          "integrity": "sha512-830pT+aYZrgbA91AuynP3KldfB1A1s60d0gKiV+L7JcSKSJapUzUffAm8VZod7RQOxF5SzoItV6cvrTzjbmrJQ==",
-          "optional": true
-        },
-        "@types/d3-transition": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.1.1.tgz",
-          "integrity": "sha512-GHTghl0YYB8gGgbyKxVLHyAp9Na0HqsX2U7M0u0lGw4IdfEaslooykweZ8fDHW13T+KZeZAuzhbmqBZVFO+6kg==",
-          "optional": true,
-          "requires": {
-            "@types/d3-selection": "*"
-          }
-        },
-        "@types/d3-voronoi": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.7.tgz",
-          "integrity": "sha512-/dHFLK5jhXTb/W4XEQcFydVk8qlIAo85G3r7+N2fkBFw190l0R1GQ8C1VPeXBb2GfSU5GbT2hjlnE7i7UY5Gvg==",
-          "optional": true
-        },
-        "@types/d3-zoom": {
-          "version": "1.7.1",
-          "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.7.1.tgz",
-          "integrity": "sha512-Ofjwz6Pt53tRef9TAwwayN+JThNVYC/vFOepa/H4KtwjhsqkmEseHvc2jpJM7vye5PQ5XHtTSOpdY4Y/6xZWEg==",
-          "optional": true,
-          "requires": {
-            "@types/d3-interpolate": "*",
-            "@types/d3-selection": "*"
-          }
-        },
-        "@types/geojson": {
-          "version": "7946.0.3",
-          "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.3.tgz",
-          "integrity": "sha512-BYHiG1vQJ7T93uswzuXZ0OBPWqj5tsAPtaMDQADV8sn2InllXarwg9llr6uaW22q1QCwBZ81gVajOpYWzjesug==",
-          "optional": true
-        },
-        "bootstrap": {
-          "version": "3.3.7",
-          "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
-          "integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
-        },
-        "bootstrap-datepicker": {
-          "version": "1.8.0",
-          "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz",
-          "integrity": "sha512-213St/G8KT3mjs4qu4qwww74KWysMaIeqgq5OhrboZjIjemIpyuxlSo9FNNI5+KzpkkxkRRba+oewiRGV42B1A==",
-          "optional": true,
-          "requires": {
-            "jquery": ">=1.7.1 <4.0.0"
-          }
-        },
-        "bootstrap-sass": {
-          "version": "3.3.7",
-          "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.3.7.tgz",
-          "integrity": "sha1-ZZbHq0D2Y3OTMjqwvIDQZPxjBJg=",
-          "optional": true
-        },
         "bootstrap-select": {
           "version": "1.12.2",
           "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.12.2.tgz",
@@ -7598,170 +7712,25 @@
           "requires": {
             "jquery": ">=1.8"
           }
-        },
-        "bootstrap-slider": {
-          "version": "9.10.0",
-          "resolved": "https://registry.npmjs.org/bootstrap-slider/-/bootstrap-slider-9.10.0.tgz",
-          "integrity": "sha1-EQPWvADPv6jPyaJZmrUYxVZD2j8=",
-          "optional": true
-        },
-        "bootstrap-switch": {
-          "version": "3.3.4",
-          "resolved": "https://registry.npmjs.org/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz",
-          "integrity": "sha1-cOCusqh3wNx2aZHeEI4hcPwpov8=",
-          "optional": true
-        },
-        "bootstrap-touchspin": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmjs.org/bootstrap-touchspin/-/bootstrap-touchspin-3.1.1.tgz",
-          "integrity": "sha1-l3nerHKq9Xfl52K4USx0fIcdlZc=",
-          "optional": true
-        },
-        "c3": {
-          "version": "0.4.23",
-          "resolved": "https://registry.npmjs.org/c3/-/c3-0.4.23.tgz",
-          "integrity": "sha512-fI6hbx1QoATU0gRQtPWsUGWX+ssXhxGH1ogew32KjVmGHFE4WmfmBkh+RkuHDoeCIoGFon7XTpKcwUZpBGW4mQ==",
-          "optional": true,
-          "requires": {
-            "d3": "~3.5.0"
-          }
-        },
-        "d3": {
-          "version": "3.5.17",
-          "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz",
-          "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=",
-          "optional": true
-        },
-        "datatables.net": {
-          "version": "1.10.16",
-          "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.16.tgz",
-          "integrity": "sha1-SwUtEIKCQmG2ju2dInQbcR09JGk=",
-          "requires": {
-            "jquery": ">=1.7"
-          }
-        },
-        "datatables.net-bs": {
-          "version": "1.10.16",
-          "resolved": "https://registry.npmjs.org/datatables.net-bs/-/datatables.net-bs-1.10.16.tgz",
-          "integrity": "sha1-sIVPWzdPcTrj20FWx86op2DD3nY=",
-          "optional": true,
-          "requires": {
-            "datatables.net": "1.10.16",
-            "jquery": ">=1.7"
-          }
-        },
-        "datatables.net-colreorder": {
-          "version": "1.4.1",
-          "resolved": "https://registry.npmjs.org/datatables.net-colreorder/-/datatables.net-colreorder-1.4.1.tgz",
-          "integrity": "sha1-OJ5LGidOIDl5o3GNhsWITQoBZrY=",
-          "optional": true,
-          "requires": {
-            "datatables.net": "^1.10.15",
-            "jquery": ">=1.7"
-          }
-        },
-        "datatables.net-colreorder-bs": {
-          "version": "1.3.3",
-          "resolved": "https://registry.npmjs.org/datatables.net-colreorder-bs/-/datatables.net-colreorder-bs-1.3.3.tgz",
-          "integrity": "sha1-Op3LCN7r612FQHlZHgbkk615OlM=",
-          "optional": true,
-          "requires": {
-            "datatables.net-bs": ">=1.10.9",
-            "datatables.net-colreorder": ">=1.2.0",
-            "jquery": ">=1.7"
-          }
-        },
-        "datatables.net-select": {
-          "version": "1.2.5",
-          "resolved": "https://registry.npmjs.org/datatables.net-select/-/datatables.net-select-1.2.5.tgz",
-          "integrity": "sha1-T3ZGabRk1VdqWcV2wSUKXQaaouk=",
-          "optional": true,
-          "requires": {
-            "datatables.net": "^1.10.15",
-            "jquery": ">=1.7"
-          }
-        },
-        "drmonty-datatables-colvis": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/drmonty-datatables-colvis/-/drmonty-datatables-colvis-1.1.2.tgz",
-          "integrity": "sha1-lque37SGQ8wu3aP4e4iTPN7oEnw=",
-          "optional": true,
-          "requires": {
-            "jquery": ">=1.7.0"
-          }
-        },
-        "eonasdan-bootstrap-datetimepicker": {
-          "version": "4.17.47",
-          "resolved": "https://registry.npmjs.org/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47.tgz",
-          "integrity": "sha1-ekmXAEQGUnbnll79Fvgic1IZ5zU=",
-          "optional": true,
-          "requires": {
-            "bootstrap": "^3.3",
-            "jquery": "^1.8.3 || ^2.0 || ^3.0",
-            "moment": "^2.10",
-            "moment-timezone": "^0.4.0"
-          }
-        },
-        "font-awesome": {
-          "version": "4.7.0",
-          "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
-          "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
-        },
-        "font-awesome-sass": {
-          "version": "4.7.0",
-          "resolved": "https://registry.npmjs.org/font-awesome-sass/-/font-awesome-sass-4.7.0.tgz",
-          "integrity": "sha1-TtppPpFQCc4Asijglk3F7Km8NOE=",
-          "optional": true
-        },
-        "google-code-prettify": {
-          "version": "1.0.5",
-          "resolved": "https://registry.npmjs.org/google-code-prettify/-/google-code-prettify-1.0.5.tgz",
-          "integrity": "sha1-n0d/Ik2/piNy5e+AOn4VdBBAAIQ=",
-          "optional": true
-        },
-        "jquery": {
-          "version": "3.2.1",
-          "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz",
-          "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c="
-        },
-        "jquery-match-height": {
-          "version": "0.7.2",
-          "resolved": "https://registry.npmjs.org/jquery-match-height/-/jquery-match-height-0.7.2.tgz",
-          "integrity": "sha1-+NnzulMU2qsQnPB0CGdL4gS+Xw4=",
-          "optional": true
-        },
-        "moment": {
-          "version": "2.22.2",
-          "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
-          "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
-        },
-        "moment-timezone": {
-          "version": "0.4.1",
-          "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.4.1.tgz",
-          "integrity": "sha1-gfWYw61eIs2teWtn7NjYjQ9bqgY=",
-          "optional": true,
-          "requires": {
-            "moment": ">= 2.6.0"
-          }
-        },
-        "patternfly-bootstrap-combobox": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/patternfly-bootstrap-combobox/-/patternfly-bootstrap-combobox-1.1.7.tgz",
-          "integrity": "sha1-al48zRFwwhs8S0qhaKdBPh3btuE=",
-          "optional": true
-        },
-        "patternfly-bootstrap-treeview": {
-          "version": "2.1.5",
-          "resolved": "https://registry.npmjs.org/patternfly-bootstrap-treeview/-/patternfly-bootstrap-treeview-2.1.5.tgz",
-          "integrity": "sha1-TCnyWC+4ovKPCpKPLw0yTSHWmQ0=",
-          "optional": true,
-          "requires": {
-            "bootstrap": "3.3.x",
-            "jquery": ">= 2.1.x"
-          }
         }
       }
     },
+    "patternfly-bootstrap-combobox": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/patternfly-bootstrap-combobox/-/patternfly-bootstrap-combobox-1.1.7.tgz",
+      "integrity": "sha1-al48zRFwwhs8S0qhaKdBPh3btuE=",
+      "optional": true
+    },
+    "patternfly-bootstrap-treeview": {
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/patternfly-bootstrap-treeview/-/patternfly-bootstrap-treeview-2.1.8.tgz",
+      "integrity": "sha512-Z3v+zJ0AEhMiySyj7qgUs4yGM8afJwjUUWgwSosWI9xpMsyJV+B+I+GzgRoGiukzh14EOl3EiX4qqMBC+nwqXQ==",
+      "optional": true,
+      "requires": {
+        "bootstrap": "3.4.x",
+        "jquery": ">= 2.1.x"
+      }
+    },
     "pbkdf2": {
       "version": "3.0.17",
       "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
@@ -8457,9 +8426,9 @@
       "dev": true
     },
     "set-value": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
-      "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
       "dev": true,
       "requires": {
         "extend-shallow": "^2.0.1",
@@ -9441,38 +9410,15 @@
       "dev": true
     },
     "union-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
-      "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
       "dev": true,
       "requires": {
         "arr-union": "^3.1.0",
         "get-value": "^2.0.6",
         "is-extendable": "^0.1.1",
-        "set-value": "^0.4.3"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "set-value": {
-          "version": "0.4.3",
-          "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
-          "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-extendable": "^0.1.1",
-            "is-plain-object": "^2.0.1",
-            "to-object-path": "^0.3.0"
-          }
-        }
+        "set-value": "^2.0.1"
       }
     },
     "unique-stream": {
diff --git a/console/stand-alone/package.json b/console/stand-alone/package.json
index 9be60cb..6056fd4 100644
--- a/console/stand-alone/package.json
+++ b/console/stand-alone/package.json
@@ -33,18 +33,18 @@
     "angular-ui-grid": "^4.0.8",
     "angular-ui-slider": "^0.4.0",
     "babel-polyfill": "^6.26.0",
-    "bootstrap": "^3.3.7",
+    "bootstrap": "^3.4.1",
     "c3": "^0.4.18",
     "d3": "^3.5.14",
     "d3-geo-projection": "^2.4.1",
     "d3-path": "^1.0.5",
     "d3-queue": "^3.0.7",
     "d3-time-format": "^2.1.1",
-    "jquery": "^3.2.1",
+    "jquery": "^3.4.1",
     "jquery-ui-dist": "^1.12.1",
     "jquery.fancytree": "^2.26.0",
     "notifyjs-browser": "^0.4.2",
-    "patternfly": "^3.30.0",
+    "patternfly": "^3.59.3",
     "rhea": "^0.3.4",
     "topojson-client": "^3.0.0"
   },
diff --git a/console/stand-alone/plugin/html/tmplListTree.html b/console/stand-alone/plugin/html/tmplListTree.html
deleted file mode 100644
index 64797fa..0000000
--- a/console/stand-alone/plugin/html/tmplListTree.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
- 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="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
-    <ng-include src="'listGrid.html'"></ng-include>
-</div>
-<div class="qdr-attributes col-sm-3 col-md-2 col-sm-pull-9 col-md-pull-10 sidebar-pf sidebar-pf-left">
-    <div class="pane-wrapper">
-        <div class="pane-header-wrapper">
-            <div class="tree-header"><select ng-options="node as node.name for node in nodes" ng-model="currentNode" ng-change="selectNode(currentNode)"></select></div>
-            <div ng-hide="largeNetwork" class="expand-collapse">
-                <i class="icon-chevron-down clickable" title="Expand all nodes" ng-click="expandAll()"></i>
-                <i class="icon-chevron-up clickable" title="Unexpand all nodes" ng-click="contractAll()"></i>
-            </div>
-        </div>
-        <div class="pane-viewport">
-            <div class="pane-content">
-                <div class="treeContainer">
-                    <div id="entityTree" onSelect="onTreeSelected" onRoot="onRootReady" hideRoot="true"></div>
-                    <div ng-init="treeReady()"></div>
-                </div>
-            </div>
-        </div>
-        <div class="pane-bar"></div>
-    </div>
-</div>
diff --git a/tests/config-2/B.conf b/tests/config-2/B.conf
index f894ff4..3af5a88 100644
--- a/tests/config-2/B.conf
+++ b/tests/config-2/B.conf
@@ -32,6 +32,12 @@ listener {
     saslMechanisms: ANONYMOUS
 }
 
+listener {
+    host: 0.0.0.0
+    port: 5675
+    http: true
+}
+
 connector {
     role: inter-router
     host: 0.0.0.0


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