Merge branch 'stable-3.1'

* stable-3.1:
  Fix bazlets using latest stable-3.1 to build with 3.1.5 API
  Adapt documentation link to v3.1 in README for e2e
  Replace unused postgresql jar with manual site copy
  Align postgresql version used with gerrit core one
  Stop shipping core dependencies within plugin jar
  Sort CONDUCTOR_DEPS and EXECUTOR_DEPS alphabetically
  Adapt documentation version link in README for e2e
  Add README introducing e2e plugin test scenarios
  Upgrade bazlets to latest stable-3.1 to build with 3.1.5 API
  Upgrade bazlets to latest stable-3.0 to build with 3.0.9 API
  Upgrade bazlets to latest stable-2.16 to build with 2.16.19 API
  Align postgresql version used with gerrit core one
  Stop shipping core dependencies within plugin jar
  Sort CONDUCTOR_DEPS and EXECUTOR_DEPS alphabetically

Change-Id: I94e99866852d33e5038533a2725f55488616ff93
diff --git a/BUILD b/BUILD
index 3ebfd66..66c91cf 100644
--- a/BUILD
+++ b/BUILD
@@ -7,26 +7,23 @@
     "gerrit_plugin",
 )
 
-CONDUCTOR_DEPS = [
-    "@postgresql//jar",
+EXECUTOR_DEPS = [
+    "@aopalliance//jar",
     "@dbcp//jar",
-    "@pool//jar",
-]
-
-EXECUTOR_DEPS = CONDUCTOR_DEPS + [
-    "@javaewah//jar",
     "@guava//jar",
     "@guava-failureaccess//jar",
     "@guice//jar",
     "@guice-assistedinject//jar",
+    "@javaewah//jar",
     "@javax_inject//jar",
-    "@aopalliance//jar",
-    "@slf4j-api//jar",
-    "@slf4j-ext//jar",
-    "@log4j-slf4j-impl//jar",
     "@log4j-api//jar",
     "@log4j-core//jar",
+    "@log4j-slf4j-impl//jar",
+    "@pool//jar",
+    "@postgresql//jar",
     "@retry//jar",
+    "@slf4j-api//jar",
+    "@slf4j-ext//jar",
     "//lib:jgit",
 ]
 
@@ -48,7 +45,6 @@
         ["src/main/resources/**/*"],
         exclude = ["src/main/resources/log4j2.xml"],
     ),
-    deps = CONDUCTOR_DEPS,
 )
 
 java_library(
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 6a61adf..7312b0b 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -43,8 +43,8 @@
 
     maven_jar(
         name = "postgresql",
-        artifact = "org.postgresql:postgresql:42.2.4",
-        sha1 = "dff98730c28a4b3a3263f0cf4abb9a3392f815a7",
+        artifact = "org.postgresql:postgresql:42.2.5",
+        sha1 = "951b7eda125f3137538a94e2cbdcf744088ad4c2",
     )
 
     maven_jar(
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md
index 3643444..24ec423 100644
--- a/src/main/resources/Documentation/build.md
+++ b/src/main/resources/Documentation/build.md
@@ -7,7 +7,7 @@
 * In Gerrit tree.
 
 Standalone build mode is recommended, as this mode doesn't require local Gerrit
-tree to exist.
+tree to exist. This plugin has a side component, gc-executor, to build as well.
 
 Successfully running some of the tests requires Docker,
 which are skipped if Docker is not available.
@@ -55,6 +55,7 @@
 
 to generate the required files and then import the project.
 
+## Building gc-executor
 
 To build the executor, issue the following command:
 
@@ -65,11 +66,21 @@
 The output is created in:
 
 ```
-  /bazel-bin/gc-executor_deploy.jar
+  bazel-bin/gc-executor_deploy.jar
 ```
 
 This jar should be renamed to gc-executor.jar before deployment.
 
+Once the executor is built, the resulting postgresql jar file like below
+should be manually copied over to the gerrit site /lib folder; on macOS:
+
+```
+  bazel-out/darwin-fastbuild/bin/gc-executor.runfiles/gc_executor/external/postgresql/jar/postgresql-42.2.5.jar
+```
+
+That file has to be in accordance with potentially existing database driver
+files under site's /lib, for proper account_patch_reviews support.
+
 ## Build in Gerrit tree
 
 Clone or link this plugin to the plugins directory of Gerrit's
diff --git a/src/test/README.md b/src/test/README.md
new file mode 100644
index 0000000..ecb8bfb
--- /dev/null
+++ b/src/test/README.md
@@ -0,0 +1,27 @@
+# About this directory structure
+
+```bash
+  ./resources/com
+  ./scala
+```
+
+To start using the files under these directories above, consider the
+[instructions](https://gerrit-documentation.storage.googleapis.com/Documentation/3.1.5/dev-e2e-tests.html)
+on how to use Gerrit core's Gatling framework. These are about running
+non-core test scenarios such as this plugin one below:
+
+```bash
+  sbt "gatling:testOnly com.ericsson.gerrit.plugins.gcconductor.scenarios.CreateChangesTriggeringGc"
+
+```
+
+This is a scenario that can serve as an example for how to start testing
+this plugin, along with its executor component. Both of these components
+should be locally installed along with default configuration. Plugin's
+gc-executor component is assumed to be running alongside Gerrit.
+
+Scenario scala source files and their companion json resource ones are
+stored under the usual src/test directories. That structure follows the
+scala package one from the scenario classes. The core framework expects
+such a directory structure for both the scala and resources (json data)
+files.