Merge branch 'stable-3.1'
* stable-3.1:
Import from com.google.inject rather than javax.inject
ProjectCache: Remove declarations of unthrown IOException
ProjectIT: Remove unused executor
e2e-tests: Collapse the load-tests directory level
ChangeSubmitRequirementIT: Show that submit rules are cached on change query
Update git submodules
Update git submodules
Update git submodules
QueryChangeIT: Rename to QueryChangesIT
QueryChangeIT: Backport moreChangesIndicatorDoesNotWronglyCopyToUnrelatedChanges
Backport QueryChangeIT
JettyServer: Stop using deprecated SslContextFactory constructor
Change-Id: Idf396f762f59eb91c813de985b1bb1b6f11d13c1
diff --git a/e2e-tests/load-tests/.gitignore b/e2e-tests/.gitignore
similarity index 100%
rename from e2e-tests/load-tests/.gitignore
rename to e2e-tests/.gitignore
diff --git a/e2e-tests/load-tests/Dockerfile b/e2e-tests/Dockerfile
similarity index 100%
rename from e2e-tests/load-tests/Dockerfile
rename to e2e-tests/Dockerfile
diff --git a/e2e-tests/load-tests/README.md b/e2e-tests/README.md
similarity index 100%
rename from e2e-tests/load-tests/README.md
rename to e2e-tests/README.md
diff --git a/e2e-tests/load-tests/build.sbt b/e2e-tests/build.sbt
similarity index 100%
rename from e2e-tests/load-tests/build.sbt
rename to e2e-tests/build.sbt
diff --git a/e2e-tests/load-tests/project/Dependencies.scala b/e2e-tests/project/Dependencies.scala
similarity index 100%
rename from e2e-tests/load-tests/project/Dependencies.scala
rename to e2e-tests/project/Dependencies.scala
diff --git a/e2e-tests/load-tests/project/build.properties b/e2e-tests/project/build.properties
similarity index 100%
rename from e2e-tests/load-tests/project/build.properties
rename to e2e-tests/project/build.properties
diff --git a/e2e-tests/load-tests/project/plugins.sbt b/e2e-tests/project/plugins.sbt
similarity index 100%
rename from e2e-tests/load-tests/project/plugins.sbt
rename to e2e-tests/project/plugins.sbt
diff --git a/e2e-tests/load-tests/src/test/resources/application.conf b/e2e-tests/src/test/resources/application.conf
similarity index 100%
rename from e2e-tests/load-tests/src/test/resources/application.conf
rename to e2e-tests/src/test/resources/application.conf
diff --git a/e2e-tests/load-tests/src/test/resources/data/CloneUsingBothProtocols.json b/e2e-tests/src/test/resources/data/CloneUsingBothProtocols.json
similarity index 100%
rename from e2e-tests/load-tests/src/test/resources/data/CloneUsingBothProtocols.json
rename to e2e-tests/src/test/resources/data/CloneUsingBothProtocols.json
diff --git a/e2e-tests/load-tests/src/test/resources/data/ReplayRecordsFromFeeder.json b/e2e-tests/src/test/resources/data/ReplayRecordsFromFeeder.json
similarity index 100%
rename from e2e-tests/load-tests/src/test/resources/data/ReplayRecordsFromFeeder.json
rename to e2e-tests/src/test/resources/data/ReplayRecordsFromFeeder.json
diff --git a/e2e-tests/load-tests/src/test/resources/gatling.conf b/e2e-tests/src/test/resources/gatling.conf
similarity index 100%
rename from e2e-tests/load-tests/src/test/resources/gatling.conf
rename to e2e-tests/src/test/resources/gatling.conf
diff --git a/e2e-tests/load-tests/src/test/resources/hooks/commit-msg b/e2e-tests/src/test/resources/hooks/commit-msg
similarity index 100%
rename from e2e-tests/load-tests/src/test/resources/hooks/commit-msg
rename to e2e-tests/src/test/resources/hooks/commit-msg
diff --git a/e2e-tests/load-tests/src/test/resources/logback.xml b/e2e-tests/src/test/resources/logback.xml
similarity index 100%
rename from e2e-tests/load-tests/src/test/resources/logback.xml
rename to e2e-tests/src/test/resources/logback.xml
diff --git a/e2e-tests/load-tests/src/test/scala/com/google/gerrit/scenarios/CloneUsingBothProtocols.scala b/e2e-tests/src/test/scala/com/google/gerrit/scenarios/CloneUsingBothProtocols.scala
similarity index 100%
rename from e2e-tests/load-tests/src/test/scala/com/google/gerrit/scenarios/CloneUsingBothProtocols.scala
rename to e2e-tests/src/test/scala/com/google/gerrit/scenarios/CloneUsingBothProtocols.scala
diff --git a/e2e-tests/load-tests/src/test/scala/com/google/gerrit/scenarios/GitSimulation.scala b/e2e-tests/src/test/scala/com/google/gerrit/scenarios/GitSimulation.scala
similarity index 100%
rename from e2e-tests/load-tests/src/test/scala/com/google/gerrit/scenarios/GitSimulation.scala
rename to e2e-tests/src/test/scala/com/google/gerrit/scenarios/GitSimulation.scala
diff --git a/e2e-tests/load-tests/src/test/scala/com/google/gerrit/scenarios/ReplayRecordsFromFeeder.scala b/e2e-tests/src/test/scala/com/google/gerrit/scenarios/ReplayRecordsFromFeeder.scala
similarity index 100%
rename from e2e-tests/load-tests/src/test/scala/com/google/gerrit/scenarios/ReplayRecordsFromFeeder.scala
rename to e2e-tests/src/test/scala/com/google/gerrit/scenarios/ReplayRecordsFromFeeder.scala
diff --git a/java/com/google/gerrit/server/git/UsersSelfAdvertiseRefsHook.java b/java/com/google/gerrit/server/git/UsersSelfAdvertiseRefsHook.java
index 169ae32..6c1879e 100644
--- a/java/com/google/gerrit/server/git/UsersSelfAdvertiseRefsHook.java
+++ b/java/com/google/gerrit/server/git/UsersSelfAdvertiseRefsHook.java
@@ -18,11 +18,11 @@
import com.google.gerrit.entities.Account;
import com.google.gerrit.entities.RefNames;
import com.google.gerrit.server.CurrentUser;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
import java.io.IOException;
import java.util.Map;
-import javax.inject.Inject;
-import javax.inject.Provider;
-import javax.inject.Singleton;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.RefDatabase;
import org.eclipse.jgit.lib.SymbolicRef;
diff --git a/java/com/google/gerrit/server/notedb/AllUsersAsyncUpdate.java b/java/com/google/gerrit/server/notedb/AllUsersAsyncUpdate.java
index 030cfb2..5417494 100644
--- a/java/com/google/gerrit/server/notedb/AllUsersAsyncUpdate.java
+++ b/java/com/google/gerrit/server/notedb/AllUsersAsyncUpdate.java
@@ -25,11 +25,11 @@
import com.google.gerrit.server.FanOutExecutor;
import com.google.gerrit.server.config.AllUsersName;
import com.google.gerrit.server.git.GitRepositoryManager;
+import com.google.inject.Inject;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
-import javax.inject.Inject;
import org.eclipse.jgit.lib.BatchRefUpdate;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.transport.PushCertificate;
diff --git a/javatests/com/google/gerrit/acceptance/api/change/ChangeSubmitRequirementIT.java b/javatests/com/google/gerrit/acceptance/api/change/ChangeSubmitRequirementIT.java
index 4d76074..a704f0c 100644
--- a/javatests/com/google/gerrit/acceptance/api/change/ChangeSubmitRequirementIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/change/ChangeSubmitRequirementIT.java
@@ -28,9 +28,13 @@
import com.google.gerrit.extensions.config.FactoryModule;
import com.google.gerrit.server.query.change.ChangeData;
import com.google.gerrit.server.rules.SubmitRule;
+import com.google.inject.Inject;
import com.google.inject.Module;
+import com.google.inject.Singleton;
import java.util.ArrayList;
+import java.util.List;
import java.util.Optional;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.Test;
public class ChangeSubmitRequirementIT extends AbstractDaemonTest {
@@ -56,22 +60,63 @@
};
}
+ @Inject CustomSubmitRule rule;
+
@Test
- public void checkSubmitRequirementIsPropagated() throws Exception {
+ public void submitRequirementIsPropagated() throws Exception {
+ rule.block(false);
PushOneCommit.Result r = createChange();
ChangeInfo result = gApi.changes().id(r.getChangeId()).get();
+ assertThat(result.requirements).isEmpty();
+
+ rule.block(true);
+ result = gApi.changes().id(r.getChangeId()).get();
assertThat(result.requirements).containsExactly(reqInfo);
}
+ @Test
+ public void submitRequirementIsPropagatedInQuery() throws Exception {
+ rule.block(false);
+ PushOneCommit.Result r = createChange();
+
+ String query = "status:open project:" + project.get();
+ List<ChangeInfo> result = gApi.changes().query(query).get();
+ assertThat(result).hasSize(1);
+ assertThat(result.get(0).requirements).isEmpty();
+
+ // Submit rule behavior is changed, but the query still returns
+ // the previous result from the index
+ rule.block(true);
+ result = gApi.changes().query(query).get();
+ assertThat(result).hasSize(1);
+ assertThat(result.get(0).requirements).isEmpty();
+
+ // The submit rule result is updated after the change is reindexed
+ gApi.changes().id(r.getChangeId()).index();
+ result = gApi.changes().query(query).get();
+ assertThat(result).hasSize(1);
+ assertThat(result.get(0).requirements).containsExactly(reqInfo);
+ }
+
+ @Singleton
private static class CustomSubmitRule implements SubmitRule {
+ private final AtomicBoolean block = new AtomicBoolean(true);
+
+ public void block(boolean block) {
+ this.block.set(block);
+ }
+
@Override
public Optional<SubmitRecord> evaluate(ChangeData changeData) {
- SubmitRecord record = new SubmitRecord();
- record.labels = new ArrayList<>();
- record.status = SubmitRecord.Status.NOT_READY;
- record.requirements = ImmutableList.of(req);
- return Optional.of(record);
+ if (block.get()) {
+ SubmitRecord record = new SubmitRecord();
+ record.labels = new ArrayList<>();
+ record.status = SubmitRecord.Status.NOT_READY;
+ record.requirements = ImmutableList.of(req);
+ return Optional.of(record);
+ }
+ return Optional.empty();
}
}
}
diff --git a/javatests/com/google/gerrit/acceptance/api/change/QueryChangeIT.java b/javatests/com/google/gerrit/acceptance/api/change/QueryChangesIT.java
similarity index 99%
rename from javatests/com/google/gerrit/acceptance/api/change/QueryChangeIT.java
rename to javatests/com/google/gerrit/acceptance/api/change/QueryChangesIT.java
index 92ef02c..448f347 100644
--- a/javatests/com/google/gerrit/acceptance/api/change/QueryChangeIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/change/QueryChangesIT.java
@@ -46,7 +46,7 @@
import org.junit.Test;
@NoHttpd
-public class QueryChangeIT extends AbstractDaemonTest {
+public class QueryChangesIT extends AbstractDaemonTest {
@Inject private AccountOperations accountOperations;
@Inject private ProjectOperations projectOperations;
@Inject private Provider<QueryChanges> queryChangesProvider;