diff --git a/tools/build/bazel/BUILD b/tools/build/bazel/BUILD
index d819d63..26590a7 100644
--- a/tools/build/bazel/BUILD
+++ b/tools/build/bazel/BUILD
@@ -26,6 +26,13 @@
     visibility = ["//visibility:public"],
 )
 
+py_binary(
+    name = "dependencies_pom_generator",
+    srcs = ["dependencies_pom_generator.py"],
+    main = "dependencies_pom_generator.py",
+    visibility = ["//visibility:public"],
+)
+
 java_binary(
     name = "onos_yang_compiler",
     main_class = "org.onosproject.yang.compiler.main.YangCompilerMain",
diff --git a/tools/build/bazel/dependencies_pom_generator.py b/tools/build/bazel/dependencies_pom_generator.py
new file mode 100755
index 0000000..f2df0c2
--- /dev/null
+++ b/tools/build/bazel/dependencies_pom_generator.py
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+# Copyright 2019-present Open Networking Foundation
+#
+# Licensed 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.
+import argparse
+from datetime import datetime
+from xml.dom import minidom
+
+
+def resolve(mvn_coord):
+    mvn_pieces = mvn_coord.split(":")
+    if mvn_pieces[0] != "mvn":
+        raise ("Invalid Maven coordinate: %s" % mvn_coord)
+    return dict(
+        groupId=mvn_pieces[1],
+        artifactId=mvn_pieces[2],
+        version=mvn_pieces[-1],
+        name=mvn_coord,
+    )
+
+
+def xml_beautify(data):
+    beautified = '\n'.join([
+        l for l in
+        minidom.parseString(data).toprettyxml(indent=' ' * 4).split('\n')
+        if l.strip()])
+    return beautified
+
+
+def generate_pom(out_file, template_file, provided_deps, test_deps, deps, var_dict):
+    deps = {d: resolve(d) for d in deps}
+
+    dep_mgmt_template = """
+    <dependency>
+        <!-- {name} -->
+        <groupId>{groupId}</groupId>
+        <artifactId>{artifactId}</artifactId>
+        <version>{version}</version>
+    </dependency>"""
+
+    dep_template = """
+    <dependency>
+        <!-- {name} -->
+        <groupId>{groupId}</groupId>
+        <artifactId>{artifactId}</artifactId>
+        <scope>{scope}</scope>
+    </dependency>"""
+
+    mgmt_deps = sorted(deps.keys())
+    provided_deps.sort()
+    test_deps.sort()
+
+    with open(template_file, "r") as f:
+        lines = f.readlines()
+
+    new_lines = [
+        "<!-- Automatically generated on %s -->"
+        % datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+    ]
+    for line in lines:
+        if "<!-- DEPS_MGMT -->" in line:
+            new_lines.extend([
+                dep_mgmt_template.format(**deps[x]) for x in mgmt_deps])
+        elif "<!-- DEPS -->" in line:
+            new_lines.extend([
+                dep_template.format(scope='provided', **deps[x])
+                for x in provided_deps])
+            new_lines.extend([
+                dep_template.format(scope='test', **deps[x])
+                for x in test_deps])
+        else:
+            for old, new in var_dict.items():
+                line = line.replace(old, new)
+            new_lines.append(line)
+
+    with open(out_file, 'w') as f:
+        f.write(xml_beautify("\n".join(new_lines)))
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-o', dest='out_file', type=str, action="store",
+                        required=True, help="Path to output file")
+    parser.add_argument('-p', dest='template_file', type=str, action="store",
+                        required=True, help="Path to pom template file")
+    parser.add_argument('-c', dest='provided_deps', metavar='PROVIDED_DEP',
+                        type=str, nargs='+', default=[],
+                        help='Maven coordinates to list with scope provided')
+    parser.add_argument('-t', dest='test_deps', metavar='TEST_DEP', type=str,
+                        nargs='+', default=[],
+                        help='Maven coordinates to list with scope test')
+    parser.add_argument('-d', dest='deps', metavar='DEP', type=str,
+                        nargs='+', default=[],
+                        help='Maven coordinates to list under <dependencyManagement>')
+    parser.add_argument('-v', dest='vars', metavar='VAR=value', type=str,
+                        nargs='+', default=[],
+                        help='Replace all instances of <!-- VAR --> with the given value')
+    args = parser.parse_args()
+
+    processed_vars = {}
+    for var in args.vars:
+        pieces = var.split('=')
+        if len(pieces) != 2:
+            raise ("Invalid var '%s'" % var)
+        processed_vars["<!-- %s -->" % pieces[0]] = pieces[1]
+
+    generate_pom(
+        out_file=args.out_file,
+        template_file=args.template_file,
+        provided_deps=args.provided_deps,
+        test_deps=args.test_deps,
+        deps=args.deps,
+        var_dict=processed_vars
+    )
diff --git a/tools/build/bazel/generate_workspace.bzl b/tools/build/bazel/generate_workspace.bzl
index d7aa801..c12b346 100644
--- a/tools/build/bazel/generate_workspace.bzl
+++ b/tools/build/bazel/generate_workspace.bzl
@@ -1,4 +1,4 @@
-# ***** This file was auto-generated at Mon, 15 Jul 2019 02:38:53 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Thu, 14 Nov 2019 18:59:32 GMT. Do not edit this file manually. *****
 # ***** Use onos-lib-gen *****
 
 load("//tools/build/bazel:variables.bzl", "ONOS_GROUP_ID", "ONOS_VERSION")
@@ -835,9 +835,9 @@
     if "org_osgi_util_promise" not in native.existing_rules():
         java_import_external(
             name = "org_osgi_util_promise",
-            jar_sha256 = "a679e25688e84e1739831e8716a2cc7acbf8348e22f1136d1988e34472e43756",
+            jar_sha256 = "4f85beccd281cc1a4e735bd266a0dd3db11651d3d0dde001e6bfa55dbdfdee83",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.util.promise/1.1.0/org.osgi.util.promise-1.1.0.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.util.promise/1.1.1/org.osgi.util.promise-1.1.1.jar"],        )
     if "org_osgi_service_component" not in native.existing_rules():
         java_import_external(
             name = "org_osgi_service_component",
@@ -916,24 +916,18 @@
             jar_sha256 = "68c5b7885fa9157813e01482ddbdfa1c63bb6743d98fd5dba8ce83904bfcf7f8",
             licenses = ["notice"],
             jar_urls = ["http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.snmp4j/2.3.4_1/org.apache.servicemix.bundles.snmp4j-2.3.4_1.jar"],        )
-    if "org_osgi_compendium" not in native.existing_rules():
-        java_import_external(
-            name = "org_osgi_compendium",
-            jar_sha256 = "f1ef32cc1530f4e66aac606c24363b627ace4780a7737b045bfb3b908d801bcd",
-            licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.compendium/5.0.0/org.osgi.compendium-5.0.0.jar"],        )
     if "org_osgi_cmpn" not in native.existing_rules():
         java_import_external(
             name = "org_osgi_cmpn",
-            jar_sha256 = "8e6445afe1abb3dcd43c60c8cd6c0f15b052a8f4228812559ba521c5ce91db34",
+            jar_sha256 = "dbe06105a0e3e46bc88425b3d7c682a2d8b6bd055341913b6c37e998c00c9176",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/osgi.cmpn/7.0.0/osgi.cmpn-7.0.0.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/osgi.cmpn/6.0.0/osgi.cmpn-6.0.0.jar"],        )
     if "osgi_core" not in native.existing_rules():
         java_import_external(
             name = "osgi_core",
-            jar_sha256 = "b440c6bff286332afcf5cae067b606962e761c0df00e5fd8a746f0b31265619b",
+            jar_sha256 = "1c1bb435eb34cbf1f743653da38f604d45d53fbc95979053768cd3fc293cb931",
             licenses = ["notice"],
-            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.core/5.0.0/org.osgi.core-5.0.0.jar"],        )
+            jar_urls = ["http://repo1.maven.org/maven2/org/osgi/org.osgi.core/6.0.0/org.osgi.core-6.0.0.jar"],        )
     if "reflectasm" not in native.existing_rules():
         java_import_external(
             name = "reflectasm",
@@ -1449,7 +1443,7 @@
 artifact_map["@objenesis//:objenesis"] = "mvn:org.objenesis:objenesis:jar:2.6"
 artifact_map["@openflowj//:openflowj"] = "mvn:org.onosproject:openflowj:jar:3.2.1.onos"
 artifact_map["@org_osgi_util_function//:org_osgi_util_function"] = "mvn:org.osgi:org.osgi.util.function:jar:1.1.0"
-artifact_map["@org_osgi_util_promise//:org_osgi_util_promise"] = "mvn:org.osgi:org.osgi.util.promise:jar:1.1.0"
+artifact_map["@org_osgi_util_promise//:org_osgi_util_promise"] = "mvn:org.osgi:org.osgi.util.promise:jar:1.1.1"
 artifact_map["@org_osgi_service_component//:org_osgi_service_component"] = "mvn:org.osgi:org.osgi.service.component:jar:1.4.0"
 artifact_map["@org_osgi_service_component_annotations//:org_osgi_service_component_annotations"] = "mvn:org.osgi:org.osgi.service.component.annotations:jar:1.4.0"
 artifact_map["@org_osgi_service_metatype_annotations//:org_osgi_service_metatype_annotations"] = "mvn:org.osgi:org.osgi.service.metatype.annotations:jar:1.4.0"
@@ -1463,9 +1457,8 @@
 artifact_map["@org_apache_karaf_jaas//:org_apache_karaf_jaas"] = "mvn:org.apache.karaf.jaas:org.apache.karaf.jaas.modules:jar:4.2.6"
 artifact_map["@org_apache_karaf_system_core//:org_apache_karaf_system_core"] = "mvn:org.apache.karaf.system:org.apache.karaf.system.core:jar:4.2.6"
 artifact_map["@org_apache_servicemix_bundles_snmp4j//:org_apache_servicemix_bundles_snmp4j"] = "mvn:org.apache.servicemix.bundles:org.apache.servicemix.bundles.snmp4j:jar:2.3.4_1"
-artifact_map["@org_osgi_compendium//:org_osgi_compendium"] = "mvn:org.osgi:org.osgi.compendium:jar:5.0.0"
-artifact_map["@org_osgi_cmpn//:org_osgi_cmpn"] = "mvn:org.osgi:osgi.cmpn:jar:7.0.0"
-artifact_map["@osgi_core//:osgi_core"] = "mvn:org.osgi:org.osgi.core:jar:5.0.0"
+artifact_map["@org_osgi_cmpn//:org_osgi_cmpn"] = "mvn:org.osgi:osgi.cmpn:jar:6.0.0"
+artifact_map["@osgi_core//:osgi_core"] = "mvn:org.osgi:org.osgi.core:jar:6.0.0"
 artifact_map["@reflectasm//:reflectasm"] = "mvn:com.esotericsoftware:reflectasm:jar:1.11.7"
 artifact_map["@remotetea_oncrpc//:remotetea_oncrpc"] = "mvn:org.acplt.remotetea:remotetea-oncrpc:jar:1.1.3"
 artifact_map["@rrd4j//:rrd4j"] = "mvn:org.rrd4j:rrd4j:jar:NON-OSGI:3.1"
diff --git a/tools/build/bazel/pom_file.bzl b/tools/build/bazel/pom_file.bzl
index e3c5689..c291d4c 100644
--- a/tools/build/bazel/pom_file.bzl
+++ b/tools/build/bazel/pom_file.bzl
@@ -14,7 +14,7 @@
 
 load("//tools/build/bazel:generate_workspace.bzl", "maven_coordinates")
 
-def _impl(ctx):
+def _impl_pom_file(ctx):
     arguments = [
         ctx.outputs.pom.path,
         maven_coordinates(ctx.attr.artifact),
@@ -42,6 +42,47 @@
             default = Label("//tools/build/bazel:pom_generator"),
         ),
     },
-    implementation = _impl,
+    implementation = _impl_pom_file,
+    outputs = {"pom": "%{name}.pom"},
+)
+
+def _impl_dependencies_pom(ctx):
+    arguments = [
+        "-o",
+        ctx.outputs.pom.path,
+        "-p",
+        ctx.file.pom_template.path,
+        "-d",
+    ] + [maven_coordinates(d.label) for d in ctx.attr.deps] + [
+        "-c",
+    ] + [maven_coordinates(d.label) for d in ctx.attr.deps_provided] + [
+        "-t",
+    ] + [maven_coordinates(d.label) for d in ctx.attr.deps_test] + [
+        "-v",
+    ] + ctx.attr.vars
+
+    ctx.actions.run(
+        inputs = [ctx.file.pom_template],
+        outputs = [ctx.outputs.pom],
+        progress_message = "Generating dependencies pom for %s" % ctx.attr.name,
+        arguments = arguments,
+        executable = ctx.executable._pom_generator,
+    )
+
+dependencies_pom = rule(
+    attrs = {
+        "pom_template": attr.label(allow_single_file = True),
+        "deps_provided": attr.label_list(),
+        "deps_test": attr.label_list(),
+        "deps": attr.label_list(),
+        "vars": attr.string_list(),
+        "_pom_generator": attr.label(
+            executable = True,
+            cfg = "host",
+            allow_files = True,
+            default = Label("//tools/build/bazel:dependencies_pom_generator"),
+        ),
+    },
+    implementation = _impl_dependencies_pom,
     outputs = {"pom": "%{name}.pom"},
 )
diff --git a/tools/build/bazel/variables.bzl b/tools/build/bazel/variables.bzl
index e6e5333..4e09aa9 100644
--- a/tools/build/bazel/variables.bzl
+++ b/tools/build/bazel/variables.bzl
@@ -4,3 +4,4 @@
 ONOS_ORIGIN = "ONOS Community"
 APP_PREFIX = ONOS_GROUP_ID + "."
 DEFAULT_APP_CATEGORY = "Utility"
+DEFAULT_JAVA_VERSION = "11"
