Update Jenkins to 2.89.2 and all third party dependencies to latest versions.

Change-Id: I6d544ee17a0b0cba734e2e13315bb1feb8d8d16d
diff --git a/3rdparty/bzl.bzl b/3rdparty/bzl.bzl
deleted file mode 100644
index 1028ac9..0000000
--- a/3rdparty/bzl.bzl
+++ /dev/null
@@ -1,15 +0,0 @@
-load(":workspace.bzl", _mvn_deps="maven_dependencies")
-
-def _declare_maven(item):
-  sha = item.get("sha1")
-  kwargs = {
-    "name": item["name"],
-    "artifact": item["artifact"],
-    "repository": item["repository"],
-  }
-  if sha != None:
-    kwargs["sha1"] = sha
-  native.maven_jar(**kwargs)
-
-def maven_dependencies():
-  _mvn_deps(_declare_maven)
diff --git a/3rdparty/jvm/antlr/BUILD b/3rdparty/jvm/antlr/BUILD
index 3b41357..12790f7 100644
--- a/3rdparty/jvm/antlr/BUILD
+++ b/3rdparty/jvm/antlr/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "antlr",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@antlr_antlr//jar",
+        "//external:jar/antlr/antlr"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/aopalliance/BUILD b/3rdparty/jvm/aopalliance/BUILD
index 1365889..9a64f49 100644
--- a/3rdparty/jvm/aopalliance/BUILD
+++ b/3rdparty/jvm/aopalliance/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "aopalliance",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@aopalliance_aopalliance//jar",
+        "//external:jar/aopalliance/aopalliance"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/args4j/BUILD b/3rdparty/jvm/args4j/BUILD
index d15fed2..9c9642d 100644
--- a/3rdparty/jvm/args4j/BUILD
+++ b/3rdparty/jvm/args4j/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "args4j",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@args4j_args4j//jar",
+        "//external:jar/args4j/args4j"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/cloudbees/BUILD b/3rdparty/jvm/com/cloudbees/BUILD
index 4d0b1ae..6c07585 100644
--- a/3rdparty/jvm/com/cloudbees/BUILD
+++ b/3rdparty/jvm/com/cloudbees/BUILD
@@ -1,12 +1,14 @@
 java_library(
     name = "groovy_cps",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_cloudbees_groovy_cps//jar",
+        "//external:jar/com/cloudbees/groovy_cps"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/com/google/guava",
+        "//3rdparty/jvm/com/google/guava:guava"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/github/jnr/BUILD b/3rdparty/jvm/com/github/jnr/BUILD
index d4e24c9..e990224 100644
--- a/3rdparty/jvm/com/github/jnr/BUILD
+++ b/3rdparty/jvm/com/github/jnr/BUILD
@@ -1,62 +1,72 @@
 java_library(
     name = "jffi",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_github_jnr_jffi//jar",
+        "//external:jar/com/github/jnr/jffi"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jnr_constants",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_github_jnr_jnr_constants//jar",
+        "//external:jar/com/github/jnr/jnr_constants"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jnr_ffi",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_github_jnr_jnr_ffi//jar",
+        "//external:jar/com/github/jnr/jnr_ffi"
     ],
     runtime_deps = [
-        ":jffi",
-        ":jnr_x86asm",
-        "//3rdparty/jvm/org/ow2/asm",
+        "//3rdparty/jvm/org/ow2/asm:asm",
         "//3rdparty/jvm/org/ow2/asm:asm_analysis",
         "//3rdparty/jvm/org/ow2/asm:asm_commons",
         "//3rdparty/jvm/org/ow2/asm:asm_tree",
         "//3rdparty/jvm/org/ow2/asm:asm_util",
+        ":jffi",
+        ":jnr_x86asm"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jnr_posix",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_github_jnr_jnr_posix//jar",
+        "//external:jar/com/github/jnr/jnr_posix"
     ],
     runtime_deps = [
         ":jnr_constants",
-        ":jnr_ffi",
+        ":jnr_ffi"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jnr_x86asm",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_github_jnr_jnr_x86asm//jar",
+        "//external:jar/com/github/jnr/jnr_x86asm"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/google/code/findbugs/BUILD b/3rdparty/jvm/com/google/code/findbugs/BUILD
index 4b4db7c..d2f2a35 100644
--- a/3rdparty/jvm/com/google/code/findbugs/BUILD
+++ b/3rdparty/jvm/com/google/code/findbugs/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jsr305",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_google_code_findbugs_jsr305//jar",
+        "//external:jar/com/google/code/findbugs/jsr305"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/google/guava/BUILD b/3rdparty/jvm/com/google/guava/BUILD
index 2750382..3a82699 100644
--- a/3rdparty/jvm/com/google/guava/BUILD
+++ b/3rdparty/jvm/com/google/guava/BUILD
@@ -1,12 +1,14 @@
 java_library(
     name = "guava",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_google_guava_guava//jar",
+        "//external:jar/com/google/guava/guava"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/com/google/code/findbugs:jsr305",
+        "//3rdparty/jvm/com/google/code/findbugs:jsr305"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/google/inject/BUILD b/3rdparty/jvm/com/google/inject/BUILD
index f41cb95..a33c2f5 100644
--- a/3rdparty/jvm/com/google/inject/BUILD
+++ b/3rdparty/jvm/com/google/inject/BUILD
@@ -1,13 +1,15 @@
 java_library(
     name = "guice",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_google_inject_guice//jar",
+        "//external:jar/com/google/inject/guice"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/aopalliance",
-        "//3rdparty/jvm/javax/inject:javax_inject",
+        "//3rdparty/jvm/aopalliance:aopalliance",
+        "//3rdparty/jvm/javax/inject:javax_inject"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/infradna/tool/BUILD b/3rdparty/jvm/com/infradna/tool/BUILD
index ea9459b..63a36c8 100644
--- a/3rdparty/jvm/com/infradna/tool/BUILD
+++ b/3rdparty/jvm/com/infradna/tool/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "bridge_method_annotation",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_infradna_tool_bridge_method_annotation//jar",
+        "//external:jar/com/infradna/tool/bridge_method_annotation"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/jcraft/BUILD b/3rdparty/jvm/com/jcraft/BUILD
index 7b86b21..a7f42b2 100644
--- a/3rdparty/jvm/com/jcraft/BUILD
+++ b/3rdparty/jvm/com/jcraft/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jzlib",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_jcraft_jzlib//jar",
+        "//external:jar/com/jcraft/jzlib"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/lesfurets/BUILD b/3rdparty/jvm/com/lesfurets/BUILD
index e7cb3db..ddbb224 100644
--- a/3rdparty/jvm/com/lesfurets/BUILD
+++ b/3rdparty/jvm/com/lesfurets/BUILD
@@ -1,15 +1,18 @@
 java_library(
     name = "jenkins_pipeline_unit",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_lesfurets_jenkins_pipeline_unit//jar",
+        "//external:jar/com/lesfurets/jenkins_pipeline_unit"
     ],
     runtime_deps = [
         "//3rdparty/jvm/com/cloudbees:groovy_cps",
-        "//3rdparty/jvm/commons_io",
-        "//3rdparty/jvm/org/apache/ivy",
-        "//3rdparty/jvm/org/codehaus/groovy:groovy_all",
+        "//3rdparty/jvm/commons_io:commons_io",
+        "//3rdparty/jvm/org/apache/ivy:ivy",
+        "//3rdparty/jvm/org/assertj:assertj_core",
+        "//3rdparty/jvm/org/codehaus/groovy:groovy_all"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/sun/solaris/BUILD b/3rdparty/jvm/com/sun/solaris/BUILD
index 7c046e1..8ed3a87 100644
--- a/3rdparty/jvm/com/sun/solaris/BUILD
+++ b/3rdparty/jvm/com/sun/solaris/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "embedded_su4j",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_sun_solaris_embedded_su4j//jar",
+        "//external:jar/com/sun/solaris/embedded_su4j"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/com/sun/xml/txw2/BUILD b/3rdparty/jvm/com/sun/xml/txw2/BUILD
index 7a48c28..8dab9eb 100644
--- a/3rdparty/jvm/com/sun/xml/txw2/BUILD
+++ b/3rdparty/jvm/com/sun/xml/txw2/BUILD
@@ -1,13 +1,15 @@
 java_library(
     name = "txw2",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@com_sun_xml_txw2_txw2//jar",
+        "//external:jar/com/sun/xml/txw2/txw2"
     ],
     runtime_deps = [
         "//3rdparty/jvm/javax/xml/stream:stax_api",
-        "//3rdparty/jvm/relaxngDatatype",
+        "//3rdparty/jvm/relaxngDatatype:relaxngDatatype"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_beanutils/BUILD b/3rdparty/jvm/commons_beanutils/BUILD
index 37562e6..2f34d6d 100644
--- a/3rdparty/jvm/commons_beanutils/BUILD
+++ b/3rdparty/jvm/commons_beanutils/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_beanutils",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_beanutils_commons_beanutils//jar",
+        "//external:jar/commons_beanutils/commons_beanutils"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_codec/BUILD b/3rdparty/jvm/commons_codec/BUILD
index 3c22972..3f4d8e7 100644
--- a/3rdparty/jvm/commons_codec/BUILD
+++ b/3rdparty/jvm/commons_codec/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_codec",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_codec_commons_codec//jar",
+        "//external:jar/commons_codec/commons_codec"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_collections/BUILD b/3rdparty/jvm/commons_collections/BUILD
index 1265609..991d96d 100644
--- a/3rdparty/jvm/commons_collections/BUILD
+++ b/3rdparty/jvm/commons_collections/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_collections",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_collections_commons_collections//jar",
+        "//external:jar/commons_collections/commons_collections"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_digester/BUILD b/3rdparty/jvm/commons_digester/BUILD
index a4392e7..80ceab2 100644
--- a/3rdparty/jvm/commons_digester/BUILD
+++ b/3rdparty/jvm/commons_digester/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_digester",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_digester_commons_digester//jar",
+        "//external:jar/commons_digester/commons_digester"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_discovery/BUILD b/3rdparty/jvm/commons_discovery/BUILD
index a0f265b..646a0ab 100644
--- a/3rdparty/jvm/commons_discovery/BUILD
+++ b/3rdparty/jvm/commons_discovery/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_discovery",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_discovery_commons_discovery//jar",
+        "//external:jar/commons_discovery/commons_discovery"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_fileupload/BUILD b/3rdparty/jvm/commons_fileupload/BUILD
index 301b9e6..df5ad9a 100644
--- a/3rdparty/jvm/commons_fileupload/BUILD
+++ b/3rdparty/jvm/commons_fileupload/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_fileupload",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_fileupload_commons_fileupload//jar",
+        "//external:jar/commons_fileupload/commons_fileupload"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_httpclient/BUILD b/3rdparty/jvm/commons_httpclient/BUILD
index 61892f1..b98153b 100644
--- a/3rdparty/jvm/commons_httpclient/BUILD
+++ b/3rdparty/jvm/commons_httpclient/BUILD
@@ -1,9 +1,14 @@
 java_library(
     name = "commons_httpclient",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_httpclient_commons_httpclient//jar",
+        "//external:jar/commons_httpclient/commons_httpclient"
     ],
+    runtime_deps = [
+        "//3rdparty/jvm/junit:junit"
+    ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_io/BUILD b/3rdparty/jvm/commons_io/BUILD
index 3c26fc5..fb480f2 100644
--- a/3rdparty/jvm/commons_io/BUILD
+++ b/3rdparty/jvm/commons_io/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_io",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_io_commons_io//jar",
+        "//external:jar/commons_io/commons_io"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_jelly/BUILD b/3rdparty/jvm/commons_jelly/BUILD
index bc8e199..40c2356 100644
--- a/3rdparty/jvm/commons_jelly/BUILD
+++ b/3rdparty/jvm/commons_jelly/BUILD
@@ -1,19 +1,23 @@
 java_library(
     name = "commons_jelly_tags_fmt",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_jelly_commons_jelly_tags_fmt//jar",
+        "//external:jar/commons_jelly/commons_jelly_tags_fmt"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "commons_jelly_tags_xml",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_jelly_commons_jelly_tags_xml//jar",
+        "//external:jar/commons_jelly/commons_jelly_tags_xml"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/commons_lang/BUILD b/3rdparty/jvm/commons_lang/BUILD
index 01b73c5..5059083 100644
--- a/3rdparty/jvm/commons_lang/BUILD
+++ b/3rdparty/jvm/commons_lang/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_lang",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@commons_lang_commons_lang//jar",
+        "//external:jar/commons_lang/commons_lang"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/javax/annotation/BUILD b/3rdparty/jvm/javax/annotation/BUILD
index 3536d04..ee838a5 100644
--- a/3rdparty/jvm/javax/annotation/BUILD
+++ b/3rdparty/jvm/javax/annotation/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "javax_annotation_api",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@javax_annotation_javax_annotation_api//jar",
+        "//external:jar/javax/annotation/javax_annotation_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/javax/inject/BUILD b/3rdparty/jvm/javax/inject/BUILD
index e9f05b4..5087fcb 100644
--- a/3rdparty/jvm/javax/inject/BUILD
+++ b/3rdparty/jvm/javax/inject/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "javax_inject",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@javax_inject_javax_inject//jar",
+        "//external:jar/javax/inject/javax_inject"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/javax/mail/BUILD b/3rdparty/jvm/javax/mail/BUILD
index e0e0ffb..67abec1 100644
--- a/3rdparty/jvm/javax/mail/BUILD
+++ b/3rdparty/jvm/javax/mail/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "mail",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@javax_mail_mail//jar",
+        "//external:jar/javax/mail/mail"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/javax/servlet/BUILD b/3rdparty/jvm/javax/servlet/BUILD
deleted file mode 100644
index 79fe628..0000000
--- a/3rdparty/jvm/javax/servlet/BUILD
+++ /dev/null
@@ -1,9 +0,0 @@
-java_library(
-    name = "jstl",
-    visibility = [
-        "//visibility:public",
-    ],
-    exports = [
-        "@javax_servlet_jstl//jar",
-    ],
-)
diff --git a/3rdparty/jvm/javax/servlet/jsp/jstl/BUILD b/3rdparty/jvm/javax/servlet/jsp/jstl/BUILD
new file mode 100644
index 0000000..2e204ad
--- /dev/null
+++ b/3rdparty/jvm/javax/servlet/jsp/jstl/BUILD
@@ -0,0 +1,11 @@
+java_library(
+    name = "javax_servlet_jsp_jstl_api",
+    exports = [
+        "//external:jar/javax/servlet/jsp/jstl/javax_servlet_jsp_jstl_api"
+    ],
+    visibility = [
+        "//visibility:public"
+    ]
+)
+
+
diff --git a/3rdparty/jvm/javax/xml/stream/BUILD b/3rdparty/jvm/javax/xml/stream/BUILD
index 4bf2712..70a604f 100644
--- a/3rdparty/jvm/javax/xml/stream/BUILD
+++ b/3rdparty/jvm/javax/xml/stream/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "stax_api",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@javax_xml_stream_stax_api//jar",
+        "//external:jar/javax/xml/stream/stax_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/jaxen/BUILD b/3rdparty/jvm/jaxen/BUILD
index 1c03f58..90612a8 100644
--- a/3rdparty/jvm/jaxen/BUILD
+++ b/3rdparty/jvm/jaxen/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jaxen",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@jaxen_jaxen//jar",
+        "//external:jar/jaxen/jaxen"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/jfree/BUILD b/3rdparty/jvm/jfree/BUILD
index 2683339..c2530cc 100644
--- a/3rdparty/jvm/jfree/BUILD
+++ b/3rdparty/jvm/jfree/BUILD
@@ -1,22 +1,26 @@
 java_library(
     name = "jcommon",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@jfree_jcommon//jar",
+        "//external:jar/jfree/jcommon"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jfreechart",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@jfree_jfreechart//jar",
+        "//external:jar/jfree/jfreechart"
     ],
     runtime_deps = [
-        ":jcommon",
+        ":jcommon"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/jline/BUILD b/3rdparty/jvm/jline/BUILD
index 25c44b4..d85c123 100644
--- a/3rdparty/jvm/jline/BUILD
+++ b/3rdparty/jvm/jline/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jline",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@jline_jline//jar",
+        "//external:jar/jline/jline"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/junit/BUILD b/3rdparty/jvm/junit/BUILD
index 064f036..f52df0d 100644
--- a/3rdparty/jvm/junit/BUILD
+++ b/3rdparty/jvm/junit/BUILD
@@ -1,12 +1,14 @@
 java_library(
     name = "junit",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@junit_junit//jar",
+        "//external:jar/junit/junit"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/hamcrest:hamcrest_core",
+        "//3rdparty/jvm/org/hamcrest:hamcrest_core"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/net/i2p/crypto/BUILD b/3rdparty/jvm/net/i2p/crypto/BUILD
index a6cde72..194aace 100644
--- a/3rdparty/jvm/net/i2p/crypto/BUILD
+++ b/3rdparty/jvm/net/i2p/crypto/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "eddsa",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@net_i2p_crypto_eddsa//jar",
+        "//external:jar/net/i2p/crypto/eddsa"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/net/java/dev/jna/BUILD b/3rdparty/jvm/net/java/dev/jna/BUILD
index d75ee70..65866cc 100644
--- a/3rdparty/jvm/net/java/dev/jna/BUILD
+++ b/3rdparty/jvm/net/java/dev/jna/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jna",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@net_java_dev_jna_jna//jar",
+        "//external:jar/net/java/dev/jna/jna"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/net/java/sezpoz/BUILD b/3rdparty/jvm/net/java/sezpoz/BUILD
index c8574d9..f5d2e32 100644
--- a/3rdparty/jvm/net/java/sezpoz/BUILD
+++ b/3rdparty/jvm/net/java/sezpoz/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "sezpoz",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@net_java_sezpoz_sezpoz//jar",
+        "//external:jar/net/java/sezpoz/sezpoz"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/net/sf/ezmorph/BUILD b/3rdparty/jvm/net/sf/ezmorph/BUILD
index 89a69cd..d205e12 100644
--- a/3rdparty/jvm/net/sf/ezmorph/BUILD
+++ b/3rdparty/jvm/net/sf/ezmorph/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "ezmorph",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@net_sf_ezmorph_ezmorph//jar",
+        "//external:jar/net/sf/ezmorph/ezmorph"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/acegisecurity/BUILD b/3rdparty/jvm/org/acegisecurity/BUILD
index 3fa5e03..4cac13d 100644
--- a/3rdparty/jvm/org/acegisecurity/BUILD
+++ b/3rdparty/jvm/org/acegisecurity/BUILD
@@ -1,13 +1,15 @@
 java_library(
     name = "acegi_security",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_acegisecurity_acegi_security//jar",
+        "//external:jar/org/acegisecurity/acegi_security"
     ],
     runtime_deps = [
         "//3rdparty/jvm/org/springframework:spring_jdbc",
-        "//3rdparty/jvm/oro",
+        "//3rdparty/jvm/oro:oro"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/apache/ant/BUILD b/3rdparty/jvm/org/apache/ant/BUILD
index 7a3e9fe..828dbc4 100644
--- a/3rdparty/jvm/org/apache/ant/BUILD
+++ b/3rdparty/jvm/org/apache/ant/BUILD
@@ -1,22 +1,26 @@
 java_library(
     name = "ant",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_apache_ant_ant//jar",
+        "//external:jar/org/apache/ant/ant"
     ],
     runtime_deps = [
-        ":ant_launcher",
+        ":ant_launcher"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "ant_launcher",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_apache_ant_ant_launcher//jar",
+        "//external:jar/org/apache/ant/ant_launcher"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/apache/commons/BUILD b/3rdparty/jvm/org/apache/commons/BUILD
index 7f6b471..2651080 100644
--- a/3rdparty/jvm/org/apache/commons/BUILD
+++ b/3rdparty/jvm/org/apache/commons/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "commons_compress",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_apache_commons_commons_compress//jar",
+        "//external:jar/org/apache/commons/commons_compress"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/apache/ivy/BUILD b/3rdparty/jvm/org/apache/ivy/BUILD
index e273941..fb331ce 100644
--- a/3rdparty/jvm/org/apache/ivy/BUILD
+++ b/3rdparty/jvm/org/apache/ivy/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "ivy",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_apache_ivy_ivy//jar",
+        "//external:jar/org/apache/ivy/ivy"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/assertj/BUILD b/3rdparty/jvm/org/assertj/BUILD
new file mode 100644
index 0000000..aa74de4
--- /dev/null
+++ b/3rdparty/jvm/org/assertj/BUILD
@@ -0,0 +1,11 @@
+java_library(
+    name = "assertj_core",
+    exports = [
+        "//external:jar/org/assertj/assertj_core"
+    ],
+    visibility = [
+        "//visibility:public"
+    ]
+)
+
+
diff --git a/3rdparty/jvm/org/codehaus/groovy/BUILD b/3rdparty/jvm/org/codehaus/groovy/BUILD
index e0973e4..b3f1501 100644
--- a/3rdparty/jvm/org/codehaus/groovy/BUILD
+++ b/3rdparty/jvm/org/codehaus/groovy/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "groovy_all",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_codehaus_groovy_groovy_all//jar",
+        "//external:jar/org/codehaus/groovy/groovy_all"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/codehaus/woodstox/BUILD b/3rdparty/jvm/org/codehaus/woodstox/BUILD
index cb83e04..ec83d04 100644
--- a/3rdparty/jvm/org/codehaus/woodstox/BUILD
+++ b/3rdparty/jvm/org/codehaus/woodstox/BUILD
@@ -1,12 +1,14 @@
 java_library(
     name = "wstx_asl",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_codehaus_woodstox_wstx_asl//jar",
+        "//external:jar/org/codehaus/woodstox/wstx_asl"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/stax:stax_api",
+        "//3rdparty/jvm/stax:stax_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/connectbot/jbcrypt/BUILD b/3rdparty/jvm/org/connectbot/jbcrypt/BUILD
index 6be57ca..1450ab3 100644
--- a/3rdparty/jvm/org/connectbot/jbcrypt/BUILD
+++ b/3rdparty/jvm/org/connectbot/jbcrypt/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jbcrypt",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_connectbot_jbcrypt_jbcrypt//jar",
+        "//external:jar/org/connectbot/jbcrypt/jbcrypt"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/fusesource/jansi/BUILD b/3rdparty/jvm/org/fusesource/jansi/BUILD
index e7e8f51..5ea1261 100644
--- a/3rdparty/jvm/org/fusesource/jansi/BUILD
+++ b/3rdparty/jvm/org/fusesource/jansi/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jansi",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_fusesource_jansi_jansi//jar",
+        "//external:jar/org/fusesource/jansi/jansi"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/hamcrest/BUILD b/3rdparty/jvm/org/hamcrest/BUILD
index d4f3c4c..23e84f6 100644
--- a/3rdparty/jvm/org/hamcrest/BUILD
+++ b/3rdparty/jvm/org/hamcrest/BUILD
@@ -1,19 +1,23 @@
 java_library(
     name = "hamcrest_all",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_hamcrest_hamcrest_all//jar",
+        "//external:jar/org/hamcrest/hamcrest_all"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "hamcrest_core",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_hamcrest_hamcrest_core//jar",
+        "//external:jar/org/hamcrest/hamcrest_core"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jboss/marshalling/BUILD b/3rdparty/jvm/org/jboss/marshalling/BUILD
index 19104fc..c6e36bc 100644
--- a/3rdparty/jvm/org/jboss/marshalling/BUILD
+++ b/3rdparty/jvm/org/jboss/marshalling/BUILD
@@ -1,22 +1,26 @@
 java_library(
     name = "jboss_marshalling",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jboss_marshalling_jboss_marshalling//jar",
+        "//external:jar/org/jboss/marshalling/jboss_marshalling"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jboss_marshalling_river",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jboss_marshalling_jboss_marshalling_river//jar",
+        "//external:jar/org/jboss/marshalling/jboss_marshalling_river"
     ],
     runtime_deps = [
-        ":jboss_marshalling",
+        ":jboss_marshalling"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jenkins_ci/BUILD b/3rdparty/jvm/org/jenkins_ci/BUILD
index 667ad26..dfe7703 100644
--- a/3rdparty/jvm/org/jenkins_ci/BUILD
+++ b/3rdparty/jvm/org/jenkins_ci/BUILD
@@ -1,129 +1,153 @@
 java_library(
     name = "annotation_indexer",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_annotation_indexer//jar",
+        "//external:jar/org/jenkins_ci/annotation_indexer"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "bytecode_compatibility_transformer",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_bytecode_compatibility_transformer//jar",
+        "//external:jar/org/jenkins_ci/bytecode_compatibility_transformer"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/kohsuke:asm5",
+        "//3rdparty/jvm/org/kohsuke:asm5"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "commons_jelly",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_commons_jelly//jar",
+        "//external:jar/org/jenkins_ci/commons_jelly"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "commons_jexl",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_commons_jexl//jar",
+        "//external:jar/org/jenkins_ci/commons_jexl"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "constant_pool_scanner",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_constant_pool_scanner//jar",
+        "//external:jar/org/jenkins_ci/constant_pool_scanner"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "crypto_util",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_crypto_util//jar",
+        "//external:jar/org/jenkins_ci/crypto_util"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jmdns",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_jmdns//jar",
+        "//external:jar/org/jenkins_ci/jmdns"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "memory_monitor",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_memory_monitor//jar",
+        "//external:jar/org/jenkins_ci/memory_monitor"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "symbol_annotation",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_symbol_annotation//jar",
+        "//external:jar/org/jenkins_ci/symbol_annotation"
     ],
     runtime_deps = [
-        ":annotation_indexer",
+        ":annotation_indexer"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "task_reactor",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_task_reactor//jar",
+        "//external:jar/org/jenkins_ci/task_reactor"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "trilead_ssh2",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_trilead_ssh2//jar",
+        "//external:jar/org/jenkins_ci/trilead_ssh2"
     ],
     runtime_deps = [
         "//3rdparty/jvm/net/i2p/crypto:eddsa",
-        "//3rdparty/jvm/org/connectbot/jbcrypt",
+        "//3rdparty/jvm/org/connectbot/jbcrypt:jbcrypt"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "version_number",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_version_number//jar",
+        "//external:jar/org/jenkins_ci/version_number"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jenkins_ci/dom4j/BUILD b/3rdparty/jvm/org/jenkins_ci/dom4j/BUILD
index d149331..298c9d7 100644
--- a/3rdparty/jvm/org/jenkins_ci/dom4j/BUILD
+++ b/3rdparty/jvm/org/jenkins_ci/dom4j/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "dom4j",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_dom4j_dom4j//jar",
+        "//external:jar/org/jenkins_ci/dom4j/dom4j"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jenkins_ci/main/BUILD b/3rdparty/jvm/org/jenkins_ci/main/BUILD
index e7b6f45..3430ece 100644
--- a/3rdparty/jvm/org/jenkins_ci/main/BUILD
+++ b/3rdparty/jvm/org/jenkins_ci/main/BUILD
@@ -1,56 +1,54 @@
 java_library(
     name = "cli",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_main_cli//jar",
+        "//external:jar/org/jenkins_ci/main/cli"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jenkins_core",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_main_jenkins_core//jar",
+        "//external:jar/org/jenkins_ci/main/jenkins_core"
     ],
     runtime_deps = [
-        ":cli",
-        ":remoting",
-        "//3rdparty/jvm/antlr",
-        "//3rdparty/jvm/args4j",
+        "//3rdparty/jvm/antlr:antlr",
+        "//3rdparty/jvm/args4j:args4j",
         "//3rdparty/jvm/com/github/jnr:jnr_posix",
-        "//3rdparty/jvm/com/google/guava",
+        "//3rdparty/jvm/com/google/guava:guava",
         "//3rdparty/jvm/com/google/inject:guice",
         "//3rdparty/jvm/com/infradna/tool:bridge_method_annotation",
         "//3rdparty/jvm/com/jcraft:jzlib",
         "//3rdparty/jvm/com/sun/solaris:embedded_su4j",
-        "//3rdparty/jvm/com/sun/xml/txw2",
-        "//3rdparty/jvm/commons_beanutils",
-        "//3rdparty/jvm/commons_codec",
-        "//3rdparty/jvm/commons_collections",
-        "//3rdparty/jvm/commons_digester",
-        "//3rdparty/jvm/commons_fileupload",
-        "//3rdparty/jvm/commons_httpclient",
-        "//3rdparty/jvm/commons_io",
+        "//3rdparty/jvm/com/sun/xml/txw2:txw2",
+        "//3rdparty/jvm/commons_beanutils:commons_beanutils",
+        "//3rdparty/jvm/commons_codec:commons_codec",
+        "//3rdparty/jvm/commons_collections:commons_collections",
+        "//3rdparty/jvm/commons_digester:commons_digester",
+        "//3rdparty/jvm/commons_fileupload:commons_fileupload",
+        "//3rdparty/jvm/commons_httpclient:commons_httpclient",
+        "//3rdparty/jvm/commons_io:commons_io",
         "//3rdparty/jvm/commons_jelly:commons_jelly_tags_fmt",
         "//3rdparty/jvm/commons_jelly:commons_jelly_tags_xml",
-        "//3rdparty/jvm/commons_lang",
-        "//3rdparty/jvm/javax/mail",
-        "//3rdparty/jvm/javax/servlet:jstl",
-        "//3rdparty/jvm/jaxen",
+        "//3rdparty/jvm/commons_lang:commons_lang",
+        "//3rdparty/jvm/javax/mail:mail",
+        "//3rdparty/jvm/javax/servlet/jsp/jstl:javax_servlet_jsp_jstl_api",
+        "//3rdparty/jvm/jaxen:jaxen",
         "//3rdparty/jvm/jfree:jfreechart",
-        "//3rdparty/jvm/jline",
-        "//3rdparty/jvm/net/java/dev/jna",
-        "//3rdparty/jvm/net/java/sezpoz",
+        "//3rdparty/jvm/jline:jline",
+        "//3rdparty/jvm/net/java/dev/jna:jna",
+        "//3rdparty/jvm/net/java/sezpoz:sezpoz",
         "//3rdparty/jvm/org/acegisecurity:acegi_security",
-        "//3rdparty/jvm/org/apache/ant",
+        "//3rdparty/jvm/org/apache/ant:ant",
         "//3rdparty/jvm/org/apache/commons:commons_compress",
         "//3rdparty/jvm/org/codehaus/groovy:groovy_all",
         "//3rdparty/jvm/org/codehaus/woodstox:wstx_asl",
-        "//3rdparty/jvm/org/fusesource/jansi",
+        "//3rdparty/jvm/org/fusesource/jansi:jansi",
+        "//3rdparty/jvm/org/jenkins_ci/plugins/icon_shim:icon_set",
         "//3rdparty/jvm/org/jenkins_ci:annotation_indexer",
         "//3rdparty/jvm/org/jenkins_ci:bytecode_compatibility_transformer",
         "//3rdparty/jvm/org/jenkins_ci:commons_jexl",
@@ -61,21 +59,14 @@
         "//3rdparty/jvm/org/jenkins_ci:task_reactor",
         "//3rdparty/jvm/org/jenkins_ci:trilead_ssh2",
         "//3rdparty/jvm/org/jenkins_ci:version_number",
-        "//3rdparty/jvm/org/jenkins_ci/plugins/icon_shim:icon_set",
         "//3rdparty/jvm/org/jruby/ext/posix:jna_posix",
         "//3rdparty/jvm/org/jvnet/hudson:activation",
         "//3rdparty/jvm/org/jvnet/hudson:commons_jelly_tags_define",
         "//3rdparty/jvm/org/jvnet/hudson:jtidy",
         "//3rdparty/jvm/org/jvnet/hudson:xstream",
-        "//3rdparty/jvm/org/jvnet/localizer",
-        "//3rdparty/jvm/org/jvnet/robust_http_client",
-        "//3rdparty/jvm/org/jvnet/winp",
-        "//3rdparty/jvm/org/kohsuke:access_modifier_annotation",
-        "//3rdparty/jvm/org/kohsuke:akuma",
-        "//3rdparty/jvm/org/kohsuke:libpam4j",
-        "//3rdparty/jvm/org/kohsuke:libzfs",
-        "//3rdparty/jvm/org/kohsuke:trilead_putty_extension",
-        "//3rdparty/jvm/org/kohsuke:windows_package_checker",
+        "//3rdparty/jvm/org/jvnet/localizer:localizer",
+        "//3rdparty/jvm/org/jvnet/robust_http_client:robust_http_client",
+        "//3rdparty/jvm/org/jvnet/winp:winp",
         "//3rdparty/jvm/org/kohsuke/jinterop:j_interop",
         "//3rdparty/jvm/org/kohsuke/stapler:json_lib",
         "//3rdparty/jvm/org/kohsuke/stapler:stapler_adjunct_codemirror",
@@ -83,25 +74,39 @@
         "//3rdparty/jvm/org/kohsuke/stapler:stapler_adjunct_zeroclipboard",
         "//3rdparty/jvm/org/kohsuke/stapler:stapler_groovy",
         "//3rdparty/jvm/org/kohsuke/stapler:stapler_jrebel",
-        "//3rdparty/jvm/org/mindrot:jbcrypt",
+        "//3rdparty/jvm/org/kohsuke:access_modifier_annotation",
+        "//3rdparty/jvm/org/kohsuke:akuma",
+        "//3rdparty/jvm/org/kohsuke:libpam4j",
+        "//3rdparty/jvm/org/kohsuke:libzfs",
+        "//3rdparty/jvm/org/kohsuke:trilead_putty_extension",
+        "//3rdparty/jvm/org/kohsuke:windows_package_checker",
         "//3rdparty/jvm/org/slf4j:jcl_over_slf4j",
         "//3rdparty/jvm/org/slf4j:log4j_over_slf4j",
         "//3rdparty/jvm/org/springframework:spring_aop",
         "//3rdparty/jvm/org/springframework:spring_core",
         "//3rdparty/jvm/org/springframework:spring_webmvc",
-        "//3rdparty/jvm/xpp3",
+        "//3rdparty/jvm/xpp3:xpp3",
+        ":cli",
+        ":remoting"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "remoting",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_main_remoting//jar",
+        "//external:jar/org/jenkins_ci/main/remoting"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/jenkins_ci:constant_pool_scanner",
+        "//3rdparty/jvm/org/jenkins_ci:constant_pool_scanner"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jenkins_ci/plugins/BUILD b/3rdparty/jvm/org/jenkins_ci/plugins/BUILD
index a0924f9..0ca47b9 100644
--- a/3rdparty/jvm/org/jenkins_ci/plugins/BUILD
+++ b/3rdparty/jvm/org/jenkins_ci/plugins/BUILD
@@ -1,25 +1,41 @@
 java_library(
-    name = "script_security",
-    visibility = [
-        "//visibility:public",
-    ],
+    name = "scm_api",
     exports = [
-        "@org_jenkins_ci_plugins_script_security//jar",
+        "//external:jar/org/jenkins_ci/plugins/scm_api"
+    ],
+    visibility = [
+        "//visibility:public"
+    ]
+)
+
+
+
+java_library(
+    name = "script_security",
+    exports = [
+        "//external:jar/org/jenkins_ci/plugins/script_security"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/kohsuke:groovy_sandbox",
+        "//3rdparty/jvm/org/kohsuke:groovy_sandbox"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "structs",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_plugins_structs//jar",
+        "//external:jar/org/jenkins_ci/plugins/structs"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/jenkins_ci:symbol_annotation",
+        "//3rdparty/jvm/org/jenkins_ci:symbol_annotation"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jenkins_ci/plugins/icon_shim/BUILD b/3rdparty/jvm/org/jenkins_ci/plugins/icon_shim/BUILD
index 3dfc7f1..32509d1 100644
--- a/3rdparty/jvm/org/jenkins_ci/plugins/icon_shim/BUILD
+++ b/3rdparty/jvm/org/jenkins_ci/plugins/icon_shim/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "icon_set",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_plugins_icon_shim_icon_set//jar",
+        "//external:jar/org/jenkins_ci/plugins/icon_shim/icon_set"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jenkins_ci/plugins/workflow/BUILD b/3rdparty/jvm/org/jenkins_ci/plugins/workflow/BUILD
index af9c930..e7fc757 100644
--- a/3rdparty/jvm/org/jenkins_ci/plugins/workflow/BUILD
+++ b/3rdparty/jvm/org/jenkins_ci/plugins/workflow/BUILD
@@ -1,38 +1,45 @@
 java_library(
     name = "workflow_api",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_plugins_workflow_workflow_api//jar",
+        "//external:jar/org/jenkins_ci/plugins/workflow/workflow_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "workflow_step_api",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_plugins_workflow_workflow_step_api//jar",
+        "//external:jar/org/jenkins_ci/plugins/workflow/workflow_step_api"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/jenkins_ci/plugins:structs",
+        "//3rdparty/jvm/org/jenkins_ci/plugins:structs"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "workflow_support",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jenkins_ci_plugins_workflow_workflow_support//jar",
+        "//external:jar/org/jenkins_ci/plugins/workflow/workflow_support"
     ],
     runtime_deps = [
-        ":workflow_api",
-        ":workflow_step_api",
         "//3rdparty/jvm/org/jboss/marshalling:jboss_marshalling_river",
+        "//3rdparty/jvm/org/jenkins_ci/plugins:scm_api",
         "//3rdparty/jvm/org/jenkins_ci/plugins:script_security",
+        ":workflow_api",
+        ":workflow_step_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jruby/ext/posix/BUILD b/3rdparty/jvm/org/jruby/ext/posix/BUILD
index fa9bd50..be75afd 100644
--- a/3rdparty/jvm/org/jruby/ext/posix/BUILD
+++ b/3rdparty/jvm/org/jruby/ext/posix/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jna_posix",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jruby_ext_posix_jna_posix//jar",
+        "//external:jar/org/jruby/ext/posix/jna_posix"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jvnet/BUILD b/3rdparty/jvm/org/jvnet/BUILD
index 2056b4a..a3bc8e3 100644
--- a/3rdparty/jvm/org/jvnet/BUILD
+++ b/3rdparty/jvm/org/jvnet/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "tiger_types",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_tiger_types//jar",
+        "//external:jar/org/jvnet/tiger_types"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jvnet/hudson/BUILD b/3rdparty/jvm/org/jvnet/hudson/BUILD
index 11f3e87..6dcf0aa 100644
--- a/3rdparty/jvm/org/jvnet/hudson/BUILD
+++ b/3rdparty/jvm/org/jvnet/hudson/BUILD
@@ -1,39 +1,47 @@
 java_library(
     name = "activation",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_hudson_activation//jar",
+        "//external:jar/org/jvnet/hudson/activation"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "commons_jelly_tags_define",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_hudson_commons_jelly_tags_define//jar",
+        "//external:jar/org/jvnet/hudson/commons_jelly_tags_define"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "jtidy",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_hudson_jtidy//jar",
+        "//external:jar/org/jvnet/hudson/jtidy"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "xstream",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_hudson_xstream//jar",
+        "//external:jar/org/jvnet/hudson/xstream"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jvnet/localizer/BUILD b/3rdparty/jvm/org/jvnet/localizer/BUILD
index 7dd41cd..c9bc539 100644
--- a/3rdparty/jvm/org/jvnet/localizer/BUILD
+++ b/3rdparty/jvm/org/jvnet/localizer/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "localizer",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_localizer_localizer//jar",
+        "//external:jar/org/jvnet/localizer/localizer"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jvnet/robust_http_client/BUILD b/3rdparty/jvm/org/jvnet/robust_http_client/BUILD
index bf4cc17..0272291 100644
--- a/3rdparty/jvm/org/jvnet/robust_http_client/BUILD
+++ b/3rdparty/jvm/org/jvnet/robust_http_client/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "robust_http_client",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_robust_http_client_robust_http_client//jar",
+        "//external:jar/org/jvnet/robust_http_client/robust_http_client"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/jvnet/winp/BUILD b/3rdparty/jvm/org/jvnet/winp/BUILD
index 83f5061..717525e 100644
--- a/3rdparty/jvm/org/jvnet/winp/BUILD
+++ b/3rdparty/jvm/org/jvnet/winp/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "winp",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_jvnet_winp_winp//jar",
+        "//external:jar/org/jvnet/winp/winp"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/kohsuke/BUILD b/3rdparty/jvm/org/kohsuke/BUILD
index 3c6ab91..2567be8 100644
--- a/3rdparty/jvm/org/kohsuke/BUILD
+++ b/3rdparty/jvm/org/kohsuke/BUILD
@@ -1,79 +1,95 @@
 java_library(
     name = "access_modifier_annotation",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_access_modifier_annotation//jar",
+        "//external:jar/org/kohsuke/access_modifier_annotation"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "akuma",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_akuma//jar",
+        "//external:jar/org/kohsuke/akuma"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "asm5",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_asm5//jar",
+        "//external:jar/org/kohsuke/asm5"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "groovy_sandbox",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_groovy_sandbox//jar",
+        "//external:jar/org/kohsuke/groovy_sandbox"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "libpam4j",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_libpam4j//jar",
+        "//external:jar/org/kohsuke/libpam4j"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "libzfs",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_libzfs//jar",
+        "//external:jar/org/kohsuke/libzfs"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "trilead_putty_extension",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_trilead_putty_extension//jar",
+        "//external:jar/org/kohsuke/trilead_putty_extension"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "windows_package_checker",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_windows_package_checker//jar",
+        "//external:jar/org/kohsuke/windows_package_checker"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/kohsuke/jinterop/BUILD b/3rdparty/jvm/org/kohsuke/jinterop/BUILD
index 9bad078..c1bf531 100644
--- a/3rdparty/jvm/org/kohsuke/jinterop/BUILD
+++ b/3rdparty/jvm/org/kohsuke/jinterop/BUILD
@@ -1,25 +1,29 @@
 java_library(
     name = "j_interop",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_jinterop_j_interop//jar",
+        "//external:jar/org/kohsuke/jinterop/j_interop"
     ],
     runtime_deps = [
-        ":j_interopdeps",
+        ":j_interopdeps"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "j_interopdeps",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_jinterop_j_interopdeps//jar",
+        "//external:jar/org/kohsuke/jinterop/j_interopdeps"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/samba/jcifs",
+        "//3rdparty/jvm/org/samba/jcifs:jcifs"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/kohsuke/stapler/BUILD b/3rdparty/jvm/org/kohsuke/stapler/BUILD
index a30529b..2ff079d 100644
--- a/3rdparty/jvm/org/kohsuke/stapler/BUILD
+++ b/3rdparty/jvm/org/kohsuke/stapler/BUILD
@@ -1,97 +1,114 @@
 java_library(
     name = "json_lib",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_json_lib//jar",
+        "//external:jar/org/kohsuke/stapler/json_lib"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/net/sf/ezmorph",
+        "//3rdparty/jvm/net/sf/ezmorph:ezmorph"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler//jar",
+        "//external:jar/org/kohsuke/stapler/stapler"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/commons_discovery",
+        "//3rdparty/jvm/com/google/code/findbugs:jsr305",
+        "//3rdparty/jvm/commons_discovery:commons_discovery",
         "//3rdparty/jvm/javax/annotation:javax_annotation_api",
-        "//3rdparty/jvm/org/jvnet:tiger_types",
+        "//3rdparty/jvm/org/jvnet:tiger_types"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler_adjunct_codemirror",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler_adjunct_codemirror//jar",
+        "//external:jar/org/kohsuke/stapler/stapler_adjunct_codemirror"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler_adjunct_timeline",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler_adjunct_timeline//jar",
+        "//external:jar/org/kohsuke/stapler/stapler_adjunct_timeline"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler_adjunct_zeroclipboard",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler_adjunct_zeroclipboard//jar",
+        "//external:jar/org/kohsuke/stapler/stapler_adjunct_zeroclipboard"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler_groovy",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler_groovy//jar",
+        "//external:jar/org/kohsuke/stapler/stapler_groovy"
     ],
     runtime_deps = [
-        ":stapler_jelly",
+        ":stapler_jelly"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler_jelly",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler_jelly//jar",
+        "//external:jar/org/kohsuke/stapler/stapler_jelly"
     ],
     runtime_deps = [
-        "//3rdparty/jvm/org/jenkins_ci:commons_jelly",
-        "//3rdparty/jvm/org/jenkins_ci/dom4j",
+        "//3rdparty/jvm/org/jenkins_ci/dom4j:dom4j",
+        "//3rdparty/jvm/org/jenkins_ci:commons_jelly"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "stapler_jrebel",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_kohsuke_stapler_stapler_jrebel//jar",
+        "//external:jar/org/kohsuke/stapler/stapler_jrebel"
     ],
     runtime_deps = [
-        ":stapler",
+        ":stapler"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/mindrot/BUILD b/3rdparty/jvm/org/mindrot/BUILD
deleted file mode 100644
index f947c2a..0000000
--- a/3rdparty/jvm/org/mindrot/BUILD
+++ /dev/null
@@ -1,9 +0,0 @@
-java_library(
-    name = "jbcrypt",
-    visibility = [
-        "//visibility:public",
-    ],
-    exports = [
-        "@org_mindrot_jbcrypt//jar",
-    ],
-)
diff --git a/3rdparty/jvm/org/ow2/asm/BUILD b/3rdparty/jvm/org/ow2/asm/BUILD
index a310a72..80c996d 100644
--- a/3rdparty/jvm/org/ow2/asm/BUILD
+++ b/3rdparty/jvm/org/ow2/asm/BUILD
@@ -1,49 +1,59 @@
 java_library(
     name = "asm",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_ow2_asm_asm//jar",
+        "//external:jar/org/ow2/asm/asm"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "asm_analysis",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_ow2_asm_asm_analysis//jar",
+        "//external:jar/org/ow2/asm/asm_analysis"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "asm_commons",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_ow2_asm_asm_commons//jar",
+        "//external:jar/org/ow2/asm/asm_commons"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "asm_tree",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_ow2_asm_asm_tree//jar",
+        "//external:jar/org/ow2/asm/asm_tree"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "asm_util",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_ow2_asm_asm_util//jar",
+        "//external:jar/org/ow2/asm/asm_util"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/samba/jcifs/BUILD b/3rdparty/jvm/org/samba/jcifs/BUILD
index 7351d67..d1a03bb 100644
--- a/3rdparty/jvm/org/samba/jcifs/BUILD
+++ b/3rdparty/jvm/org/samba/jcifs/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "jcifs",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_samba_jcifs_jcifs//jar",
+        "//external:jar/org/samba/jcifs/jcifs"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/slf4j/BUILD b/3rdparty/jvm/org/slf4j/BUILD
index 693193b..e520ae3 100644
--- a/3rdparty/jvm/org/slf4j/BUILD
+++ b/3rdparty/jvm/org/slf4j/BUILD
@@ -1,32 +1,38 @@
 java_library(
     name = "jcl_over_slf4j",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_slf4j_jcl_over_slf4j//jar",
+        "//external:jar/org/slf4j/jcl_over_slf4j"
     ],
     runtime_deps = [
-        ":slf4j_api",
+        ":slf4j_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "log4j_over_slf4j",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_slf4j_log4j_over_slf4j//jar",
+        "//external:jar/org/slf4j/log4j_over_slf4j"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "slf4j_api",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_slf4j_slf4j_api//jar",
+        "//external:jar/org/slf4j/slf4j_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/org/springframework/BUILD b/3rdparty/jvm/org/springframework/BUILD
index 311fc51..2f0b65f 100644
--- a/3rdparty/jvm/org/springframework/BUILD
+++ b/3rdparty/jvm/org/springframework/BUILD
@@ -1,98 +1,116 @@
 java_library(
     name = "spring_aop",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_aop//jar",
+        "//external:jar/org/springframework/spring_aop"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_beans",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_beans//jar",
+        "//external:jar/org/springframework/spring_beans"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_context",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_context//jar",
+        "//external:jar/org/springframework/spring_context"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_context_support",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_context_support//jar",
+        "//external:jar/org/springframework/spring_context_support"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_core",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_core//jar",
+        "//external:jar/org/springframework/spring_core"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_dao",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_dao//jar",
+        "//external:jar/org/springframework/spring_dao"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_jdbc",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_jdbc//jar",
+        "//external:jar/org/springframework/spring_jdbc"
     ],
     runtime_deps = [
-        ":spring_dao",
+        ":spring_dao"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_web",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_web//jar",
+        "//external:jar/org/springframework/spring_web"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
 
+
+
 java_library(
     name = "spring_webmvc",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@org_springframework_spring_webmvc//jar",
+        "//external:jar/org/springframework/spring_webmvc"
     ],
     runtime_deps = [
         ":spring_beans",
         ":spring_context",
         ":spring_context_support",
-        ":spring_web",
+        ":spring_web"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/oro/BUILD b/3rdparty/jvm/oro/BUILD
index 87d0a7e..c92cce4 100644
--- a/3rdparty/jvm/oro/BUILD
+++ b/3rdparty/jvm/oro/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "oro",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@oro_oro//jar",
+        "//external:jar/oro/oro"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/relaxngDatatype/BUILD b/3rdparty/jvm/relaxngDatatype/BUILD
index f60b0bd..1871f43 100644
--- a/3rdparty/jvm/relaxngDatatype/BUILD
+++ b/3rdparty/jvm/relaxngDatatype/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "relaxngDatatype",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@relaxngDatatype_relaxngDatatype//jar",
+        "//external:jar/relaxngDatatype/relaxngDatatype"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/stax/BUILD b/3rdparty/jvm/stax/BUILD
index 5118cf8..4a3a64f 100644
--- a/3rdparty/jvm/stax/BUILD
+++ b/3rdparty/jvm/stax/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "stax_api",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@stax_stax_api//jar",
+        "//external:jar/stax/stax_api"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/jvm/xpp3/BUILD b/3rdparty/jvm/xpp3/BUILD
index 0bdb92a..3c6437d 100644
--- a/3rdparty/jvm/xpp3/BUILD
+++ b/3rdparty/jvm/xpp3/BUILD
@@ -1,9 +1,11 @@
 java_library(
     name = "xpp3",
-    visibility = [
-        "//visibility:public",
-    ],
     exports = [
-        "@xpp3_xpp3//jar",
+        "//external:jar/xpp3/xpp3"
     ],
+    visibility = [
+        "//visibility:public"
+    ]
 )
+
+
diff --git a/3rdparty/workspace.bzl b/3rdparty/workspace.bzl
index 7711ecd..76d7635 100644
--- a/3rdparty/workspace.bzl
+++ b/3rdparty/workspace.bzl
@@ -1,4 +1,16 @@
-def maven_dependencies(callback):
+def declare_maven(hash):
+    native.maven_jar(
+        name = hash["name"],
+        artifact = hash["artifact"],
+        sha1 = hash["sha1"],
+        repository = hash["repository"]
+    )
+    native.bind(
+        name = hash["bind"],
+        actual = hash["actual"]
+    )
+
+def maven_dependencies(callback = declare_maven):
     callback({"artifact": "antlr:antlr:2.7.6", "lang": "java", "sha1": "cf4f67dae5df4f9932ae7810f4548ef3e14dd35e", "repository": "https://repo.maven.apache.org/maven2/", "name": "antlr_antlr", "actual": "@antlr_antlr//jar", "bind": "jar/antlr/antlr"})
     callback({"artifact": "aopalliance:aopalliance:1.0", "lang": "java", "sha1": "0235ba8b489512805ac13a8f9ea77a1ca5ebe3e8", "repository": "https://repo.maven.apache.org/maven2/", "name": "aopalliance_aopalliance", "actual": "@aopalliance_aopalliance//jar", "bind": "jar/aopalliance/aopalliance"})
     callback({"artifact": "args4j:args4j:2.0.31", "lang": "java", "sha1": "6b870d81551ce93c5c776c3046299db8ad6c39d2", "repository": "https://repo.maven.apache.org/maven2/", "name": "args4j_args4j", "actual": "@args4j_args4j//jar", "bind": "jar/args4j/args4j"})
@@ -8,21 +20,22 @@
     callback({"artifact": "com.github.jnr:jnr-ffi:2.1.4", "lang": "java", "sha1": "0a63bbd4af5cee55d820ef40dc5347d45765b788", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_github_jnr_jnr_ffi", "actual": "@com_github_jnr_jnr_ffi//jar", "bind": "jar/com/github/jnr/jnr_ffi"})
     callback({"artifact": "com.github.jnr:jnr-posix:3.0.41", "lang": "java", "sha1": "36eff018149e53ed814a340ddb7de73ceb66bf96", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_github_jnr_jnr_posix", "actual": "@com_github_jnr_jnr_posix//jar", "bind": "jar/com/github/jnr/jnr_posix"})
     callback({"artifact": "com.github.jnr:jnr-x86asm:1.0.2", "lang": "java", "sha1": "006936bbd6c5b235665d87bd450f5e13b52d4b48", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_github_jnr_jnr_x86asm", "actual": "@com_github_jnr_jnr_x86asm//jar", "bind": "jar/com/github/jnr/jnr_x86asm"})
-    callback({"artifact": "com.google.code.findbugs:jsr305:1.3.9", "lang": "java", "sha1": "40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_google_code_findbugs_jsr305", "actual": "@com_google_code_findbugs_jsr305//jar", "bind": "jar/com/google/code/findbugs/jsr305"})
+# duplicates in com.google.code.findbugs:jsr305 promoted to 2.0.1. Versions: 1.3.9 2.0.1
+    callback({"artifact": "com.google.code.findbugs:jsr305:2.0.1", "lang": "java", "sha1": "516c03b21d50a644d538de0f0369c620989cd8f0", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_google_code_findbugs_jsr305", "actual": "@com_google_code_findbugs_jsr305//jar", "bind": "jar/com/google/code/findbugs/jsr305"})
     callback({"artifact": "com.google.guava:guava:11.0.1", "lang": "java", "sha1": "57b40a943725d43610c898ac0169adf1b2d55742", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_google_guava_guava", "actual": "@com_google_guava_guava//jar", "bind": "jar/com/google/guava/guava"})
     callback({"artifact": "com.google.inject:guice:4.0", "lang": "java", "sha1": "0f990a43d3725781b6db7cd0acf0a8b62dfd1649", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_google_inject_guice", "actual": "@com_google_inject_guice//jar", "bind": "jar/com/google/inject/guice"})
     callback({"artifact": "com.infradna.tool:bridge-method-annotation:1.13", "lang": "java", "sha1": "18cdce50cde6f54ee5390d0907384f72183ff0fe", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_infradna_tool_bridge_method_annotation", "actual": "@com_infradna_tool_bridge_method_annotation//jar", "bind": "jar/com/infradna/tool/bridge_method_annotation"})
     callback({"artifact": "com.jcraft:jzlib:1.1.3-kohsuke-1", "lang": "java", "sha1": "af5d27e1de29df05db95da5d76b546d075bc1bc5", "repository": "http://repo.jenkins-ci.org/public/", "name": "com_jcraft_jzlib", "actual": "@com_jcraft_jzlib//jar", "bind": "jar/com/jcraft/jzlib"})
-    callback({"artifact": "com.lesfurets:jenkins-pipeline-unit:1.0", "lang": "java", "sha1": "3aa90c606c541e88c268df3cc9e87306af69b29f", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_lesfurets_jenkins_pipeline_unit", "actual": "@com_lesfurets_jenkins_pipeline_unit//jar", "bind": "jar/com/lesfurets/jenkins_pipeline_unit"})
+    callback({"artifact": "com.lesfurets:jenkins-pipeline-unit:1.1", "lang": "java", "sha1": "afb0fd02143e5d5127ff6187b4403a3cf0b890a0", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_lesfurets_jenkins_pipeline_unit", "actual": "@com_lesfurets_jenkins_pipeline_unit//jar", "bind": "jar/com/lesfurets/jenkins_pipeline_unit"})
     callback({"artifact": "com.sun.solaris:embedded_su4j:1.1", "lang": "java", "sha1": "9404130cc4e60670429f1ab8dbf94d669012725d", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_sun_solaris_embedded_su4j", "actual": "@com_sun_solaris_embedded_su4j//jar", "bind": "jar/com/sun/solaris/embedded_su4j"})
     callback({"artifact": "com.sun.xml.txw2:txw2:20110809", "lang": "java", "sha1": "46afa3f3c468680875adb8f2a26086a126c89902", "repository": "https://repo.maven.apache.org/maven2/", "name": "com_sun_xml_txw2_txw2", "actual": "@com_sun_xml_txw2_txw2//jar", "bind": "jar/com/sun/xml/txw2/txw2"})
     callback({"artifact": "commons-beanutils:commons-beanutils:1.8.3", "lang": "java", "sha1": "686ef3410bcf4ab8ce7fd0b899e832aaba5facf7", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_beanutils_commons_beanutils", "actual": "@commons_beanutils_commons_beanutils//jar", "bind": "jar/commons_beanutils/commons_beanutils"})
-    callback({"artifact": "commons-codec:commons-codec:1.8", "lang": "java", "sha1": "af3be3f74d25fc5163b54f56a0d394b462dafafd", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_codec_commons_codec", "actual": "@commons_codec_commons_codec//jar", "bind": "jar/commons_codec/commons_codec"})
+    callback({"artifact": "commons-codec:commons-codec:1.9", "lang": "java", "sha1": "9ce04e34240f674bc72680f8b843b1457383161a", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_codec_commons_codec", "actual": "@commons_codec_commons_codec//jar", "bind": "jar/commons_codec/commons_codec"})
     callback({"artifact": "commons-collections:commons-collections:3.2.2", "lang": "java", "sha1": "8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_collections_commons_collections", "actual": "@commons_collections_commons_collections//jar", "bind": "jar/commons_collections/commons_collections"})
     callback({"artifact": "commons-digester:commons-digester:2.1", "lang": "java", "sha1": "73a8001e7a54a255eef0f03521ec1805dc738ca0", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_digester_commons_digester", "actual": "@commons_digester_commons_digester//jar", "bind": "jar/commons_digester/commons_digester"})
     callback({"artifact": "commons-discovery:commons-discovery:0.4", "lang": "java", "sha1": "9e3417d3866d9f71e83b959b229b35dc723c7bea", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_discovery_commons_discovery", "actual": "@commons_discovery_commons_discovery//jar", "bind": "jar/commons_discovery/commons_discovery"})
-    callback({"artifact": "commons-fileupload:commons-fileupload:1.3.1-jenkins-1", "lang": "java", "sha1": "5d0270b78ad9d5344ce4a8e35482ad8802526aca", "repository": "http://repo.jenkins-ci.org/public/", "name": "commons_fileupload_commons_fileupload", "actual": "@commons_fileupload_commons_fileupload//jar", "bind": "jar/commons_fileupload/commons_fileupload"})
-    callback({"artifact": "commons-httpclient:commons-httpclient:3.1", "lang": "java", "sha1": "964cd74171f427720480efdec40a7c7f6e58426a", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_httpclient_commons_httpclient", "actual": "@commons_httpclient_commons_httpclient//jar", "bind": "jar/commons_httpclient/commons_httpclient"})
+    callback({"artifact": "commons-fileupload:commons-fileupload:1.3.1-jenkins-2", "lang": "java", "sha1": "297d1dc0a3cbdd3e125f4d506c2b73a105e6cd30", "repository": "http://repo.jenkins-ci.org/public/", "name": "commons_fileupload_commons_fileupload", "actual": "@commons_fileupload_commons_fileupload//jar", "bind": "jar/commons_fileupload/commons_fileupload"})
+    callback({"artifact": "commons-httpclient:commons-httpclient:3.1-jenkins-1", "lang": "java", "sha1": "a75a5917272ea09a24e6a4d9fc0b88a382341d22", "repository": "http://repo.jenkins-ci.org/public/", "name": "commons_httpclient_commons_httpclient", "actual": "@commons_httpclient_commons_httpclient//jar", "bind": "jar/commons_httpclient/commons_httpclient"})
 # duplicates in commons-io:commons-io promoted to 2.5. Versions: 2.4 2.5
     callback({"artifact": "commons-io:commons-io:2.5", "lang": "java", "sha1": "2852e6e05fbb95076fc091f6d1780f1f8fe35e0f", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_io_commons_io", "actual": "@commons_io_commons_io//jar", "bind": "jar/commons_io/commons_io"})
     callback({"artifact": "commons-jelly:commons-jelly-tags-fmt:1.0", "lang": "java", "sha1": "2107da38fdd287ab78a4fa65c1300b5ad9999274", "repository": "https://repo.maven.apache.org/maven2/", "name": "commons_jelly_commons_jelly_tags_fmt", "actual": "@commons_jelly_commons_jelly_tags_fmt//jar", "bind": "jar/commons_jelly/commons_jelly_tags_fmt"})
@@ -31,7 +44,7 @@
     callback({"artifact": "javax.annotation:javax.annotation-api:1.2", "lang": "java", "sha1": "479c1e06db31c432330183f5cae684163f186146", "repository": "https://repo.maven.apache.org/maven2/", "name": "javax_annotation_javax_annotation_api", "actual": "@javax_annotation_javax_annotation_api//jar", "bind": "jar/javax/annotation/javax_annotation_api"})
     callback({"artifact": "javax.inject:javax.inject:1", "lang": "java", "sha1": "6975da39a7040257bd51d21a231b76c915872d38", "repository": "https://repo.maven.apache.org/maven2/", "name": "javax_inject_javax_inject", "actual": "@javax_inject_javax_inject//jar", "bind": "jar/javax/inject/javax_inject"})
     callback({"artifact": "javax.mail:mail:1.4.4", "lang": "java", "sha1": "b907ef0a02ff6e809392b1e7149198497fcc8e49", "repository": "https://repo.maven.apache.org/maven2/", "name": "javax_mail_mail", "actual": "@javax_mail_mail//jar", "bind": "jar/javax/mail/mail"})
-    callback({"artifact": "javax.servlet:jstl:1.1.0", "lang": "java", "sha1": "bca201e52333629c59e459e874e5ecd8f9899e15", "repository": "https://repo.maven.apache.org/maven2/", "name": "javax_servlet_jstl", "actual": "@javax_servlet_jstl//jar", "bind": "jar/javax/servlet/jstl"})
+    callback({"artifact": "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1", "lang": "java", "sha1": "f072f63ab1689e885ac40c221df3e6bb3e64a84a", "repository": "https://repo.maven.apache.org/maven2/", "name": "javax_servlet_jsp_jstl_javax_servlet_jsp_jstl_api", "actual": "@javax_servlet_jsp_jstl_javax_servlet_jsp_jstl_api//jar", "bind": "jar/javax/servlet/jsp/jstl/javax_servlet_jsp_jstl_api"})
     callback({"artifact": "javax.xml.stream:stax-api:1.0-2", "lang": "java", "sha1": "d6337b0de8b25e53e81b922352fbea9f9f57ba0b", "repository": "https://repo.maven.apache.org/maven2/", "name": "javax_xml_stream_stax_api", "actual": "@javax_xml_stream_stax_api//jar", "bind": "jar/javax/xml/stream/stax_api"})
     callback({"artifact": "jaxen:jaxen:1.1-beta-11", "lang": "java", "sha1": "81e32b8bafcc778e5deea4e784670299f1c26b96", "repository": "https://repo.maven.apache.org/maven2/", "name": "jaxen_jaxen", "actual": "@jaxen_jaxen//jar", "bind": "jar/jaxen/jaxen"})
     callback({"artifact": "jfree:jcommon:1.0.12", "lang": "java", "sha1": "737f02607d2f45bb1a589a85c63b4cd907e5e634", "repository": "https://repo.maven.apache.org/maven2/", "name": "jfree_jcommon", "actual": "@jfree_jcommon//jar", "bind": "jar/jfree/jcommon"})
@@ -47,24 +60,26 @@
     callback({"artifact": "org.apache.ant:ant:1.8.4", "lang": "java", "sha1": "8acff3fb57e74bc062d4675d9dcfaffa0d524972", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_apache_ant_ant", "actual": "@org_apache_ant_ant//jar", "bind": "jar/org/apache/ant/ant"})
     callback({"artifact": "org.apache.commons:commons-compress:1.10", "lang": "java", "sha1": "5eeb27c57eece1faf2d837868aeccc94d84dcc9a", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_apache_commons_commons_compress", "actual": "@org_apache_commons_commons_compress//jar", "bind": "jar/org/apache/commons/commons_compress"})
     callback({"artifact": "org.apache.ivy:ivy:2.4.0", "lang": "java", "sha1": "5abe4c24bbe992a9ac07ca563d5bd3e8d569e9ed", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_apache_ivy_ivy", "actual": "@org_apache_ivy_ivy//jar", "bind": "jar/org/apache/ivy/ivy"})
-# duplicates in org.codehaus.groovy:groovy-all fixed to 2.4.6. Versions: 2.4.6 2.4.11
-    callback({"artifact": "org.codehaus.groovy:groovy-all:2.4.6", "lang": "java", "sha1": "478feadca929a946b2f1fb962bb2179264759821", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_codehaus_groovy_groovy_all", "actual": "@org_codehaus_groovy_groovy_all//jar", "bind": "jar/org/codehaus/groovy/groovy_all"})
+    callback({"artifact": "org.assertj:assertj-core:3.4.1", "lang": "java", "sha1": "536893abdf1ce11f72c1e4483a88e94d6ba80005", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_assertj_assertj_core", "actual": "@org_assertj_assertj_core//jar", "bind": "jar/org/assertj/assertj_core"})
+# duplicates in org.codehaus.groovy:groovy-all fixed to 2.4.13. Versions: 2.4.6 2.4.11 2.4.13
+    callback({"artifact": "org.codehaus.groovy:groovy-all:2.4.13", "lang": "java", "sha1": "7e410735a50e495323dd4855ddd13ea7dad23ac1", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_codehaus_groovy_groovy_all", "actual": "@org_codehaus_groovy_groovy_all//jar", "bind": "jar/org/codehaus/groovy/groovy_all"})
     callback({"artifact": "org.codehaus.woodstox:wstx-asl:3.2.9", "lang": "java", "sha1": "c82b6e8f225bb799540e558b10ee24d268035597", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_codehaus_woodstox_wstx_asl", "actual": "@org_codehaus_woodstox_wstx_asl//jar", "bind": "jar/org/codehaus/woodstox/wstx_asl"})
     callback({"artifact": "org.connectbot.jbcrypt:jbcrypt:1.0.0", "lang": "java", "sha1": "f37bba2b8b78fcc8111bb932318b621dcc6c5194", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_connectbot_jbcrypt_jbcrypt", "actual": "@org_connectbot_jbcrypt_jbcrypt//jar", "bind": "jar/org/connectbot/jbcrypt/jbcrypt"})
     callback({"artifact": "org.fusesource.jansi:jansi:1.11", "lang": "java", "sha1": "655c643309c2f45a56a747fda70e3fadf57e9f11", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_fusesource_jansi_jansi", "actual": "@org_fusesource_jansi_jansi//jar", "bind": "jar/org/fusesource/jansi/jansi"})
     callback({"artifact": "org.hamcrest:hamcrest-all:1.3", "lang": "java", "sha1": "63a21ebc981131004ad02e0434e799fd7f3a8d5a", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_hamcrest_hamcrest_all", "actual": "@org_hamcrest_hamcrest_all//jar", "bind": "jar/org/hamcrest/hamcrest_all"})
     callback({"artifact": "org.hamcrest:hamcrest-core:1.3", "lang": "java", "sha1": "42a25dc3219429f0e5d060061f71acb49bf010a0", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_hamcrest_hamcrest_core", "actual": "@org_hamcrest_hamcrest_core//jar", "bind": "jar/org/hamcrest/hamcrest_core"})
-    callback({"artifact": "org.jboss.marshalling:jboss-marshalling-river:1.4.9.Final", "lang": "java", "sha1": "d41e3e1ed9cf4afd97d19df8ecc7f2120effeeb4", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_jboss_marshalling_jboss_marshalling_river", "actual": "@org_jboss_marshalling_jboss_marshalling_river//jar", "bind": "jar/org/jboss/marshalling/jboss_marshalling_river"})
-    callback({"artifact": "org.jboss.marshalling:jboss-marshalling:1.4.9.Final", "lang": "java", "sha1": "8fd342ee3dde0448c7600275a936ea1b17deb494", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_jboss_marshalling_jboss_marshalling", "actual": "@org_jboss_marshalling_jboss_marshalling//jar", "bind": "jar/org/jboss/marshalling/jboss_marshalling"})
+    callback({"artifact": "org.jboss.marshalling:jboss-marshalling-river:1.4.12.jenkins-3", "lang": "java", "sha1": "53949db54bd86e2aa1b3a3614cc0110aaffcca0d", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jboss_marshalling_jboss_marshalling_river", "actual": "@org_jboss_marshalling_jboss_marshalling_river//jar", "bind": "jar/org/jboss/marshalling/jboss_marshalling_river"})
+    callback({"artifact": "org.jboss.marshalling:jboss-marshalling:1.4.12.jenkins-3", "lang": "java", "sha1": "3d6857aead803e7f7f7e6418d1b4a6f771c74ef9", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jboss_marshalling_jboss_marshalling", "actual": "@org_jboss_marshalling_jboss_marshalling//jar", "bind": "jar/org/jboss/marshalling/jboss_marshalling"})
     callback({"artifact": "org.jenkins-ci.dom4j:dom4j:1.6.1-jenkins-4", "lang": "java", "sha1": "9a370b2010b5a1223c7a43dae6c05226918e17b1", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_dom4j_dom4j", "actual": "@org_jenkins_ci_dom4j_dom4j//jar", "bind": "jar/org/jenkins_ci/dom4j/dom4j"})
-    callback({"artifact": "org.jenkins-ci.main:cli:2.73.1", "lang": "java", "sha1": "03ae1decd36ee069108e66e70cd6ffcdd4320aec", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_main_cli", "actual": "@org_jenkins_ci_main_cli//jar", "bind": "jar/org/jenkins_ci/main/cli"})
-    callback({"artifact": "org.jenkins-ci.main:jenkins-core:2.73.1", "lang": "java", "sha1": "30c9e7029d46fd18a8720f9a491bf41ab8f2bdb2", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_main_jenkins_core", "actual": "@org_jenkins_ci_main_jenkins_core//jar", "bind": "jar/org/jenkins_ci/main/jenkins_core"})
-    callback({"artifact": "org.jenkins-ci.main:remoting:3.10", "lang": "java", "sha1": "19905fa1550ab34a33bb92a5e27e2a86733c9d15", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_main_remoting", "actual": "@org_jenkins_ci_main_remoting//jar", "bind": "jar/org/jenkins_ci/main/remoting"})
+    callback({"artifact": "org.jenkins-ci.main:cli:2.89.2", "lang": "java", "sha1": "2797bcce0cf022ebdd38150f137b478abe34b0af", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_main_cli", "actual": "@org_jenkins_ci_main_cli//jar", "bind": "jar/org/jenkins_ci/main/cli"})
+    callback({"artifact": "org.jenkins-ci.main:jenkins-core:2.89.2", "lang": "java", "sha1": "9945685a36e1d7d00d09a983c600aee195a9b886", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_main_jenkins_core", "actual": "@org_jenkins_ci_main_jenkins_core//jar", "bind": "jar/org/jenkins_ci/main/jenkins_core"})
+    callback({"artifact": "org.jenkins-ci.main:remoting:3.14", "lang": "java", "sha1": "c5c833b1a4f7f75591358e977e91f1feaf6c2886", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_main_remoting", "actual": "@org_jenkins_ci_main_remoting//jar", "bind": "jar/org/jenkins_ci/main/remoting"})
     callback({"artifact": "org.jenkins-ci.plugins.icon-shim:icon-set:1.0.5", "lang": "java", "sha1": "dedc76ac61797dafc66f31e8507d65b98c9e57df", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_icon_shim_icon_set", "actual": "@org_jenkins_ci_plugins_icon_shim_icon_set//jar", "bind": "jar/org/jenkins_ci/plugins/icon_shim/icon_set"})
-    callback({"artifact": "org.jenkins-ci.plugins.workflow:workflow-api:2.11", "lang": "java", "sha1": "3a8a6e221a8b32fd9faabb33939c28f79fd961d7", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_workflow_workflow_api", "actual": "@org_jenkins_ci_plugins_workflow_workflow_api//jar", "bind": "jar/org/jenkins_ci/plugins/workflow/workflow_api"})
-    callback({"artifact": "org.jenkins-ci.plugins.workflow:workflow-step-api:2.9", "lang": "java", "sha1": "7d1ad140c092cf4a68a7763db9eac459b5ed86ff", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_workflow_workflow_step_api", "actual": "@org_jenkins_ci_plugins_workflow_workflow_step_api//jar", "bind": "jar/org/jenkins_ci/plugins/workflow/workflow_step_api"})
-    callback({"artifact": "org.jenkins-ci.plugins.workflow:workflow-support:2.14", "lang": "java", "sha1": "cd5f68c533ddd46fea3332ce788dffc80707ddb5", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_workflow_workflow_support", "actual": "@org_jenkins_ci_plugins_workflow_workflow_support//jar", "bind": "jar/org/jenkins_ci/plugins/workflow/workflow_support"})
-    callback({"artifact": "org.jenkins-ci.plugins:script-security:1.26", "lang": "java", "sha1": "44aacd104c0d5c8fe5d0f93e4a4001cae0e48c2b", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_script_security", "actual": "@org_jenkins_ci_plugins_script_security//jar", "bind": "jar/org/jenkins_ci/plugins/script_security"})
+    callback({"artifact": "org.jenkins-ci.plugins.workflow:workflow-api:2.22", "lang": "java", "sha1": "ba64d15b11475153e2542c201552765c90b9c884", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_workflow_workflow_api", "actual": "@org_jenkins_ci_plugins_workflow_workflow_api//jar", "bind": "jar/org/jenkins_ci/plugins/workflow/workflow_api"})
+    callback({"artifact": "org.jenkins-ci.plugins.workflow:workflow-step-api:2.13", "lang": "java", "sha1": "4683818134b9610b126557033425cc68ba5de8dd", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_workflow_workflow_step_api", "actual": "@org_jenkins_ci_plugins_workflow_workflow_step_api//jar", "bind": "jar/org/jenkins_ci/plugins/workflow/workflow_step_api"})
+    callback({"artifact": "org.jenkins-ci.plugins.workflow:workflow-support:2.16", "lang": "java", "sha1": "b17142e69505d4f9c7f0ccc53d01470a7ca39dfd", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_workflow_workflow_support", "actual": "@org_jenkins_ci_plugins_workflow_workflow_support//jar", "bind": "jar/org/jenkins_ci/plugins/workflow/workflow_support"})
+    callback({"artifact": "org.jenkins-ci.plugins:scm-api:2.0.8", "lang": "java", "sha1": "9ee72304b2a58dc3a3b08c4a48fc45870097f9d4", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_scm_api", "actual": "@org_jenkins_ci_plugins_scm_api//jar", "bind": "jar/org/jenkins_ci/plugins/scm_api"})
+    callback({"artifact": "org.jenkins-ci.plugins:script-security:1.27", "lang": "java", "sha1": "486d8f7e051f4a439e2a2850cd9fa2c64ee71d52", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_script_security", "actual": "@org_jenkins_ci_plugins_script_security//jar", "bind": "jar/org/jenkins_ci/plugins/script_security"})
     callback({"artifact": "org.jenkins-ci.plugins:structs:1.5", "lang": "java", "sha1": "72d429f749151f1c983c1fadcb348895cc6da20e", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_plugins_structs", "actual": "@org_jenkins_ci_plugins_structs//jar", "bind": "jar/org/jenkins_ci/plugins/structs"})
 # duplicates in org.jenkins-ci:annotation-indexer promoted to 1.12. Versions: 1.9 1.12
     callback({"artifact": "org.jenkins-ci:annotation-indexer:1.12", "lang": "java", "sha1": "8f6ee0cd64c305dcca29e2f5b46631d50890208f", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_jenkins_ci_annotation_indexer", "actual": "@org_jenkins_ci_annotation_indexer//jar", "bind": "jar/org/jenkins_ci/annotation_indexer"})
@@ -95,10 +110,10 @@
     callback({"artifact": "org.kohsuke.stapler:stapler-adjunct-codemirror:1.3", "lang": "java", "sha1": "fd1d45544400d2a4da6dfee9e60edd4ec3368806", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_kohsuke_stapler_stapler_adjunct_codemirror", "actual": "@org_kohsuke_stapler_stapler_adjunct_codemirror//jar", "bind": "jar/org/kohsuke/stapler/stapler_adjunct_codemirror"})
     callback({"artifact": "org.kohsuke.stapler:stapler-adjunct-timeline:1.5", "lang": "java", "sha1": "3fa806cbb94679ceab9c1ecaaf5fea8207390cb7", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_adjunct_timeline", "actual": "@org_kohsuke_stapler_stapler_adjunct_timeline//jar", "bind": "jar/org/kohsuke/stapler/stapler_adjunct_timeline"})
     callback({"artifact": "org.kohsuke.stapler:stapler-adjunct-zeroclipboard:1.3.5-1", "lang": "java", "sha1": "20184ea79888b55b6629e4479615b52f88b55173", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_adjunct_zeroclipboard", "actual": "@org_kohsuke_stapler_stapler_adjunct_zeroclipboard//jar", "bind": "jar/org/kohsuke/stapler/stapler_adjunct_zeroclipboard"})
-    callback({"artifact": "org.kohsuke.stapler:stapler-groovy:1.250", "lang": "java", "sha1": "a8b910923b8eef79dd99c8aa6418d8ada0de4c86", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_groovy", "actual": "@org_kohsuke_stapler_stapler_groovy//jar", "bind": "jar/org/kohsuke/stapler/stapler_groovy"})
-    callback({"artifact": "org.kohsuke.stapler:stapler-jelly:1.250", "lang": "java", "sha1": "6ac2202bf40e48a63623803697cd1801ee716273", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_jelly", "actual": "@org_kohsuke_stapler_stapler_jelly//jar", "bind": "jar/org/kohsuke/stapler/stapler_jelly"})
-    callback({"artifact": "org.kohsuke.stapler:stapler-jrebel:1.250", "lang": "java", "sha1": "b6f10cb14cf3462f5a51d03a7a00337052355c8c", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_jrebel", "actual": "@org_kohsuke_stapler_stapler_jrebel//jar", "bind": "jar/org/kohsuke/stapler/stapler_jrebel"})
-    callback({"artifact": "org.kohsuke.stapler:stapler:1.250", "lang": "java", "sha1": "d5afb2c46a2919d22e5bc3adccf5f09fbb0fb4e3", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler", "actual": "@org_kohsuke_stapler_stapler//jar", "bind": "jar/org/kohsuke/stapler/stapler"})
+    callback({"artifact": "org.kohsuke.stapler:stapler-groovy:1.253", "lang": "java", "sha1": "ddcf0e3925cdfa06b22b8d4864e6c52e51355393", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_groovy", "actual": "@org_kohsuke_stapler_stapler_groovy//jar", "bind": "jar/org/kohsuke/stapler/stapler_groovy"})
+    callback({"artifact": "org.kohsuke.stapler:stapler-jelly:1.253", "lang": "java", "sha1": "a1854ec5aa69d8514d1a3f88ddac39517581ff4e", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_jelly", "actual": "@org_kohsuke_stapler_stapler_jelly//jar", "bind": "jar/org/kohsuke/stapler/stapler_jelly"})
+    callback({"artifact": "org.kohsuke.stapler:stapler-jrebel:1.253", "lang": "java", "sha1": "9aeed3297450f8c4daca2e90157939c7e36812b0", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler_jrebel", "actual": "@org_kohsuke_stapler_stapler_jrebel//jar", "bind": "jar/org/kohsuke/stapler/stapler_jrebel"})
+    callback({"artifact": "org.kohsuke.stapler:stapler:1.253", "lang": "java", "sha1": "530c3e0935e30a9cdba1a0473d7995ca8ec06e96", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_stapler_stapler", "actual": "@org_kohsuke_stapler_stapler//jar", "bind": "jar/org/kohsuke/stapler/stapler"})
     callback({"artifact": "org.kohsuke:access-modifier-annotation:1.11", "lang": "java", "sha1": "d1ca3a10d8be91d1525f51dbc6a3c7644e0fc6ea", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_access_modifier_annotation", "actual": "@org_kohsuke_access_modifier_annotation//jar", "bind": "jar/org/kohsuke/access_modifier_annotation"})
     callback({"artifact": "org.kohsuke:akuma:1.10", "lang": "java", "sha1": "0e2c6a1f79f17e3fab13332ab8e9b9016eeab0b6", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_akuma", "actual": "@org_kohsuke_akuma//jar", "bind": "jar/org/kohsuke/akuma"})
     callback({"artifact": "org.kohsuke:asm5:5.0.1", "lang": "java", "sha1": "71ab0620a41ed37f626b96d80c2a7c58165550df", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_asm5", "actual": "@org_kohsuke_asm5//jar", "bind": "jar/org/kohsuke/asm5"})
@@ -107,16 +122,15 @@
     callback({"artifact": "org.kohsuke:libzfs:0.8", "lang": "java", "sha1": "5bb311276283921f7e1082c348c0253b17922dcc", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_libzfs", "actual": "@org_kohsuke_libzfs//jar", "bind": "jar/org/kohsuke/libzfs"})
     callback({"artifact": "org.kohsuke:trilead-putty-extension:1.2", "lang": "java", "sha1": "0f2f41517e1f73be8e319da27a69e0dc0c524bf6", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_trilead_putty_extension", "actual": "@org_kohsuke_trilead_putty_extension//jar", "bind": "jar/org/kohsuke/trilead_putty_extension"})
     callback({"artifact": "org.kohsuke:windows-package-checker:1.2", "lang": "java", "sha1": "86b5d2f9023633808d65dbcfdfd50dc5ad3ca31f", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_kohsuke_windows_package_checker", "actual": "@org_kohsuke_windows_package_checker//jar", "bind": "jar/org/kohsuke/windows_package_checker"})
-    callback({"artifact": "org.mindrot:jbcrypt:0.4", "lang": "java", "sha1": "af7e61017f73abb18ac4e036954f9f28c6366c07", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_mindrot_jbcrypt", "actual": "@org_mindrot_jbcrypt//jar", "bind": "jar/org/mindrot/jbcrypt"})
     callback({"artifact": "org.ow2.asm:asm-analysis:5.0.3", "lang": "java", "sha1": "c7126aded0e8e13fed5f913559a0dd7b770a10f3", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_ow2_asm_asm_analysis", "actual": "@org_ow2_asm_asm_analysis//jar", "bind": "jar/org/ow2/asm/asm_analysis"})
     callback({"artifact": "org.ow2.asm:asm-commons:5.0.3", "lang": "java", "sha1": "a7111830132c7f87d08fe48cb0ca07630f8cb91c", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_ow2_asm_asm_commons", "actual": "@org_ow2_asm_asm_commons//jar", "bind": "jar/org/ow2/asm/asm_commons"})
     callback({"artifact": "org.ow2.asm:asm-tree:5.0.3", "lang": "java", "sha1": "287749b48ba7162fb67c93a026d690b29f410bed", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_ow2_asm_asm_tree", "actual": "@org_ow2_asm_asm_tree//jar", "bind": "jar/org/ow2/asm/asm_tree"})
     callback({"artifact": "org.ow2.asm:asm-util:5.0.3", "lang": "java", "sha1": "1512e5571325854b05fb1efce1db75fcced54389", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_ow2_asm_asm_util", "actual": "@org_ow2_asm_asm_util//jar", "bind": "jar/org/ow2/asm/asm_util"})
     callback({"artifact": "org.ow2.asm:asm:5.0.3", "lang": "java", "sha1": "dcc2193db20e19e1feca8b1240dbbc4e190824fa", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_ow2_asm_asm", "actual": "@org_ow2_asm_asm//jar", "bind": "jar/org/ow2/asm/asm"})
     callback({"artifact": "org.samba.jcifs:jcifs:1.3.17-kohsuke-1", "lang": "java", "sha1": "6c9114dc4075277d829ea09e15d6ffab52f2d0c0", "repository": "http://repo.jenkins-ci.org/public/", "name": "org_samba_jcifs_jcifs", "actual": "@org_samba_jcifs_jcifs//jar", "bind": "jar/org/samba/jcifs/jcifs"})
-    callback({"artifact": "org.slf4j:jcl-over-slf4j:1.7.7", "lang": "java", "sha1": "56003dcd0a31deea6391b9e2ef2f2dc90b205a92", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_slf4j_jcl_over_slf4j", "actual": "@org_slf4j_jcl_over_slf4j//jar", "bind": "jar/org/slf4j/jcl_over_slf4j"})
-    callback({"artifact": "org.slf4j:log4j-over-slf4j:1.7.7", "lang": "java", "sha1": "d521cb26a9c4407caafcec302e7804b048b07cea", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_slf4j_log4j_over_slf4j", "actual": "@org_slf4j_log4j_over_slf4j//jar", "bind": "jar/org/slf4j/log4j_over_slf4j"})
-    callback({"artifact": "org.slf4j:slf4j-api:1.7.7", "lang": "java", "sha1": "2b8019b6249bb05d81d3a3094e468753e2b21311", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_slf4j_slf4j_api", "actual": "@org_slf4j_slf4j_api//jar", "bind": "jar/org/slf4j/slf4j_api"})
+    callback({"artifact": "org.slf4j:jcl-over-slf4j:1.7.25", "lang": "java", "sha1": "f8c32b13ff142a513eeb5b6330b1588dcb2c0461", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_slf4j_jcl_over_slf4j", "actual": "@org_slf4j_jcl_over_slf4j//jar", "bind": "jar/org/slf4j/jcl_over_slf4j"})
+    callback({"artifact": "org.slf4j:log4j-over-slf4j:1.7.25", "lang": "java", "sha1": "a87bb47468f47ee7aabbd54f93e133d4215769c3", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_slf4j_log4j_over_slf4j", "actual": "@org_slf4j_log4j_over_slf4j//jar", "bind": "jar/org/slf4j/log4j_over_slf4j"})
+    callback({"artifact": "org.slf4j:slf4j-api:1.7.25", "lang": "java", "sha1": "da76ca59f6a57ee3102f8f9bd9cee742973efa8a", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_slf4j_slf4j_api", "actual": "@org_slf4j_slf4j_api//jar", "bind": "jar/org/slf4j/slf4j_api"})
     callback({"artifact": "org.springframework:spring-aop:2.5.6.SEC03", "lang": "java", "sha1": "6468695557500723a18630b712ce112ec58827c1", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_springframework_spring_aop", "actual": "@org_springframework_spring_aop//jar", "bind": "jar/org/springframework/spring_aop"})
     callback({"artifact": "org.springframework:spring-beans:2.5.6.SEC03", "lang": "java", "sha1": "79b2c86ff12c21b2420b4c46dca51f0e58762aae", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_springframework_spring_beans", "actual": "@org_springframework_spring_beans//jar", "bind": "jar/org/springframework/spring_beans"})
     callback({"artifact": "org.springframework:spring-context-support:2.5.6.SEC03", "lang": "java", "sha1": "edf496f4ce066edc6b212e0e5521cb11ff97d55e", "repository": "https://repo.maven.apache.org/maven2/", "name": "org_springframework_spring_context_support", "actual": "@org_springframework_spring_context_support//jar", "bind": "jar/org/springframework/spring_context_support"})
diff --git a/WORKSPACE b/WORKSPACE
index 3ba38fd..a6dfbef 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -16,14 +16,18 @@
 git_repository(
     name = "io_bazel_rules_docker",
     remote = "https://github.com/bazelbuild/rules_docker.git",
-    commit = "db1b348dfdf161a784bc1efc5a1020395572b996",
+    tag = "v0.3.0",
 )
 
 load(
-  "@io_bazel_rules_docker//docker:docker.bzl",
-  "docker_repositories"
+    "@io_bazel_rules_docker//container:container.bzl",
+    "container_pull",
+    container_repositories = "repositories",
 )
-docker_repositories()
+
+# This is NOT needed when going through the language lang_image
+# "repositories" function(s).
+container_repositories()
 
 # For testing with docker
 load("//jenkins/test:docker_repository.bzl", "docker_repository")
@@ -40,22 +44,22 @@
 jenkins_base(
     name = "jenkins",
     plugins = JENKINS_PLUGINS,
-    version = "2.73.2",
-    digest = "sha256:025db2d00e5ba8b7a531e6d35513d6945854641977d2ab4ab21be79ac763d86f",
+    version = "2.89.2",
+    digest = "sha256:4ee807fc56c48bcf7b4f7273d24b11970615b2458bb090671f5020c7451e9114",
     volumes = ["/opt/secrets"],
 )
 
 # Releases stuff
 http_file(
     name = "hoedown",
-    sha256 = "779b75397043f6f6cf2ca8c8a716da58bb03ac42b1a21b83ff66b69bc60c016c",
-    url = "https://github.com/hoedown/hoedown/archive/3.0.4.tar.gz",
+    sha256 = "01b6021b1ec329b70687c0d240b12edcaf09c4aa28423ddf344d2bd9056ba920",
+    url = "https://github.com/hoedown/hoedown/archive/3.0.7.tar.gz",
 )
 
 http_file(
     name = "github_release",
-    sha256 = "d6994f8a43aaa7c5a7c8c867fe69cfe302cd8eda0df3d371d0e69413999c83d8",
-    url = "https://github.com/c4milo/github-release/archive/v1.0.7.tar.gz",
+    sha256 = "bb647fb89f086a78bfc51c0b3264338f3471fb5b275829a7d1f08cf76af17da2",
+    url = "https://github.com/c4milo/github-release/archive/v1.1.0.tar.gz",
 )
 
 # Use Jinja for templating our files
@@ -69,9 +73,9 @@
     visibility = ["//visibility:public"],
 )
 """,
-    sha256 = "a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3",
-    strip_prefix = "MarkupSafe-0.23",
-    url = "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.23.tar.gz#md5=f5ab3deee4c37cd6a922fb81e730da6e",
+    sha256 = "a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665",
+    strip_prefix = "MarkupSafe-1.0",
+    url = "https://pypi.python.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz#md5=2fcedc9284d50e577b5192e8e3578355",
 )
 
 new_http_archive(
@@ -87,9 +91,9 @@
     visibility = ["//visibility:public"],
 )
 """,
-    sha256 = "bc1ff2ff88dbfacefde4ddde471d1417d3b304e8df103a7a9437d47269201bf4",
-    strip_prefix = "Jinja2-2.8",
-    url = "https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.8.tar.gz#md5=edb51693fe22c53cee5403775c71a99e",
+    sha256 = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4",
+    strip_prefix = "Jinja2-2.10",
+    url = "https://pypi.python.org/packages/56/e6/332789f295cf22308386cf5bbd1f4e00ed11484299c5d7383378cf48ba47/Jinja2-2.10.tar.gz#md5=61ef1117f945486472850819b8d1eb3d",
 )
 
 # Our template engine use gflags
@@ -125,7 +129,5 @@
 groovy_repositories()
 
 # For groovy tests
-load("//3rdparty:bzl.bzl", "maven_dependencies")
-
+load("//3rdparty:workspace.bzl", "maven_dependencies")
 maven_dependencies()
-
diff --git a/3rdparty/dependencies.yaml b/dependencies.yaml
similarity index 87%
rename from 3rdparty/dependencies.yaml
rename to dependencies.yaml
index 5c6ff14..8e4fe05 100644
--- a/3rdparty/dependencies.yaml
+++ b/dependencies.yaml
@@ -14,12 +14,12 @@
    com.lesfurets:
      jenkins-pipeline-unit:
        lang: java
-       version: "1.0"
+       version: "1.1"
 
    org.codehaus.groovy:
      groovy-all:
        lang: java
-       version: "2.4.6"
+       version: "2.4.13"
 
    org.hamcrest:
      hamcrest-all:
@@ -33,15 +33,15 @@
 
    org.jenkins-ci.main:
      jenkins-core:
-       lang: "java"
-       version: "2.73.1"
+       lang: java
+       version: "2.89.2"
 
    org.jenkins-ci.plugins.workflow:
      workflow-step-api:
        lang: java
-       version: "2.1"
+       version: "2.14"
 
    org.jenkins-ci.plugins.workflow:
      workflow-support:
        lang: java
-       version: "2.14"
+       version: "2.16"
diff --git a/gcr/BUILD b/gcr/BUILD
index f42c670..b61e9ae 100644
--- a/gcr/BUILD
+++ b/gcr/BUILD
@@ -3,7 +3,7 @@
     "docker_bundle",
 )
 load(
-    "@io_bazel_rules_docker//docker/contrib:push-all.bzl",
+    "@io_bazel_rules_docker//contrib:push-all.bzl",
     "docker_push",
 )