Merge "Invoke more plugins through plugin context"
diff --git a/java/com/google/gerrit/acceptance/InProcessProtocol.java b/java/com/google/gerrit/acceptance/InProcessProtocol.java
index de8d10c..401d417 100644
--- a/java/com/google/gerrit/acceptance/InProcessProtocol.java
+++ b/java/com/google/gerrit/acceptance/InProcessProtocol.java
@@ -39,6 +39,7 @@
import com.google.gerrit.server.permissions.PermissionBackend.RefFilterOptions;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.permissions.ProjectPermission;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectState;
import com.google.gerrit.server.util.RequestContext;
@@ -208,7 +209,7 @@
private static class Upload implements UploadPackFactory<Context> {
private final TransferConfig transferConfig;
- private final DynamicSet<UploadPackInitializer> uploadPackInitializers;
+ private final PluginSetContext<UploadPackInitializer> uploadPackInitializers;
private final DynamicSet<PreUploadHook> preUploadHooks;
private final UploadValidators.Factory uploadValidatorsFactory;
private final ThreadLocalRequestContext threadContext;
@@ -218,7 +219,7 @@
@Inject
Upload(
TransferConfig transferConfig,
- DynamicSet<UploadPackInitializer> uploadPackInitializers,
+ PluginSetContext<UploadPackInitializer> uploadPackInitializers,
DynamicSet<PreUploadHook> preUploadHooks,
UploadValidators.Factory uploadValidatorsFactory,
ThreadLocalRequestContext threadContext,
@@ -267,9 +268,7 @@
List<PreUploadHook> hooks = Lists.newArrayList(preUploadHooks);
hooks.add(uploadValidatorsFactory.create(projectState.getProject(), repo, "localhost-test"));
up.setPreUploadHook(PreUploadHookChain.newChain(hooks));
- for (UploadPackInitializer initializer : uploadPackInitializers) {
- initializer.init(req.project, up);
- }
+ uploadPackInitializers.runEach(initializer -> initializer.init(req.project, up));
return up;
}
}
@@ -279,7 +278,7 @@
private final ProjectCache projectCache;
private final AsyncReceiveCommits.Factory factory;
private final TransferConfig config;
- private final DynamicSet<ReceivePackInitializer> receivePackInitializers;
+ private final PluginSetContext<ReceivePackInitializer> receivePackInitializers;
private final DynamicSet<PostReceiveHook> postReceiveHooks;
private final ThreadLocalRequestContext threadContext;
private final PermissionBackend permissionBackend;
@@ -290,7 +289,7 @@
ProjectCache projectCache,
AsyncReceiveCommits.Factory factory,
TransferConfig config,
- DynamicSet<ReceivePackInitializer> receivePackInitializers,
+ PluginSetContext<ReceivePackInitializer> receivePackInitializers,
DynamicSet<PostReceiveHook> postReceiveHooks,
ThreadLocalRequestContext threadContext,
PermissionBackend permissionBackend) {
@@ -339,9 +338,8 @@
rp.setTimeout(config.getTimeout());
rp.setMaxObjectSizeLimit(config.getMaxObjectSizeLimit());
- for (ReceivePackInitializer initializer : receivePackInitializers) {
- initializer.init(projectState.getNameKey(), rp);
- }
+ receivePackInitializers.runEach(
+ initializer -> initializer.init(projectState.getNameKey(), rp));
rp.setPostReceiveHook(PostReceiveHookChain.newChain(Lists.newArrayList(postReceiveHooks)));
return rp;
diff --git a/java/com/google/gerrit/elasticsearch/ElasticIndexVersionManager.java b/java/com/google/gerrit/elasticsearch/ElasticIndexVersionManager.java
index 8011efa..b9d86d5 100644
--- a/java/com/google/gerrit/elasticsearch/ElasticIndexVersionManager.java
+++ b/java/com/google/gerrit/elasticsearch/ElasticIndexVersionManager.java
@@ -17,7 +17,6 @@
import com.google.common.base.Strings;
import com.google.common.flogger.FluentLogger;
import com.google.common.primitives.Ints;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.index.Index;
import com.google.gerrit.index.IndexDefinition;
import com.google.gerrit.index.Schema;
@@ -26,6 +25,7 @@
import com.google.gerrit.server.index.GerritIndexStatus;
import com.google.gerrit.server.index.OnlineUpgradeListener;
import com.google.gerrit.server.index.VersionManager;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
@@ -45,7 +45,7 @@
ElasticIndexVersionManager(
@GerritServerConfig Config cfg,
SitePaths sitePaths,
- DynamicSet<OnlineUpgradeListener> listeners,
+ PluginSetContext<OnlineUpgradeListener> listeners,
Collection<IndexDefinition<?, ?, ?>> defs,
ElasticIndexVersionDiscovery versionDiscovery) {
super(sitePaths, listeners, defs, VersionManager.getOnlineUpgrade(cfg));
diff --git a/java/com/google/gerrit/httpd/GitOverHttpServlet.java b/java/com/google/gerrit/httpd/GitOverHttpServlet.java
index 2e1b562..197a3b9 100644
--- a/java/com/google/gerrit/httpd/GitOverHttpServlet.java
+++ b/java/com/google/gerrit/httpd/GitOverHttpServlet.java
@@ -38,6 +38,7 @@
import com.google.gerrit.server.permissions.PermissionBackend.RefFilterOptions;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.permissions.ProjectPermission;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectState;
import com.google.gerrit.server.util.time.TimeUtil;
@@ -285,14 +286,14 @@
private final TransferConfig config;
private final DynamicSet<PreUploadHook> preUploadHooks;
private final DynamicSet<PostUploadHook> postUploadHooks;
- private final DynamicSet<UploadPackInitializer> uploadPackInitializers;
+ private final PluginSetContext<UploadPackInitializer> uploadPackInitializers;
@Inject
UploadFactory(
TransferConfig tc,
DynamicSet<PreUploadHook> preUploadHooks,
DynamicSet<PostUploadHook> postUploadHooks,
- DynamicSet<UploadPackInitializer> uploadPackInitializers) {
+ PluginSetContext<UploadPackInitializer> uploadPackInitializers) {
this.config = tc;
this.preUploadHooks = preUploadHooks;
this.postUploadHooks = postUploadHooks;
@@ -314,9 +315,7 @@
}
}
ProjectState state = (ProjectState) req.getAttribute(ATT_STATE);
- for (UploadPackInitializer initializer : uploadPackInitializers) {
- initializer.init(state.getNameKey(), up);
- }
+ uploadPackInitializers.runEach(initializer -> initializer.init(state.getNameKey(), up));
return up;
}
}
diff --git a/java/com/google/gerrit/httpd/UniversalWebLoginFilter.java b/java/com/google/gerrit/httpd/UniversalWebLoginFilter.java
index 4878006..6e32980 100644
--- a/java/com/google/gerrit/httpd/UniversalWebLoginFilter.java
+++ b/java/com/google/gerrit/httpd/UniversalWebLoginFilter.java
@@ -14,10 +14,11 @@
package com.google.gerrit.httpd;
-import com.google.gerrit.extensions.registration.DynamicItem;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.IdentifiedUser;
+import com.google.gerrit.server.plugincontext.PluginItemContext;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -34,8 +35,8 @@
import javax.servlet.http.HttpServletResponse;
public class UniversalWebLoginFilter implements Filter {
- private final DynamicItem<WebSession> session;
- private final DynamicSet<WebLoginListener> webLoginListeners;
+ private final PluginItemContext<WebSession> session;
+ private final PluginSetContext<WebLoginListener> webLoginListeners;
private final Provider<CurrentUser> userProvider;
public static ServletModule module() {
@@ -52,8 +53,8 @@
@Inject
public UniversalWebLoginFilter(
- DynamicItem<WebSession> session,
- DynamicSet<WebLoginListener> webLoginListeners,
+ PluginItemContext<WebSession> session,
+ PluginSetContext<WebLoginListener> webLoginListeners,
Provider<CurrentUser> userProvider) {
this.session = session;
this.webLoginListeners = webLoginListeners;
@@ -75,20 +76,18 @@
Optional<IdentifiedUser> loggedInUserAfter = loggedInUser();
if (!loggedInUserBefore.isPresent() && loggedInUserAfter.isPresent()) {
- for (WebLoginListener loginListener : webLoginListeners) {
- loginListener.onLogin(loggedInUserAfter.get(), httpRequest, wrappedResponse);
- }
+ webLoginListeners.runEach(
+ l -> l.onLogin(loggedInUserAfter.get(), httpRequest, wrappedResponse));
} else if (loggedInUserBefore.isPresent() && !loggedInUserAfter.isPresent()) {
- for (WebLoginListener loginListener : webLoginListeners) {
- loginListener.onLogout(loggedInUserBefore.get(), httpRequest, wrappedResponse);
- }
+ webLoginListeners.runEach(
+ l -> l.onLogout(loggedInUserBefore.get(), httpRequest, wrappedResponse));
}
wrappedResponse.play();
}
private Optional<IdentifiedUser> loggedInUser() {
- return session.get().isSignedIn()
+ return session.call(s -> s.isSignedIn())
? Optional.of(userProvider.get().asIdentifiedUser())
: Optional.empty();
}
diff --git a/java/com/google/gerrit/lucene/LuceneVersionManager.java b/java/com/google/gerrit/lucene/LuceneVersionManager.java
index 63abea8..d3a1a24 100644
--- a/java/com/google/gerrit/lucene/LuceneVersionManager.java
+++ b/java/com/google/gerrit/lucene/LuceneVersionManager.java
@@ -16,7 +16,6 @@
import com.google.common.flogger.FluentLogger;
import com.google.common.primitives.Ints;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.index.Index;
import com.google.gerrit.index.IndexDefinition;
import com.google.gerrit.index.Schema;
@@ -25,6 +24,7 @@
import com.google.gerrit.server.index.GerritIndexStatus;
import com.google.gerrit.server.index.OnlineUpgradeListener;
import com.google.gerrit.server.index.VersionManager;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.io.IOException;
@@ -47,7 +47,7 @@
LuceneVersionManager(
@GerritServerConfig Config cfg,
SitePaths sitePaths,
- DynamicSet<OnlineUpgradeListener> listeners,
+ PluginSetContext<OnlineUpgradeListener> listeners,
Collection<IndexDefinition<?, ?, ?>> defs) {
super(sitePaths, listeners, defs, VersionManager.getOnlineUpgrade(cfg));
}
diff --git a/java/com/google/gerrit/server/auth/UniversalAuthBackend.java b/java/com/google/gerrit/server/auth/UniversalAuthBackend.java
index 94faeef..4e93ff2 100644
--- a/java/com/google/gerrit/server/auth/UniversalAuthBackend.java
+++ b/java/com/google/gerrit/server/auth/UniversalAuthBackend.java
@@ -16,7 +16,7 @@
import static java.util.Objects.requireNonNull;
-import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.ArrayList;
@@ -25,10 +25,10 @@
/** Universal implementation of the AuthBackend that works with the injected set of AuthBackends. */
@Singleton
public final class UniversalAuthBackend implements AuthBackend {
- private final DynamicSet<AuthBackend> authBackends;
+ private final PluginSetContext<AuthBackend> authBackends;
@Inject
- UniversalAuthBackend(DynamicSet<AuthBackend> authBackends) {
+ UniversalAuthBackend(PluginSetContext<AuthBackend> authBackends) {
this.authBackends = authBackends;
}
@@ -36,15 +36,16 @@
public AuthUser authenticate(AuthRequest request) throws AuthException {
List<AuthUser> authUsers = new ArrayList<>();
List<AuthException> authExs = new ArrayList<>();
- for (AuthBackend backend : authBackends) {
- try {
- authUsers.add(requireNonNull(backend.authenticate(request)));
- } catch (MissingCredentialsException ex) {
- // Not handled by this backend.
- } catch (AuthException ex) {
- authExs.add(ex);
- }
- }
+ authBackends.runEach(
+ backend -> {
+ try {
+ authUsers.add(requireNonNull(backend.authenticate(request)));
+ } catch (MissingCredentialsException ex) {
+ // Not handled by this backend.
+ } catch (AuthException ex) {
+ authExs.add(ex);
+ }
+ });
// Handle the valid responses
if (authUsers.size() == 1) {
diff --git a/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java b/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java
index a7fdbbd..ee672cd 100644
--- a/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java
+++ b/java/com/google/gerrit/server/cache/ForwardingRemovalListener.java
@@ -17,8 +17,8 @@
import com.google.common.base.Strings;
import com.google.common.cache.RemovalListener;
import com.google.common.cache.RemovalNotification;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.registration.PluginName;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
@@ -35,13 +35,13 @@
ForwardingRemovalListener create(String cacheName);
}
- private final DynamicSet<CacheRemovalListener> listeners;
+ private final PluginSetContext<CacheRemovalListener> listeners;
private final String cacheName;
private String pluginName = PluginName.GERRIT;
@Inject
ForwardingRemovalListener(
- DynamicSet<CacheRemovalListener> listeners, @Assisted String cacheName) {
+ PluginSetContext<CacheRemovalListener> listeners, @Assisted String cacheName) {
this.listeners = listeners;
this.cacheName = cacheName;
}
@@ -56,8 +56,6 @@
@Override
@SuppressWarnings("unchecked")
public void onRemoval(RemovalNotification<K, V> notification) {
- for (CacheRemovalListener<K, V> l : listeners) {
- l.onRemoval(pluginName, cacheName, notification);
- }
+ listeners.runEach(l -> l.onRemoval(pluginName, cacheName, notification));
}
}
diff --git a/java/com/google/gerrit/server/config/GerritServerConfigReloader.java b/java/com/google/gerrit/server/config/GerritServerConfigReloader.java
index 09c10740..5ecf6ed 100644
--- a/java/com/google/gerrit/server/config/GerritServerConfigReloader.java
+++ b/java/com/google/gerrit/server/config/GerritServerConfigReloader.java
@@ -17,9 +17,9 @@
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.server.config.ConfigUpdatedEvent.ConfigUpdateEntry;
import com.google.gerrit.server.config.ConfigUpdatedEvent.UpdateResult;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -29,11 +29,12 @@
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private final GerritServerConfigProvider configProvider;
- private final DynamicSet<GerritConfigListener> configListeners;
+ private final PluginSetContext<GerritConfigListener> configListeners;
@Inject
GerritServerConfigReloader(
- GerritServerConfigProvider configProvider, DynamicSet<GerritConfigListener> configListeners) {
+ GerritServerConfigProvider configProvider,
+ PluginSetContext<GerritConfigListener> configListeners) {
this.configProvider = configProvider;
this.configListeners = configListeners;
}
@@ -53,9 +54,7 @@
public Multimap<UpdateResult, ConfigUpdateEntry> fireUpdatedConfigEvent(
ConfigUpdatedEvent event) {
Multimap<UpdateResult, ConfigUpdateEntry> updates = ArrayListMultimap.create();
- for (GerritConfigListener configListener : configListeners) {
- updates.putAll(configListener.configUpdated(event));
- }
+ configListeners.runEach(l -> updates.putAll(l.configUpdated(event)));
return updates;
}
}
diff --git a/java/com/google/gerrit/server/extensions/events/PluginEvent.java b/java/com/google/gerrit/server/extensions/events/PluginEvent.java
index 8680ab1..60d27c9 100644
--- a/java/com/google/gerrit/server/extensions/events/PluginEvent.java
+++ b/java/com/google/gerrit/server/extensions/events/PluginEvent.java
@@ -15,16 +15,16 @@
package com.google.gerrit.server.extensions.events;
import com.google.gerrit.extensions.events.PluginEventListener;
-import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@Singleton
public class PluginEvent {
- private final DynamicSet<PluginEventListener> listeners;
+ private final PluginSetContext<PluginEventListener> listeners;
@Inject
- PluginEvent(DynamicSet<PluginEventListener> listeners) {
+ PluginEvent(PluginSetContext<PluginEventListener> listeners) {
this.listeners = listeners;
}
@@ -33,9 +33,7 @@
return;
}
Event e = new Event(pluginName, type, data);
- for (PluginEventListener l : listeners) {
- l.onPluginEvent(e);
- }
+ listeners.runEach(l -> l.onPluginEvent(e));
}
private static class Event extends AbstractNoNotifyEvent implements PluginEventListener.Event {
diff --git a/java/com/google/gerrit/server/git/GarbageCollection.java b/java/com/google/gerrit/server/git/GarbageCollection.java
index 3624695..75c9012 100644
--- a/java/com/google/gerrit/server/git/GarbageCollection.java
+++ b/java/com/google/gerrit/server/git/GarbageCollection.java
@@ -18,10 +18,10 @@
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.common.data.GarbageCollectionResult;
import com.google.gerrit.extensions.events.GarbageCollectorListener;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.config.GcConfig;
import com.google.gerrit.server.extensions.events.AbstractNoNotifyEvent;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import java.io.PrintWriter;
import java.util.List;
@@ -43,7 +43,7 @@
private final GitRepositoryManager repoManager;
private final GarbageCollectionQueue gcQueue;
private final GcConfig gcConfig;
- private final DynamicSet<GarbageCollectorListener> listeners;
+ private final PluginSetContext<GarbageCollectorListener> listeners;
public interface Factory {
GarbageCollection create();
@@ -54,7 +54,7 @@
GitRepositoryManager repoManager,
GarbageCollectionQueue gcQueue,
GcConfig config,
- DynamicSet<GarbageCollectorListener> listeners) {
+ PluginSetContext<GarbageCollectorListener> listeners) {
this.repoManager = repoManager;
this.gcQueue = gcQueue;
this.gcConfig = config;
@@ -113,13 +113,7 @@
return;
}
Event event = new Event(p, statistics);
- for (GarbageCollectorListener l : listeners) {
- try {
- l.onGarbageCollected(event);
- } catch (RuntimeException e) {
- logger.atWarning().withCause(e).log("Failure in GarbageCollectorListener");
- }
- }
+ listeners.runEach(l -> l.onGarbageCollected(event));
}
private static void logGcInfo(Project.NameKey projectName, String msg) {
diff --git a/java/com/google/gerrit/server/git/receive/LazyPostReceiveHookChain.java b/java/com/google/gerrit/server/git/receive/LazyPostReceiveHookChain.java
index 7adb21b..0f081be 100644
--- a/java/com/google/gerrit/server/git/receive/LazyPostReceiveHookChain.java
+++ b/java/com/google/gerrit/server/git/receive/LazyPostReceiveHookChain.java
@@ -14,7 +14,7 @@
package com.google.gerrit.server.git.receive;
-import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import java.util.Collection;
import org.eclipse.jgit.transport.PostReceiveHook;
@@ -22,17 +22,15 @@
import org.eclipse.jgit.transport.ReceivePack;
class LazyPostReceiveHookChain implements PostReceiveHook {
- private final DynamicSet<PostReceiveHook> hooks;
+ private final PluginSetContext<PostReceiveHook> hooks;
@Inject
- LazyPostReceiveHookChain(DynamicSet<PostReceiveHook> hooks) {
+ LazyPostReceiveHookChain(PluginSetContext<PostReceiveHook> hooks) {
this.hooks = hooks;
}
@Override
public void onPostReceive(ReceivePack rp, Collection<ReceiveCommand> commands) {
- for (PostReceiveHook h : hooks) {
- h.onPostReceive(rp, commands);
- }
+ hooks.runEach(h -> h.onPostReceive(rp, commands));
}
}
diff --git a/java/com/google/gerrit/server/index/OnlineReindexer.java b/java/com/google/gerrit/server/index/OnlineReindexer.java
index ec0e1d4..8a1776d 100644
--- a/java/com/google/gerrit/server/index/OnlineReindexer.java
+++ b/java/com/google/gerrit/server/index/OnlineReindexer.java
@@ -18,11 +18,11 @@
import com.google.common.collect.Lists;
import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.index.Index;
import com.google.gerrit.index.IndexCollection;
import com.google.gerrit.index.IndexDefinition;
import com.google.gerrit.index.SiteIndexer;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -35,7 +35,7 @@
private final SiteIndexer<K, V, I> batchIndexer;
private final int oldVersion;
private final int newVersion;
- private final DynamicSet<OnlineUpgradeListener> listeners;
+ private final PluginSetContext<OnlineUpgradeListener> listeners;
private I index;
private final AtomicBoolean running = new AtomicBoolean();
@@ -43,7 +43,7 @@
IndexDefinition<K, V, I> def,
int oldVersion,
int newVersion,
- DynamicSet<OnlineUpgradeListener> listeners) {
+ PluginSetContext<OnlineUpgradeListener> listeners) {
this.name = def.getName();
this.indexes = def.getIndexCollection();
this.batchIndexer = def.getSiteIndexer();
@@ -68,9 +68,7 @@
} finally {
running.set(false);
if (!ok) {
- for (OnlineUpgradeListener listener : listeners) {
- listener.onFailure(name, oldVersion, newVersion);
- }
+ listeners.runEach(listener -> listener.onFailure(name, oldVersion, newVersion));
}
}
}
@@ -94,9 +92,7 @@
}
private void reindex() throws IOException {
- for (OnlineUpgradeListener listener : listeners) {
- listener.onStart(name, oldVersion, newVersion);
- }
+ listeners.runEach(listener -> listener.onStart(name, oldVersion, newVersion));
index =
requireNonNull(
indexes.getWriteIndex(newVersion),
@@ -118,9 +114,7 @@
}
logger.atInfo().log("Reindex %s to version %s complete", name, version(index));
activateIndex();
- for (OnlineUpgradeListener listener : listeners) {
- listener.onSuccess(name, oldVersion, newVersion);
- }
+ listeners.runEach(listener -> listener.onSuccess(name, oldVersion, newVersion));
}
public void activateIndex() {
diff --git a/java/com/google/gerrit/server/index/VersionManager.java b/java/com/google/gerrit/server/index/VersionManager.java
index f37472c..3417379 100644
--- a/java/com/google/gerrit/server/index/VersionManager.java
+++ b/java/com/google/gerrit/server/index/VersionManager.java
@@ -21,13 +21,13 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gerrit.extensions.events.LifecycleListener;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.index.Index;
import com.google.gerrit.index.IndexCollection;
import com.google.gerrit.index.IndexDefinition;
import com.google.gerrit.index.IndexDefinition.IndexFactory;
import com.google.gerrit.index.Schema;
import com.google.gerrit.server.config.SitePaths;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.ProvisionException;
import java.io.IOException;
import java.util.Collection;
@@ -61,7 +61,7 @@
protected final String runReindexMsg;
protected final SitePaths sitePaths;
- private final DynamicSet<OnlineUpgradeListener> listeners;
+ private final PluginSetContext<OnlineUpgradeListener> listeners;
// The following fields must be accessed synchronized on this.
protected final Map<String, IndexDefinition<?, ?, ?>> defs;
@@ -69,7 +69,7 @@
protected VersionManager(
SitePaths sitePaths,
- DynamicSet<OnlineUpgradeListener> listeners,
+ PluginSetContext<OnlineUpgradeListener> listeners,
Collection<IndexDefinition<?, ?, ?>> defs,
boolean onlineUpgrade) {
this.sitePaths = sitePaths;
diff --git a/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java b/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java
index 01ac3e2..ff935d8 100644
--- a/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java
+++ b/java/com/google/gerrit/server/notedb/rebuild/NoteDbMigrator.java
@@ -45,7 +45,6 @@
import com.google.common.util.concurrent.MoreExecutors;
import com.google.gerrit.common.FormatUtil;
import com.google.gerrit.common.Nullable;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.git.LockFailureException;
import com.google.gerrit.git.RefUpdateUtil;
import com.google.gerrit.reviewdb.client.Change;
@@ -72,6 +71,7 @@
import com.google.gerrit.server.notedb.PrimaryStorageMigrator.NoNoteDbStateException;
import com.google.gerrit.server.notedb.RepoSequence;
import com.google.gerrit.server.notedb.rebuild.ChangeRebuilder.NoPatchSetsException;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gerrit.server.update.ChainedReceiveCommands;
import com.google.gerrit.server.util.ManualRequestContext;
@@ -150,7 +150,7 @@
private final WorkQueue workQueue;
private final MutableNotesMigration globalNotesMigration;
private final PrimaryStorageMigrator primaryStorageMigrator;
- private final DynamicSet<NotesMigrationStateListener> listeners;
+ private final PluginSetContext<NotesMigrationStateListener> listeners;
private int threads;
private ImmutableList<Project.NameKey> projects = ImmutableList.of();
@@ -179,7 +179,7 @@
WorkQueue workQueue,
MutableNotesMigration globalNotesMigration,
PrimaryStorageMigrator primaryStorageMigrator,
- DynamicSet<NotesMigrationStateListener> listeners) {
+ PluginSetContext<NotesMigrationStateListener> listeners) {
// Reload gerrit.config/notedb.config on each migrator invocation, in case a previous
// migration in the same process modified the on-disk contents. This ensures the defaults for
// trial/autoMigrate get set correctly below.
@@ -390,7 +390,7 @@
private final ChangeRebuilderImpl rebuilder;
private final MutableNotesMigration globalNotesMigration;
private final PrimaryStorageMigrator primaryStorageMigrator;
- private final DynamicSet<NotesMigrationStateListener> listeners;
+ private final PluginSetContext<NotesMigrationStateListener> listeners;
private final ListeningExecutorService executor;
private final ImmutableList<Project.NameKey> projects;
@@ -416,7 +416,7 @@
ChangeRebuilderImpl rebuilder,
MutableNotesMigration globalNotesMigration,
PrimaryStorageMigrator primaryStorageMigrator,
- DynamicSet<NotesMigrationStateListener> listeners,
+ PluginSetContext<NotesMigrationStateListener> listeners,
ListeningExecutorService executor,
ImmutableList<Project.NameKey> projects,
ImmutableList<Change.Id> changes,
@@ -737,9 +737,7 @@
private void preStateChange(NotesMigrationState oldState, NotesMigrationState newState)
throws IOException {
- for (NotesMigrationStateListener listener : listeners) {
- listener.preStateChange(oldState, newState);
- }
+ listeners.runEach(l -> l.preStateChange(oldState, newState), IOException.class);
}
private void setControlFlags() throws MigrationException {
diff --git a/java/com/google/gerrit/server/plugins/UniversalServerPluginProvider.java b/java/com/google/gerrit/server/plugins/UniversalServerPluginProvider.java
index 4d89482..22cd84c 100644
--- a/java/com/google/gerrit/server/plugins/UniversalServerPluginProvider.java
+++ b/java/com/google/gerrit/server/plugins/UniversalServerPluginProvider.java
@@ -15,8 +15,8 @@
package com.google.gerrit.server.plugins;
import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.registration.PluginName;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.nio.file.Path;
@@ -28,10 +28,10 @@
class UniversalServerPluginProvider implements ServerPluginProvider {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
- private final DynamicSet<ServerPluginProvider> serverPluginProviders;
+ private final PluginSetContext<ServerPluginProvider> serverPluginProviders;
@Inject
- UniversalServerPluginProvider(DynamicSet<ServerPluginProvider> sf) {
+ UniversalServerPluginProvider(PluginSetContext<ServerPluginProvider> sf) {
this.serverPluginProviders = sf;
}
@@ -80,15 +80,16 @@
private List<ServerPluginProvider> providersForHandlingPlugin(Path srcPath) {
List<ServerPluginProvider> providers = new ArrayList<>();
- for (ServerPluginProvider serverPluginProvider : serverPluginProviders) {
- boolean handles = serverPluginProvider.handles(srcPath);
- logger.atFine().log(
- "File %s handled by %s ? => %s",
- srcPath, serverPluginProvider.getProviderPluginName(), handles);
- if (handles) {
- providers.add(serverPluginProvider);
- }
- }
+ serverPluginProviders.runEach(
+ serverPluginProvider -> {
+ boolean handles = serverPluginProvider.handles(srcPath);
+ logger.atFine().log(
+ "File %s handled by %s ? => %s",
+ srcPath, serverPluginProvider.getProviderPluginName(), handles);
+ if (handles) {
+ providers.add(serverPluginProvider);
+ }
+ });
return providers;
}
}
diff --git a/java/com/google/gerrit/server/restapi/account/CreateAccount.java b/java/com/google/gerrit/server/restapi/account/CreateAccount.java
index 4185f36..2f9f2a9 100644
--- a/java/com/google/gerrit/server/restapi/account/CreateAccount.java
+++ b/java/com/google/gerrit/server/restapi/account/CreateAccount.java
@@ -27,7 +27,6 @@
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.api.accounts.AccountInput;
import com.google.gerrit.extensions.common.AccountInfo;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.IdString;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -51,6 +50,7 @@
import com.google.gerrit.server.group.db.InternalGroupUpdate;
import com.google.gerrit.server.mail.send.OutgoingEmailValidator;
import com.google.gerrit.server.permissions.PermissionBackendException;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.gerrit.server.ssh.SshKeyCache;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
@@ -73,7 +73,7 @@
private final SshKeyCache sshKeyCache;
private final Provider<AccountsUpdate> accountsUpdateProvider;
private final AccountLoader.Factory infoLoader;
- private final DynamicSet<AccountExternalIdCreator> externalIdCreators;
+ private final PluginSetContext<AccountExternalIdCreator> externalIdCreators;
private final Provider<GroupsUpdate> groupsUpdate;
private final OutgoingEmailValidator validator;
@@ -85,7 +85,7 @@
SshKeyCache sshKeyCache,
@UserInitiated Provider<AccountsUpdate> accountsUpdateProvider,
AccountLoader.Factory infoLoader,
- DynamicSet<AccountExternalIdCreator> externalIdCreators,
+ PluginSetContext<AccountExternalIdCreator> externalIdCreators,
@UserInitiated Provider<GroupsUpdate> groupsUpdate,
OutgoingEmailValidator validator) {
this.seq = seq;
@@ -131,9 +131,7 @@
}
extIds.add(ExternalId.createUsername(username, accountId, input.httpPassword));
- for (AccountExternalIdCreator c : externalIdCreators) {
- extIds.addAll(c.create(accountId, username, input.email));
- }
+ externalIdCreators.runEach(c -> extIds.addAll(c.create(accountId, username, input.email)));
try {
accountsUpdateProvider
diff --git a/java/com/google/gerrit/server/restapi/config/ListTopMenus.java b/java/com/google/gerrit/server/restapi/config/ListTopMenus.java
index 7a85bcd..c296a7d 100644
--- a/java/com/google/gerrit/server/restapi/config/ListTopMenus.java
+++ b/java/com/google/gerrit/server/restapi/config/ListTopMenus.java
@@ -14,10 +14,10 @@
package com.google.gerrit.server.restapi.config;
-import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.extensions.webui.TopMenu;
import com.google.gerrit.server.config.ConfigResource;
+import com.google.gerrit.server.plugincontext.PluginSetContext;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.ArrayList;
@@ -25,19 +25,17 @@
@Singleton
class ListTopMenus implements RestReadView<ConfigResource> {
- private final DynamicSet<TopMenu> extensions;
+ private final PluginSetContext<TopMenu> extensions;
@Inject
- ListTopMenus(DynamicSet<TopMenu> extensions) {
+ ListTopMenus(PluginSetContext<TopMenu> extensions) {
this.extensions = extensions;
}
@Override
public List<TopMenu.MenuEntry> apply(ConfigResource resource) {
List<TopMenu.MenuEntry> entries = new ArrayList<>();
- for (TopMenu extension : extensions) {
- entries.addAll(extension.getEntries());
- }
+ extensions.runEach(extension -> entries.addAll(extension.getEntries()));
return entries;
}
}