Merge branch 'stable-2.14' into stable-2.15

* stable-2.14:
  Bazel: Make build tool chain forward compatible

Change-Id: I31dfcdf07e6c187ba027c6d686134684f072a06a
diff --git a/gerrit_api.bzl b/gerrit_api.bzl
index 545cefc..3536a50 100644
--- a/gerrit_api.bzl
+++ b/gerrit_api.bzl
@@ -5,7 +5,7 @@
 gerrit_api is rule for fetching Gerrit plugin API using Bazel.
 """
 
-VER = "2.14.20"
+VER = "2.15.14"
 
 def gerrit_api():
     bouncycastle_repos()
@@ -13,18 +13,18 @@
     maven_jar(
         name = "gerrit_plugin_api",
         artifact = "com.google.gerrit:gerrit-plugin-api:" + VER,
-        sha1 = "6fe6d56db0f2b37e10d7bdc0d399dc9702b20588",
+        sha1 = "72b062a380b23c9b8186d4d69c5c75cd9495de9c",
     )
     maven_jar(
         name = "gerrit_plugin_gwtui",
         artifact = "com.google.gerrit:gerrit-plugin-gwtui:" + VER,
-        sha1 = "c7f7a452ca4d8ccf5dfea4b09c0c20b718a95c5c",
+        sha1 = "799ad200d4482b78ebabd815de5be62e111cd8be",
         exclude = ["com/google/gwt/*"],
     )
     maven_jar(
         name = "gerrit_acceptance_framework",
         artifact = "com.google.gerrit:gerrit-acceptance-framework:" + VER,
-        sha1 = "cc71d30efffdb307b302333cd11ff232c6d3cc02",
+        sha1 = "bb8c4bc73ab4e0d539cdf0e7fb11707621797cdb",
     )
     native.bind(
         name = "gerrit-plugin-api",
diff --git a/gerrit_api_maven_local.bzl b/gerrit_api_maven_local.bzl
index 8f6a8a2..3769cbb 100644
--- a/gerrit_api_maven_local.bzl
+++ b/gerrit_api_maven_local.bzl
@@ -5,7 +5,7 @@
 gerrit_api is rule for fetching Gerrit plugin API using Bazel.
 """
 
-VER = "2.14.11-SNAPSHOT"
+VER = "2.15.2-SNAPSHOT"
 
 def gerrit_api_maven_local():
     bouncycastle_repos()
diff --git a/gerrit_plugin.bzl b/gerrit_plugin.bzl
index 6ef51c7..687ad6d 100644
--- a/gerrit_plugin.bzl
+++ b/gerrit_plugin.bzl
@@ -32,6 +32,7 @@
         gwt_module = [],
         resources = [],
         manifest_entries = [],
+        dir_name = None,
         target_suffix = "",
         **kwargs):
     gwt_deps = []
@@ -40,6 +41,9 @@
         static_jars = [":%s-static" % name]
         gwt_deps = GWT_PLUGIN_DEPS_NEVERLINK
 
+    if not dir_name:
+        dir_name = name
+
     native.java_library(
         name = name + "__plugin",
         srcs = srcs,
@@ -89,6 +93,13 @@
             jvm_args = GWT_JVM_ARGS,
         )
 
+    native.genrule(
+        name = name + "__gen_stamp_info",
+        stamp = 1,
+        cmd = "cat bazel-out/stable-status.txt | grep \"^STABLE_BUILD_%s_LABEL\" | awk '{print $$NF}' > $@" % dir_name.upper(),
+        outs = ["%s__gen_stamp_info.txt" % name],
+    )
+
     # TODO(davido): Remove manual merge of manifest file when this feature
     # request is implemented: https://github.com/bazelbuild/bazel/issues/2009
     genrule2(
@@ -96,12 +107,13 @@
         stamp = 1,
         srcs = ["%s__non_stamped_deploy.jar" % name],
         cmd = " && ".join([
-            "GEN_VERSION=$$(cat bazel-out/stable-status.txt | grep %s | cut -d ' ' -f 2)" % name.upper(),
+            "GEN_VERSION=$$(cat $(location :%s__gen_stamp_info))" % name,
             "cd $$TMP",
             "unzip -q $$ROOT/$<",
             "echo \"Implementation-Version: $$GEN_VERSION\n$$(cat META-INF/MANIFEST.MF)\" > META-INF/MANIFEST.MF",
             "zip -qr $$ROOT/$@ .",
         ]),
+        tools = [":%s__gen_stamp_info" % name],
         outs = ["%s%s.jar" % (name, target_suffix)],
         visibility = ["//visibility:public"],
     )
diff --git a/tools/eclipse/project.py b/tools/eclipse/project.py
index 2271f8d..d4a978c 100755
--- a/tools/eclipse/project.py
+++ b/tools/eclipse/project.py
@@ -122,7 +122,7 @@
     if m:
       src.add(m.group(1).lstrip('/'))
     else:
-      if p.startswith("external"):
+      if ext is not None and p.startswith("external"):
         p = path.join(ext, p)
         lib.add(p)