Merge branch 'stable-3.0' into stable-3.1

* stable-3.0:
  e2e-tests: Unhardcode test scenarios project names
  e2e-tests: Add JAVA_OPTS support to plugin scenarios

Change-Id: Id7de063f1f7e5e7712213069ca8d8c1535787128
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json
index 37891ad..34d4ca0 100644
--- a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json
+++ b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.json
@@ -1,6 +1,6 @@
 [
   {
-    "url": "http://localhost:8081/loadtest-repo",
+    "url": "http://HOSTNAME:HTTP_PORT1/_PROJECT",
     "cmd": "clone"
   }
 ]
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json
index 2e54de5..40e5a45 100644
--- a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json
+++ b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.json
@@ -1,5 +1,5 @@
 [
   {
-    "url": "http://localhost:8080/a/projects/loadtest-repo"
+    "url": "http://HOSTNAME:HTTP_PORT/a/projects/PROJECT"
   }
 ]
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json
index 9312fb4..7cc8293 100644
--- a/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json
+++ b/src/test/resources/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.json
@@ -1,5 +1,5 @@
 [
   {
-    "url": "http://localhost:8080/a/projects/loadtest-repo/delete-project~delete"
+    "url": "http://HOSTNAME:HTTP_PORT/a/projects/PROJECT/delete-project~delete"
   }
 ]
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala
index 5a26360..4a7c65d 100644
--- a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala
+++ b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CloneUsingMultiGerrit1.scala
@@ -22,14 +22,20 @@
 import scala.concurrent.duration._
 
 class CloneUsingMultiGerrit1 extends GitSimulation {
-  private val data: FileBasedFeederBuilder[Any]#F = jsonFile(resource).queue
+  private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue
+  private val default: String = name
+
+  override def replaceOverride(in: String): String = {
+    val next = replaceProperty("http_port1", 8081, in)
+    replaceKeyWith("_project", default, next)
+  }
 
   private val test: ScenarioBuilder = scenario(name)
     .feed(data)
     .exec(gitRequest)
 
-  private val createProject = new CreateProjectUsingMultiGerrit
-  private val deleteProject = new DeleteProjectUsingMultiGerrit
+  private val createProject = new CreateProjectUsingMultiGerrit(default)
+  private val deleteProject = new DeleteProjectUsingMultiGerrit(default)
 
   setUp(
     createProject.test.inject(
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala
index 8f46a2a..3ae12b5 100644
--- a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala
+++ b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/CreateProjectUsingMultiGerrit.scala
@@ -14,13 +14,18 @@
 
 package com.googlesource.gerrit.plugins.multisite.scenarios
 
-import com.google.gerrit.scenarios.GerritSimulation
+import com.google.gerrit.scenarios.ProjectSimulation
 import io.gatling.core.Predef._
 import io.gatling.core.feeder.FileBasedFeederBuilder
 import io.gatling.core.structure.ScenarioBuilder
 
-class CreateProjectUsingMultiGerrit extends GerritSimulation {
-  private val data: FileBasedFeederBuilder[Any]#F = jsonFile(resource).queue
+class CreateProjectUsingMultiGerrit extends ProjectSimulation {
+  private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue
+
+  def this(default: String) {
+    this()
+    this.default = default
+  }
 
   val test: ScenarioBuilder = scenario(name)
     .feed(data)
diff --git a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala
index 628edfc..ee645a9 100644
--- a/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala
+++ b/src/test/scala/com/googlesource/gerrit/plugins/multisite/scenarios/DeleteProjectUsingMultiGerrit.scala
@@ -14,13 +14,18 @@
 
 package com.googlesource.gerrit.plugins.multisite.scenarios
 
-import com.google.gerrit.scenarios.GerritSimulation
+import com.google.gerrit.scenarios.ProjectSimulation
 import io.gatling.core.Predef._
 import io.gatling.core.feeder.FileBasedFeederBuilder
 import io.gatling.core.structure.ScenarioBuilder
 
-class DeleteProjectUsingMultiGerrit extends GerritSimulation {
-  private val data: FileBasedFeederBuilder[Any]#F = jsonFile(resource).queue
+class DeleteProjectUsingMultiGerrit extends ProjectSimulation {
+  private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue
+
+  def this(default: String) {
+    this()
+    this.default = default
+  }
 
   val test: ScenarioBuilder = scenario(name)
     .feed(data)