diff --git a/tools/build/bazel/osgi_java_library.bzl b/tools/build/bazel/osgi_java_library.bzl
index 6c8a381..c490960 100644
--- a/tools/build/bazel/osgi_java_library.bzl
+++ b/tools/build/bazel/osgi_java_library.bzl
@@ -33,6 +33,9 @@
     else:
         return native.glob([resources_root + "**"])
 
+def _webapp():
+    return native.glob(["src/main/webapp/**"])
+
 # Implementation of the rule to call bnd to make an OSGI jar file
 def _bnd_impl(ctx):
     if (len(ctx.files.source) == 1):
@@ -56,7 +59,10 @@
     import_packages = ctx.attr.import_packages
     exportPackages = "*"
     includeResources = ""
-    webContext = "NONE"
+    web_context = ctx.attr.web_context
+    if web_context == None or web_context == "":
+        web_context = "NONE"
+    web_xml = ctx.attr.web_xml
     dynamicimportPackages = ""
     cp = ""
 
@@ -83,6 +89,11 @@
         progress_message = "Expanding jar file: %s" % jar,
     )
     inputDependencies += [classes]
+    web_xml_root_path = ""
+    if len(web_xml) != 0:
+        web_xml_root = web_xml[0].files.to_list()[0]
+        inputDependencies += [web_xml_root]
+        web_xml_root_path = web_xml_root.path.replace("WEB-INF/web.xml", "")
 
     # call bnd to make the OSGI jar file
     arguments = [
@@ -96,7 +107,8 @@
         import_packages,
         exportPackages,
         includeResources,
-        webContext,
+        web_context,
+        web_xml_root_path,
         dynamicimportPackages,
         classesPath,
     ]
@@ -124,6 +136,8 @@
         "package_name_root": attr.string(),
         "source": attr.label(),
         "import_packages": attr.string(),
+        "web_context": attr.string(),
+        "web_xml": attr.label_list(allow_files = True),
         "_bnd_exe": attr.label(
             executable = True,
             cfg = "host",
@@ -138,8 +152,26 @@
     implementation = _bnd_impl,
 )
 
-def wrapped_osgi_jar(name, jar, deps, version = ONOS_VERSION, package_name_root = "org.onosproject", import_packages = "*", visibility = ["//visibility:private"]):
-    _bnd(name = name, source = jar, deps = deps, version = version, package_name_root = package_name_root, visibility = visibility, import_packages = import_packages)
+def wrapped_osgi_jar(
+        name,
+        jar,
+        deps,
+        version = ONOS_VERSION,
+        package_name_root = "org.onosproject",
+        import_packages = "*",
+        web_context = None,
+        web_xml = None,
+        visibility = ["//visibility:private"]):
+    _bnd(
+        name = name,
+        source = jar,
+        deps = deps,
+        version = version,
+        package_name_root = package_name_root,
+        visibility = visibility,
+        import_packages = import_packages,
+        web_xml = web_xml,
+    )
 
 def osgi_jar_with_tests(
         name = None,
@@ -154,6 +186,11 @@
         test_resources = None,
         visibility = ["//visibility:public"],
         version = ONOS_VERSION,
+        web_context = None,
+        api_title = "",
+        api_version = "",
+        api_description = "",
+        api_package = "",
         import_packages = None):
     if name == None:
         name = "onos-" + native.package_name().replace("/", "-")
@@ -176,8 +213,11 @@
     tests_name = name + "-tests"
     tests_jar_deps = list(depset(deps + test_deps)) + [name]
     all_test_deps = tests_jar_deps + [tests_name]
+    web_xml = _webapp()
 
+    # compile the Java code
     native.java_library(name = name + "-native", srcs = srcs, resources = resources, deps = deps, visibility = visibility)
+
     _bnd(
         name = name,
         source = name + "-native",
@@ -186,6 +226,8 @@
         package_name_root = package_name_root,
         visibility = visibility,
         import_packages = import_packages,
+        web_context = web_context,
+        web_xml = web_xml,
     )
     if test_srcs != []:
         native.java_library(
@@ -214,7 +256,7 @@
         visibility = ["//visibility:public"],
         version = ONOS_VERSION,
         # TODO - implement these for swagger and web.xml
-        web_context = "",
+        web_context = None,
         api_title = "",
         api_version = "",
         api_description = "",
@@ -238,4 +280,5 @@
         visibility = visibility,
         version = version,
         import_packages = import_packages,
+        web_context = web_context,
     )
