Merge branch 'stable-3.1'

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

Change-Id: I2a3244edfea052ca757decd2ee8f566cdc3abae0
diff --git a/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.json b/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.json
index 228b5e8..3fd506d 100644
--- a/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.json
+++ b/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.json
@@ -1,6 +1,6 @@
 [
   {
-    "url": "http://localhost:8082/loadtest-repo",
+    "url": "http://HOSTNAME:HTTP_PORT2/_PROJECT",
     "cmd": "clone"
   }
 ]
diff --git a/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.json b/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.json
index bee4090..da3f028 100644
--- a/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.json
+++ b/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.json
@@ -1,5 +1,5 @@
 [
   {
-    "url": "http://localhost:8081/a/projects/loadtest-repo"
+    "url": "http://HOSTNAME:HTTP_PORT1/a/projects/PROJECT"
   }
 ]
diff --git a/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.json b/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.json
index 85afaad..be47699 100644
--- a/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.json
+++ b/src/test/resources/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.json
@@ -1,5 +1,5 @@
 [
   {
-    "url": "http://localhost/a/projects/loadtest-repo/delete-project~delete"
+    "url": "http://HOSTNAME/a/projects/PROJECT/delete-project~delete"
   }
 ]
diff --git a/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.scala b/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.scala
index 6a6c86b..9b457ac 100644
--- a/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.scala
+++ b/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CloneUsingHAGerrit2.scala
@@ -22,14 +22,20 @@
 import scala.concurrent.duration._
 
 class CloneUsingHAGerrit2 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_port2", 8082, in)
+    replaceKeyWith("_project", default, next)
+  }
 
   private val test: ScenarioBuilder = scenario(name)
     .feed(data)
     .exec(gitRequest)
 
-  private val createProject = new CreateProjectUsingHAGerrit1
-  private val deleteProject = new DeleteProjectUsingHAGerrit
+  private val createProject = new CreateProjectUsingHAGerrit1(default)
+  private val deleteProject = new DeleteProjectUsingHAGerrit(default)
 
   setUp(
     createProject.test.inject(
diff --git a/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.scala b/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.scala
index c735438..ad2cbd9 100644
--- a/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.scala
+++ b/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/CreateProjectUsingHAGerrit1.scala
@@ -14,13 +14,23 @@
 
 package com.ericsson.gerrit.plugins.highavailability.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 CreateProjectUsingHAGerrit1 extends GerritSimulation {
-  private val data: FileBasedFeederBuilder[Any]#F = jsonFile(resource).queue
+class CreateProjectUsingHAGerrit1 extends ProjectSimulation {
+  private val data: FileBasedFeederBuilder[Any]#F#F = jsonFile(resource).convert(url).queue
+
+  def this(default: String) {
+    this()
+    this.default = default
+  }
+
+  override def replaceOverride(in: String): String = {
+    val next = replaceProperty("http_port1", 8081, in)
+    super.replaceOverride(next)
+  }
 
   val test: ScenarioBuilder = scenario(name)
     .feed(data)
diff --git a/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.scala b/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.scala
index f1438a3..091cd7b 100644
--- a/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.scala
+++ b/src/test/scala/com/ericsson/gerrit/plugins/highavailability/scenarios/DeleteProjectUsingHAGerrit.scala
@@ -14,13 +14,18 @@
 
 package com.ericsson.gerrit.plugins.highavailability.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 DeleteProjectUsingHAGerrit extends GerritSimulation {
-  private val data: FileBasedFeederBuilder[Any]#F = jsonFile(resource).queue
+class DeleteProjectUsingHAGerrit 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)