Expose the GerritRuntime to ServerPlugin
Change-Id: I42a0032ff0387e9e58e639be7e393ec31bc0c94b
This commit is contained in:
@@ -152,7 +152,8 @@ public class JarPluginProvider implements ServerPluginProvider {
|
||||
jarScanner,
|
||||
description.dataDir,
|
||||
pluginLoader,
|
||||
pluginConfig.getString("metricsPrefix", null));
|
||||
pluginConfig.getString("metricsPrefix", null),
|
||||
description.gerritRuntime);
|
||||
plugin.setCleanupHandle(new CleanupHandle(tmp, jarFile));
|
||||
keep = true;
|
||||
return plugin;
|
||||
|
@@ -33,6 +33,7 @@ import com.google.gerrit.server.PluginUser;
|
||||
import com.google.gerrit.server.cache.PersistentCacheFactory;
|
||||
import com.google.gerrit.server.config.CanonicalWebUrl;
|
||||
import com.google.gerrit.server.config.ConfigUtil;
|
||||
import com.google.gerrit.server.config.GerritRuntime;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
import com.google.gerrit.server.config.SitePaths;
|
||||
import com.google.gerrit.server.plugins.ServerPluginProvider.PluginDescription;
|
||||
@@ -89,6 +90,7 @@ public class PluginLoader implements LifecycleListener {
|
||||
private final PersistentCacheFactory persistentCacheFactory;
|
||||
private final boolean remoteAdmin;
|
||||
private final UniversalServerPluginProvider serverPluginFactory;
|
||||
private final GerritRuntime gerritRuntime;
|
||||
|
||||
@Inject
|
||||
public PluginLoader(
|
||||
@@ -100,7 +102,8 @@ public class PluginLoader implements LifecycleListener {
|
||||
@GerritServerConfig Config cfg,
|
||||
@CanonicalWebUrl Provider<String> provider,
|
||||
PersistentCacheFactory cacheFactory,
|
||||
UniversalServerPluginProvider pluginFactory) {
|
||||
UniversalServerPluginProvider pluginFactory,
|
||||
GerritRuntime gerritRuntime) {
|
||||
pluginsDir = sitePaths.plugins_dir;
|
||||
dataDir = sitePaths.data_dir;
|
||||
tempDir = sitePaths.tmp_dir;
|
||||
@@ -113,6 +116,7 @@ public class PluginLoader implements LifecycleListener {
|
||||
serverPluginFactory = pluginFactory;
|
||||
|
||||
remoteAdmin = cfg.getBoolean("plugins", null, "allowRemoteAdmin", false);
|
||||
this.gerritRuntime = gerritRuntime;
|
||||
|
||||
long checkFrequency =
|
||||
ConfigUtil.getTimeUnit(
|
||||
@@ -611,7 +615,8 @@ public class PluginLoader implements LifecycleListener {
|
||||
new PluginDescription(
|
||||
pluginUserFactory.create(name),
|
||||
getPluginCanonicalWebUrl(name),
|
||||
getPluginDataDir(name)));
|
||||
getPluginDataDir(name),
|
||||
gerritRuntime));
|
||||
}
|
||||
|
||||
// Only one active plugin per plugin name can exist for each plugin name.
|
||||
|
@@ -21,6 +21,7 @@ import com.google.gerrit.extensions.registration.RegistrationHandle;
|
||||
import com.google.gerrit.extensions.registration.ReloadableRegistrationHandle;
|
||||
import com.google.gerrit.lifecycle.LifecycleManager;
|
||||
import com.google.gerrit.server.PluginUser;
|
||||
import com.google.gerrit.server.config.GerritRuntime;
|
||||
import com.google.gerrit.server.util.RequestContext;
|
||||
import com.google.inject.Guice;
|
||||
import com.google.inject.Injector;
|
||||
@@ -44,6 +45,7 @@ public class ServerPlugin extends Plugin {
|
||||
private final String pluginCanonicalWebUrl;
|
||||
private final ClassLoader classLoader;
|
||||
private final String metricsPrefix;
|
||||
private final GerritRuntime gerritRuntime;
|
||||
protected Class<? extends Module> sysModule;
|
||||
protected Class<? extends Module> sshModule;
|
||||
protected Class<? extends Module> httpModule;
|
||||
@@ -63,7 +65,8 @@ public class ServerPlugin extends Plugin {
|
||||
PluginContentScanner scanner,
|
||||
Path dataDir,
|
||||
ClassLoader classLoader,
|
||||
String metricsPrefix)
|
||||
String metricsPrefix,
|
||||
GerritRuntime gerritRuntime)
|
||||
throws InvalidPluginException {
|
||||
super(
|
||||
name,
|
||||
@@ -77,33 +80,12 @@ public class ServerPlugin extends Plugin {
|
||||
this.classLoader = classLoader;
|
||||
this.manifest = scanner == null ? null : getPluginManifest(scanner);
|
||||
this.metricsPrefix = metricsPrefix;
|
||||
this.gerritRuntime = gerritRuntime;
|
||||
if (manifest != null) {
|
||||
loadGuiceModules(manifest, classLoader);
|
||||
}
|
||||
}
|
||||
|
||||
public ServerPlugin(
|
||||
String name,
|
||||
String pluginCanonicalWebUrl,
|
||||
PluginUser pluginUser,
|
||||
Path srcJar,
|
||||
FileSnapshot snapshot,
|
||||
PluginContentScanner scanner,
|
||||
Path dataDir,
|
||||
ClassLoader classLoader)
|
||||
throws InvalidPluginException {
|
||||
this(
|
||||
name,
|
||||
pluginCanonicalWebUrl,
|
||||
pluginUser,
|
||||
srcJar,
|
||||
snapshot,
|
||||
scanner,
|
||||
dataDir,
|
||||
classLoader,
|
||||
null);
|
||||
}
|
||||
|
||||
private void loadGuiceModules(Manifest manifest, ClassLoader classLoader)
|
||||
throws InvalidPluginException {
|
||||
Attributes main = manifest.getMainAttributes();
|
||||
|
@@ -16,6 +16,7 @@ package com.google.gerrit.server.plugins;
|
||||
|
||||
import com.google.gerrit.extensions.annotations.ExtensionPoint;
|
||||
import com.google.gerrit.server.PluginUser;
|
||||
import com.google.gerrit.server.config.GerritRuntime;
|
||||
import java.nio.file.Path;
|
||||
import org.eclipse.jgit.internal.storage.file.FileSnapshot;
|
||||
|
||||
@@ -36,6 +37,7 @@ public interface ServerPluginProvider {
|
||||
public final PluginUser user;
|
||||
public final String canonicalUrl;
|
||||
public final Path dataDir;
|
||||
final GerritRuntime gerritRuntime;
|
||||
|
||||
/**
|
||||
* Creates a new PluginDescription for ServerPluginProvider.
|
||||
@@ -43,11 +45,14 @@ public interface ServerPluginProvider {
|
||||
* @param user Gerrit user for interacting with plugins
|
||||
* @param canonicalUrl plugin root Web URL
|
||||
* @param dataDir directory for plugin data
|
||||
* @param gerritRuntime current Gerrit runtime (daemon, batch, ...)
|
||||
*/
|
||||
public PluginDescription(PluginUser user, String canonicalUrl, Path dataDir) {
|
||||
public PluginDescription(
|
||||
PluginUser user, String canonicalUrl, Path dataDir, GerritRuntime gerritRuntime) {
|
||||
this.user = user;
|
||||
this.canonicalUrl = canonicalUrl;
|
||||
this.dataDir = dataDir;
|
||||
this.gerritRuntime = gerritRuntime;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -15,6 +15,7 @@
|
||||
package com.google.gerrit.server.plugins;
|
||||
|
||||
import com.google.gerrit.server.PluginUser;
|
||||
import com.google.gerrit.server.config.GerritRuntime;
|
||||
import java.nio.file.Path;
|
||||
|
||||
public class TestServerPlugin extends ServerPlugin {
|
||||
@@ -33,7 +34,17 @@ public class TestServerPlugin extends ServerPlugin {
|
||||
String sshName,
|
||||
Path dataDir)
|
||||
throws InvalidPluginException {
|
||||
super(name, pluginCanonicalWebUrl, user, null, null, null, dataDir, classloader);
|
||||
super(
|
||||
name,
|
||||
pluginCanonicalWebUrl,
|
||||
user,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
dataDir,
|
||||
classloader,
|
||||
null,
|
||||
GerritRuntime.DAEMON);
|
||||
this.classLoader = classloader;
|
||||
this.sysName = sysName;
|
||||
this.httpName = httpName;
|
||||
|
Reference in New Issue
Block a user