OSGI artifacts now carry Java compilation information

- java provider information produced for OSGI jar files
- osgi jar rule can now be used as a Java dependency
- osgi artifact is the public artifact for a given rule

Change-Id: I4c0a080537f712a3579b02e82e8da9238cb0ac44
diff --git a/tools/build/bazel/osgi_java_library.bzl b/tools/build/bazel/osgi_java_library.bzl
index 8e4fb56..77d791b 100644
--- a/tools/build/bazel/osgi_java_library.bzl
+++ b/tools/build/bazel/osgi_java_library.bzl
@@ -64,15 +64,13 @@
 
     # determine the dependencies and build the class path
     for dep in ctx.attr.deps:
-        if len(dep.java.outputs.jars) == 0:
-            continue
+        if java_common.provider in dep:
+            file = dep.files.to_list()[0]
 
-        file = dep.java.outputs.jars[0].class_jar
-
-        if cp:
-            cp += ":"
-        cp += file.path
-        inputDependencies = inputDependencies + [file]
+            if cp:
+                cp += ":"
+            cp += file.path
+            inputDependencies = inputDependencies + [file]
 
     # extract the class files for use by bnd
     classes = ctx.actions.declare_file("classes" + ctx.label.name.replace("/", "-"))
@@ -111,6 +109,15 @@
         executable = ctx.executable._bnd_exe,
     )
 
+    deps = []
+    if java_common.provider in ctx.attr.source:
+        deps.append(ctx.attr.source[java_common.provider])
+    deps_provider = java_common.merge(deps)
+    return struct(
+        providers = [deps_provider]
+    )
+
+
 _bnd = rule(
     attrs = {
         "deps": attr.label_list(),
@@ -172,10 +179,10 @@
     tests_jar_deps = list(depset(deps + test_deps)) + [name]
     all_test_deps = tests_jar_deps + [tests_name]
 
-    native.java_library(name = name, srcs = srcs, resources = resources, deps = deps, visibility = visibility)
+    native.java_library(name = name + "-native", srcs = srcs, resources = resources, deps = deps, visibility = visibility)
     _bnd(
-        name = name + "-osgi",
-        source = name,
+        name = name,
+        source = name + "-native",
         deps = deps,
         version = version,
         package_name_root = package_name_root,