Merge changes from topic "get-all-refs"
* changes:
DefaultAdvertiseRefsHook: Avoid Repository#getAllRefs
DefaultRefFilter: Avoid Repository#getAllRefs
CommitsCollection: Avoid Repository#getAllRefs
AbstractDaemonTest: Avoid Repository#getAllRefs
Group checker: Avoid Repository#getAllRefs
ProjectResetter: Avoid Repository#getAllRefs
ChangeUtil: Remove javadoc references to deprecated JGit methods
* submodules:
* Update plugins/replication from branch 'master'
to 0268da0f5f275eef613014548f60771d891f761d
- PushOne: Avoid deprecated Repository#getAllRefs method
The replacement is a stream expression. I think this implementation
still smells, and there must be a better way to do it with a list-based
approach, especially now that ForProject#filter has a variant that takes
a List. But this fix is quick and easy to reason about.
Change-Id: Idd783eed0b0e2ac98f93790af62b5ae288629fcb
diff --git a/Documentation/config-plugins.txt b/Documentation/config-plugins.txt
index bda0b67..8d5dc16 100644
--- a/Documentation/config-plugins.txt
+++ b/Documentation/config-plugins.txt
@@ -470,13 +470,21 @@
[[oauth-authentication-provider]]
=== OAuth authentication provider
This plugin enables Gerrit to use OAuth2 protocol for authentication.
-Two different OAuth providers are supported:
+Several OAuth2 providers are supported:
+* AirVantage
+* Bitbucket
+* CAS
+* CoreOS Dex
+* Facebook
* GitHub
+* GitLab
* Google
+* Keycloak
+* Office365
-https://github.com/davido/gerrit-oauth-provider[Project] |
-https://github.com/davido/gerrit-oauth-provider/wiki/Getting-Started[Configuration]
+link:https://gerrit-review.googlesource.com/admin/repos/plugins/oauth[Project] |
+link:https://gerrit.googlesource.com/plugins/oauth/+doc/master/src/main/resources/Documentation/config.md[Configuration]
[[owners]]
=== owners
@@ -604,6 +612,13 @@
link:https://gerrit.googlesource.com/plugins/scripting/groovy-provider/+doc/master/src/main/resources/Documentation/about.md[
Documentation]
+[[saml-authentication-provider]]
+=== SAML2 authentication provider
+
+This plugin enables Gerrit to use SAML2 protocol for authentication.
+
+link:https://gerrit-review.googlesource.com/admin/repos/plugins/saml[Project]
+
[[scala-provider]]
=== scripting/scala-provider
diff --git a/java/com/google/gerrit/acceptance/GerritServer.java b/java/com/google/gerrit/acceptance/GerritServer.java
index 794fe80..6f4c98a 100644
--- a/java/com/google/gerrit/acceptance/GerritServer.java
+++ b/java/com/google/gerrit/acceptance/GerritServer.java
@@ -388,6 +388,7 @@
cfg.setBoolean("httpd", null, "requestLog", false);
cfg.setBoolean("sshd", null, "requestLog", false);
cfg.setBoolean("index", "lucene", "testInmemory", true);
+ cfg.setBoolean("index", null, "onlineUpgrade", false);
cfg.setString("gitweb", null, "cgi", "");
cfg.setString(
"accountPatchReviewDb", null, "url", JdbcAccountPatchReviewStore.TEST_IN_MEMORY_URL);
diff --git a/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java b/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java
index 1e41985..15d6126 100644
--- a/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java
+++ b/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java
@@ -25,20 +25,15 @@
public class ElasticIndexModule extends AbstractIndexModule {
public static ElasticIndexModule singleVersionWithExplicitVersions(
Map<String, Integer> versions, int threads, boolean slave) {
- return new ElasticIndexModule(versions, threads, false, slave);
+ return new ElasticIndexModule(versions, threads, slave);
}
- public static ElasticIndexModule latestVersionWithOnlineUpgrade(boolean slave) {
- return new ElasticIndexModule(null, 0, true, slave);
+ public static ElasticIndexModule latestVersion(boolean slave) {
+ return new ElasticIndexModule(null, 0, slave);
}
- public static ElasticIndexModule latestVersionWithoutOnlineUpgrade(boolean slave) {
- return new ElasticIndexModule(null, 0, false, slave);
- }
-
- private ElasticIndexModule(
- Map<String, Integer> singleVersions, int threads, boolean onlineUpgrade, boolean slave) {
- super(singleVersions, threads, onlineUpgrade, slave);
+ private ElasticIndexModule(Map<String, Integer> singleVersions, int threads, boolean slave) {
+ super(singleVersions, threads, slave);
}
@Override
diff --git a/java/com/google/gerrit/httpd/init/WebAppInitializer.java b/java/com/google/gerrit/httpd/init/WebAppInitializer.java
index 2b55760..aa5362b 100644
--- a/java/com/google/gerrit/httpd/init/WebAppInitializer.java
+++ b/java/com/google/gerrit/httpd/init/WebAppInitializer.java
@@ -72,6 +72,8 @@
import com.google.gerrit.server.git.WorkQueue;
import com.google.gerrit.server.index.IndexModule;
import com.google.gerrit.server.index.IndexModule.IndexType;
+import com.google.gerrit.server.index.OnlineUpgrader;
+import com.google.gerrit.server.index.VersionManager;
import com.google.gerrit.server.mail.SignedTokenEmailTokenVerifier;
import com.google.gerrit.server.mail.receive.MailReceiver;
import com.google.gerrit.server.mail.send.SmtpEmailSender;
@@ -296,21 +298,6 @@
modules.add(new SignedTokenEmailTokenVerifier.Module());
modules.add(new LocalMergeSuperSetComputation.Module());
modules.add(new AuditModule());
-
- // Plugin module needs to be inserted *before* the index module.
- // There is the concept of LifecycleModule, in Gerrit's own extension
- // to Guice, which has these:
- // listener().to(SomeClassImplementingLifecycleListener.class);
- // and the start() methods of each such listener are executed in the
- // order they are declared.
- // Makes sure that PluginLoader.start() is executed before the
- // LuceneIndexModule.start() so that plugins get loaded and the respective
- // Guice modules installed so that the on-line reindexing will happen
- // with the proper classes (e.g. group backends, custom Prolog
- // predicates) and the associated rules ready to be evaluated.
- modules.add(new PluginModule());
-
- modules.add(new RestApiModule());
modules.add(new GpgModule(config));
modules.add(new StartupChecks.Module());
@@ -318,6 +305,12 @@
// work queue can get stuck waiting on index futures that will never return.
modules.add(createIndexModule());
+ modules.add(new PluginModule());
+ if (VersionManager.getOnlineUpgrade(config)) {
+ modules.add(new OnlineUpgrader.Module());
+ }
+
+ modules.add(new RestApiModule());
modules.add(new WorkQueue.Module());
modules.add(new GerritInstanceNameModule());
modules.add(
@@ -349,9 +342,9 @@
private Module createIndexModule() {
switch (indexType) {
case LUCENE:
- return LuceneIndexModule.latestVersionWithOnlineUpgrade(false);
+ return LuceneIndexModule.latestVersion(false);
case ELASTICSEARCH:
- return ElasticIndexModule.latestVersionWithOnlineUpgrade(false);
+ return ElasticIndexModule.latestVersion(false);
default:
throw new IllegalStateException("unsupported index.type = " + indexType);
}
diff --git a/java/com/google/gerrit/lucene/LuceneIndexModule.java b/java/com/google/gerrit/lucene/LuceneIndexModule.java
index 121b96b..302a2da 100644
--- a/java/com/google/gerrit/lucene/LuceneIndexModule.java
+++ b/java/com/google/gerrit/lucene/LuceneIndexModule.java
@@ -29,29 +29,24 @@
public class LuceneIndexModule extends AbstractIndexModule {
public static LuceneIndexModule singleVersionAllLatest(int threads, boolean slave) {
- return new LuceneIndexModule(ImmutableMap.of(), threads, false, slave);
+ return new LuceneIndexModule(ImmutableMap.of(), threads, slave);
}
public static LuceneIndexModule singleVersionWithExplicitVersions(
Map<String, Integer> versions, int threads, boolean slave) {
- return new LuceneIndexModule(versions, threads, false, slave);
+ return new LuceneIndexModule(versions, threads, slave);
}
- public static LuceneIndexModule latestVersionWithOnlineUpgrade(boolean slave) {
- return new LuceneIndexModule(null, 0, true, slave);
- }
-
- public static LuceneIndexModule latestVersionWithoutOnlineUpgrade(boolean slave) {
- return new LuceneIndexModule(null, 0, false, slave);
+ public static LuceneIndexModule latestVersion(boolean slave) {
+ return new LuceneIndexModule(null, 0, slave);
}
static boolean isInMemoryTest(Config cfg) {
return cfg.getBoolean("index", "lucene", "testInmemory", false);
}
- private LuceneIndexModule(
- Map<String, Integer> singleVersions, int threads, boolean onlineUpgrade, boolean slave) {
- super(singleVersions, threads, onlineUpgrade, slave);
+ private LuceneIndexModule(Map<String, Integer> singleVersions, int threads, boolean slave) {
+ super(singleVersions, threads, slave);
}
@Override
diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java
index 56a03b4..c280a2d 100644
--- a/java/com/google/gerrit/pgm/Daemon.java
+++ b/java/com/google/gerrit/pgm/Daemon.java
@@ -79,6 +79,7 @@
import com.google.gerrit.server.group.PeriodicGroupIndexer;
import com.google.gerrit.server.index.IndexModule;
import com.google.gerrit.server.index.IndexModule.IndexType;
+import com.google.gerrit.server.index.OnlineUpgrader;
import com.google.gerrit.server.index.VersionManager;
import com.google.gerrit.server.mail.SignedTokenEmailTokenVerifier;
import com.google.gerrit.server.mail.receive.MailReceiver;
@@ -377,19 +378,6 @@
modules.add(new DropWizardMetricMaker.RestModule());
modules.add(new LogFileCompressor.Module());
- // Plugin module needs to be inserted *before* the index module.
- // There is the concept of LifecycleModule, in Gerrit's own extension
- // to Guice, which has these:
- // listener().to(SomeClassImplementingLifecycleListener.class);
- // and the start() methods of each such listener are executed in the
- // order they are declared.
- // Makes sure that PluginLoader.start() is executed before the
- // LuceneIndexModule.start() so that plugins get loaded and the respective
- // Guice modules installed so that the on-line reindexing will happen
- // with the proper classes (e.g. group backends, custom Prolog
- // predicates) and the associated rules ready to be evaluated.
- modules.add(new PluginModule());
-
// Index module shutdown must happen before work queue shutdown, otherwise
// work queue can get stuck waiting on index futures that will never return.
modules.add(createIndexModule());
@@ -422,6 +410,10 @@
modules.add(new AuditModule());
}
modules.add(new SignedTokenEmailTokenVerifier.Module());
+ modules.add(new PluginModule());
+ if (VersionManager.getOnlineUpgrade(config)) {
+ modules.add(new OnlineUpgrader.Module());
+ }
modules.add(new RestApiModule());
modules.add(new GpgModule(config));
modules.add(new StartupChecks.Module());
@@ -482,16 +474,11 @@
if (luceneModule != null) {
return luceneModule;
}
- boolean onlineUpgrade = VersionManager.getOnlineUpgrade(config);
switch (indexType) {
case LUCENE:
- return onlineUpgrade
- ? LuceneIndexModule.latestVersionWithOnlineUpgrade(slave)
- : LuceneIndexModule.latestVersionWithoutOnlineUpgrade(slave);
+ return LuceneIndexModule.latestVersion(slave);
case ELASTICSEARCH:
- return onlineUpgrade
- ? ElasticIndexModule.latestVersionWithOnlineUpgrade(slave)
- : ElasticIndexModule.latestVersionWithoutOnlineUpgrade(slave);
+ return ElasticIndexModule.latestVersion(slave);
default:
throw new IllegalStateException("unsupported index.type = " + indexType);
}
diff --git a/java/com/google/gerrit/server/index/AbstractIndexModule.java b/java/com/google/gerrit/server/index/AbstractIndexModule.java
index 12aedfd..352ea4b 100644
--- a/java/com/google/gerrit/server/index/AbstractIndexModule.java
+++ b/java/com/google/gerrit/server/index/AbstractIndexModule.java
@@ -14,8 +14,6 @@
package com.google.gerrit.server.index;
-import static com.google.common.base.Preconditions.checkArgument;
-
import com.google.gerrit.index.IndexConfig;
import com.google.gerrit.index.Schema;
import com.google.gerrit.index.project.ProjectIndex;
@@ -35,17 +33,11 @@
private final int threads;
private final Map<String, Integer> singleVersions;
- private final boolean onlineUpgrade;
private final boolean slave;
- protected AbstractIndexModule(
- Map<String, Integer> singleVersions, int threads, boolean onlineUpgrade, boolean slave) {
- if (singleVersions != null) {
- checkArgument(!onlineUpgrade, "online upgrade is incompatible with single version map");
- }
+ protected AbstractIndexModule(Map<String, Integer> singleVersions, int threads, boolean slave) {
this.singleVersions = singleVersions;
this.threads = threads;
- this.onlineUpgrade = onlineUpgrade;
this.slave = slave;
}
@@ -113,9 +105,6 @@
Class<? extends VersionManager> versionManagerClass = getVersionManager();
bind(VersionManager.class).to(versionManagerClass);
listener().to(versionManagerClass);
- if (onlineUpgrade) {
- listener().to(OnlineUpgrader.class);
- }
}
}
}
diff --git a/java/com/google/gerrit/server/index/OnlineUpgrader.java b/java/com/google/gerrit/server/index/OnlineUpgrader.java
index 9fc3aa9..bfcf55f 100644
--- a/java/com/google/gerrit/server/index/OnlineUpgrader.java
+++ b/java/com/google/gerrit/server/index/OnlineUpgrader.java
@@ -15,10 +15,18 @@
package com.google.gerrit.server.index;
import com.google.gerrit.extensions.events.LifecycleListener;
+import com.google.gerrit.lifecycle.LifecycleModule;
import com.google.inject.Inject;
/** Listener to handle upgrading index schema versions at startup. */
public class OnlineUpgrader implements LifecycleListener {
+ public static class Module extends LifecycleModule {
+ @Override
+ protected void configure() {
+ listener().to(OnlineUpgrader.class);
+ }
+ }
+
private final VersionManager versionManager;
@Inject
diff --git a/plugins/replication b/plugins/replication
index 4fad0c8..0268da0 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit 4fad0c870d80daf274d6aa542a2be554cf4a1044
+Subproject commit 0268da0f5f275eef613014548f60771d891f761d