Modified Bazel aspect to produce a localFile<TAB>remoteFile catalog for publishing artifacts to Maven repo.

Change-Id: I41640e955f8fb98f6d5522b9b768cc0e6da3f9a6
diff --git a/tools/build/bazel/print_mvn_jar.bzl b/tools/build/bazel/print_mvn_jar.bzl
deleted file mode 100644
index 8e183c22..0000000
--- a/tools/build/bazel/print_mvn_jar.bzl
+++ /dev/null
@@ -1,14 +0,0 @@
-load("//tools/build/bazel:generate_workspace.bzl", "maven_coordinates")
-
-# Example invocation:
-# bazel build $(bazel query 'kind("_bnd rule", //...)') \
-#       --aspects tools/build/bazel/mvn_jar.bzl%print_mvn_jar 2>&1 | \
-#     egrep "DEBUG: .*mvn_jar.bzl" | cut -d\  -f3-
-
-def _impl(target, ctx):
-    [ print (maven_coordinates(target.label), f.path) for f in target.files ]
-    return []
-
-print_mvn_jar = aspect(
-    implementation = _impl,
-)
diff --git a/tools/build/bazel/publish_catalog.bzl b/tools/build/bazel/publish_catalog.bzl
new file mode 100644
index 0000000..9251aab
--- /dev/null
+++ b/tools/build/bazel/publish_catalog.bzl
@@ -0,0 +1,42 @@
+load("//tools/build/bazel:generate_workspace.bzl", "maven_coordinates")
+
+# Example invocation:
+# bazel build $(bazel query 'kind("_bnd rule", //...)') \
+#       --aspects tools/build/bazel/publish_catalog.bzl%publish_catalog 2>&1 | \
+#     egrep "DEBUG: .*mvn_jar.bzl" | cut -d\  -f3-
+
+def _remote(group_id, artifact_id, version, packaging, classifier):
+    p = group_id + "/" + artifact_id + "/" + version + "/" + artifact_id + "-" + version
+    if classifier != None:
+      p += "-" + classifier
+    p += "." + packaging
+    return p
+
+def _impl(target, ctx):
+    coords = maven_coordinates(target.label)
+    mvn = coords.split(":")
+    group_id = mvn[1]
+    artifact_id = mvn[2]
+    version = mvn[len(mvn) - 1]
+    packaging = "jar"
+    classifier = None
+
+    if len(mvn) > 4:
+        packaging = mvn[3]
+
+    c = artifact_id.split("-")
+
+    if len(c) > 1 and c[len(c)-1] in ("javadocs", "sources", "tests", "pom"):
+        classifier = c[len(c)-1]
+        artifact_id = "-".join(c[:len(c)-1])
+        if classifier == "pom":
+            packaging = classifier
+            classifier = None
+
+    for f in target.files:
+        print ("%s\t%s" % (f.path, _remote(group_id, artifact_id, version, packaging, classifier)))
+    return []
+
+publish_catalog = aspect(
+    implementation = _impl,
+)