Make LifecycleModule inherit from FactoryModule
Cut down on a bunch of one-offs of install(new *Module() {...}) by choosing a more appropriate base module class. This doesn't solve all such cases, for example RpcServletModule must still inherit from ServletModule, but it does clean up some code. (And who knows, fewer modules may even mean faster startup time.) Change-Id: Ie1aed05d0a64f7f11b121c9a637bb30d80e9a595
This commit is contained in:
parent
49ef37b99b
commit
ec6fca88a5
@ -34,7 +34,6 @@ import com.google.gerrit.testutil.InMemoryRepositoryManager;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.OrmRuntimeException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provides;
|
||||
import com.google.inject.Singleton;
|
||||
@ -46,7 +45,7 @@ import org.eclipse.jgit.lib.Config;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
class InMemoryTestingDatabaseModule extends AbstractModule {
|
||||
class InMemoryTestingDatabaseModule extends LifecycleModule {
|
||||
private final Config cfg;
|
||||
|
||||
InMemoryTestingDatabaseModule(Config cfg) {
|
||||
@ -71,12 +70,7 @@ class InMemoryTestingDatabaseModule extends AbstractModule {
|
||||
bind(new TypeLiteral<SchemaFactory<ReviewDb>>() {})
|
||||
.to(InMemoryDatabase.class);
|
||||
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().to(CreateDatabase.class);
|
||||
}
|
||||
});
|
||||
|
||||
bind(SitePaths.class);
|
||||
bind(TrackingFooters.class)
|
||||
|
@ -27,7 +27,6 @@ import com.google.gerrit.server.cache.MemoryCacheFactory;
|
||||
import com.google.gerrit.server.cache.PersistentCacheFactory;
|
||||
import com.google.gerrit.server.cache.h2.H2CacheImpl.ValueHolder;
|
||||
import com.google.gerrit.server.config.ConfigUtil;
|
||||
import com.google.gerrit.server.config.FactoryModule;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
@ -37,15 +36,9 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class DefaultCacheFactory implements MemoryCacheFactory {
|
||||
public static class Module extends LifecycleModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
install(new FactoryModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
factory(ForwardingRemovalListener.Factory.class);
|
||||
}
|
||||
});
|
||||
|
||||
bind(DefaultCacheFactory.class);
|
||||
bind(MemoryCacheFactory.class).to(DefaultCacheFactory.class);
|
||||
bind(PersistentCacheFactory.class).to(H2CacheFactory.class);
|
||||
|
@ -31,7 +31,6 @@ import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.server.RemotePeer;
|
||||
import com.google.gerrit.server.config.AuthConfig;
|
||||
import com.google.gerrit.server.config.CanonicalWebUrl;
|
||||
import com.google.gerrit.server.config.FactoryModule;
|
||||
import com.google.gerrit.server.config.GerritRequestModule;
|
||||
import com.google.gerrit.server.contact.ContactStore;
|
||||
import com.google.gerrit.server.contact.ContactStoreProvider;
|
||||
@ -46,7 +45,7 @@ import com.google.inject.servlet.RequestScoped;
|
||||
|
||||
import java.net.SocketAddress;
|
||||
|
||||
public class WebModule extends FactoryModule {
|
||||
public class WebModule extends LifecycleModule {
|
||||
private final AuthConfig authConfig;
|
||||
private final UrlModule.UrlConfig urlConfig;
|
||||
private final boolean wantSSL;
|
||||
@ -132,11 +131,6 @@ public class WebModule extends FactoryModule {
|
||||
bind(SocketAddress.class).annotatedWith(RemotePeer.class).toProvider(
|
||||
HttpRemotePeerProvider.class).in(RequestScoped.class);
|
||||
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().toInstance(registerInParentInjectors());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,6 @@ package com.google.gerrit.lucene;
|
||||
|
||||
import com.google.gerrit.extensions.events.LifecycleListener;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.server.config.FactoryModule;
|
||||
import com.google.gerrit.server.config.SitePaths;
|
||||
import com.google.gerrit.server.index.ChangeSchemas;
|
||||
import com.google.gerrit.server.index.IndexCollection;
|
||||
@ -45,12 +44,7 @@ public class LuceneIndexModule extends LifecycleModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
install(new FactoryModule() {
|
||||
@Override
|
||||
public void configure() {
|
||||
factory(LuceneChangeIndex.Factory.class);
|
||||
}
|
||||
});
|
||||
install(new IndexModule(threads));
|
||||
if (singleVersion == null && base == null) {
|
||||
install(new MultiVersionModule());
|
||||
@ -60,14 +54,9 @@ public class LuceneIndexModule extends LifecycleModule {
|
||||
}
|
||||
|
||||
private class MultiVersionModule extends LifecycleModule {
|
||||
@Override
|
||||
public void configure() {
|
||||
install(new FactoryModule() {
|
||||
@Override
|
||||
public void configure() {
|
||||
factory(OnlineReindexer.Factory.class);
|
||||
}
|
||||
});
|
||||
listener().to(LuceneVersionManager.class);
|
||||
}
|
||||
}
|
||||
|
@ -15,9 +15,8 @@
|
||||
package com.google.gerrit.pgm.http.jetty;
|
||||
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.inject.AbstractModule;
|
||||
|
||||
public class JettyModule extends AbstractModule {
|
||||
public class JettyModule extends LifecycleModule {
|
||||
private final JettyEnv env;
|
||||
|
||||
public JettyModule(final JettyEnv env) {
|
||||
@ -28,11 +27,6 @@ public class JettyModule extends AbstractModule {
|
||||
protected void configure() {
|
||||
bind(JettyEnv.class).toInstance(env);
|
||||
bind(JettyServer.class);
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().to(JettyServer.Lifecycle.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.google.gerrit.lifecycle;
|
||||
|
||||
import com.google.gerrit.extensions.events.LifecycleListener;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.gerrit.server.config.FactoryModule;
|
||||
import com.google.inject.Singleton;
|
||||
import com.google.inject.binder.LinkedBindingBuilder;
|
||||
import com.google.inject.internal.UniqueAnnotations;
|
||||
@ -9,7 +9,7 @@ import com.google.inject.internal.UniqueAnnotations;
|
||||
import java.lang.annotation.Annotation;
|
||||
|
||||
/** Module to support registering a unique LifecyleListener. */
|
||||
public abstract class LifecycleModule extends AbstractModule {
|
||||
public abstract class LifecycleModule extends FactoryModule {
|
||||
/**
|
||||
* Create a unique listener binding.
|
||||
* <p>
|
||||
|
@ -19,7 +19,6 @@ import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
import com.google.gerrit.server.config.SitePaths;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Singleton;
|
||||
|
||||
@ -62,18 +61,12 @@ public class LocalDiskRepositoryManager implements GitRepositoryManager {
|
||||
private static final String UNNAMED =
|
||||
"Unnamed repository; edit this file to name it for gitweb.";
|
||||
|
||||
public static class Module extends AbstractModule {
|
||||
public static class Module extends LifecycleModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(GitRepositoryManager.class).to(LocalDiskRepositoryManager.class);
|
||||
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().to(LocalDiskRepositoryManager.Lifecycle.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public static class Lifecycle implements LifecycleListener {
|
||||
|
@ -16,9 +16,8 @@ package com.google.gerrit.server.plugins;
|
||||
|
||||
import com.google.gerrit.extensions.systemstatus.ServerInformation;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.inject.AbstractModule;
|
||||
|
||||
public class PluginModule extends AbstractModule {
|
||||
public class PluginModule extends LifecycleModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(ServerInformationImpl.class);
|
||||
@ -28,11 +27,6 @@ public class PluginModule extends AbstractModule {
|
||||
bind(PluginGuiceEnvironment.class);
|
||||
bind(PluginLoader.class);
|
||||
bind(CopyConfigModule.class);
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().to(PluginLoader.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -16,13 +16,13 @@ package com.google.gerrit.sshd;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.inject.binder.LinkedBindingBuilder;
|
||||
|
||||
import org.apache.sshd.server.Command;
|
||||
|
||||
/** Module to register commands in the SSH daemon. */
|
||||
public abstract class CommandModule extends AbstractModule {
|
||||
public abstract class CommandModule extends LifecycleModule {
|
||||
/**
|
||||
* Configure a command to be invoked by name.
|
||||
*
|
||||
|
@ -21,7 +21,6 @@ import com.google.common.collect.Maps;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.server.PeerDaemonUser;
|
||||
import com.google.gerrit.server.RemotePeer;
|
||||
import com.google.gerrit.server.config.FactoryModule;
|
||||
import com.google.gerrit.server.config.GerritRequestModule;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
import com.google.gerrit.server.git.AsyncReceiveCommits;
|
||||
@ -47,7 +46,7 @@ import java.net.SocketAddress;
|
||||
import java.util.Map;
|
||||
|
||||
/** Configures standard dependencies for {@link SshDaemon}. */
|
||||
public class SshModule extends FactoryModule {
|
||||
public class SshModule extends LifecycleModule {
|
||||
private final Map<String, String> aliases;
|
||||
|
||||
@Inject
|
||||
@ -87,9 +86,6 @@ public class SshModule extends FactoryModule {
|
||||
|
||||
install(new DefaultCommandModule());
|
||||
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(ModuleGenerator.class).to(SshAutoRegisterModuleGenerator.class);
|
||||
bind(SshPluginStarterCallback.class);
|
||||
bind(StartPluginListener.class)
|
||||
@ -105,8 +101,6 @@ public class SshModule extends FactoryModule {
|
||||
listener().to(SshDaemon.class);
|
||||
listener().to(CommandFactoryProvider.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void configureAliases() {
|
||||
CommandName gerrit = Commands.named("gerrit");
|
||||
|
@ -14,7 +14,6 @@
|
||||
|
||||
package com.google.gerrit.sshd.commands;
|
||||
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.sshd.CommandModule;
|
||||
import com.google.gerrit.sshd.CommandName;
|
||||
import com.google.gerrit.sshd.Commands;
|
||||
@ -77,11 +76,6 @@ public class DefaultCommandModule extends CommandModule {
|
||||
|
||||
command("suexec").to(SuExec.class);
|
||||
|
||||
install(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
listener().to(ShowCaches.StartupListener.class);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -196,16 +196,10 @@ public class WebAppInitializer extends GuiceServletContextListener
|
||||
final DataSourceType dst = Guice.createInjector(new DataSourceModule(),
|
||||
configModule, sitePathModule).getInstance(
|
||||
Key.get(DataSourceType.class, Names.named(dbType.toLowerCase())));
|
||||
modules.add(new AbstractModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(DataSourceType.class).toInstance(dst);
|
||||
}
|
||||
});
|
||||
|
||||
modules.add(new LifecycleModule() {
|
||||
@Override
|
||||
protected void configure() {
|
||||
bind(DataSourceType.class).toInstance(dst);
|
||||
bind(DataSourceProvider.Context.class).toInstance(
|
||||
DataSourceProvider.Context.MULTI_USER);
|
||||
bind(Key.get(DataSource.class, Names.named("ReviewDb"))).toProvider(
|
||||
|
Loading…
Reference in New Issue
Block a user