diff --git a/java/com/google/gerrit/httpd/init/BUILD b/java/com/google/gerrit/httpd/init/BUILD index 9624241c22..f240088bcd 100644 --- a/java/com/google/gerrit/httpd/init/BUILD +++ b/java/com/google/gerrit/httpd/init/BUILD @@ -19,6 +19,7 @@ java_library( "//java/com/google/gerrit/server:module", "//java/com/google/gerrit/server/api", "//java/com/google/gerrit/server/cache/h2", + "//java/com/google/gerrit/server/cache/mem", "//java/com/google/gerrit/server/git/receive", "//java/com/google/gerrit/server/restapi", "//java/com/google/gerrit/server/schema", diff --git a/java/com/google/gerrit/httpd/init/WebAppInitializer.java b/java/com/google/gerrit/httpd/init/WebAppInitializer.java index 506e125753..77677f8d14 100644 --- a/java/com/google/gerrit/httpd/init/WebAppInitializer.java +++ b/java/com/google/gerrit/httpd/init/WebAppInitializer.java @@ -46,7 +46,8 @@ import com.google.gerrit.server.account.AccountDeactivator; import com.google.gerrit.server.account.InternalAccountDirectory; import com.google.gerrit.server.api.GerritApiModule; import com.google.gerrit.server.cache.CacheOverrides; -import com.google.gerrit.server.cache.h2.DefaultCacheFactory; +import com.google.gerrit.server.cache.h2.H2CacheModule; +import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule; import com.google.gerrit.server.change.ChangeCleanupRunner; import com.google.gerrit.server.config.AuthConfig; import com.google.gerrit.server.config.AuthConfigModule; @@ -337,8 +338,8 @@ public class WebAppInitializer extends GuiceServletContextListener implements Fi modules.add(new SearchingChangeCacheImpl.Module()); modules.add(new InternalAccountDirectory.Module()); modules.add(new DefaultPermissionBackendModule()); - modules.add(new DefaultCacheFactory.MemoryCacheModule()); - modules.add(new DefaultCacheFactory.PersistentCacheModule()); + modules.add(new DefaultMemoryCacheModule()); + modules.add(new H2CacheModule()); modules.add(cfgInjector.getInstance(MailReceiver.Module.class)); modules.add(new SmtpEmailSender.Module()); modules.add(new SignedTokenEmailTokenVerifier.Module()); diff --git a/java/com/google/gerrit/pgm/BUILD b/java/com/google/gerrit/pgm/BUILD index b5b513fe11..76421fcd1f 100644 --- a/java/com/google/gerrit/pgm/BUILD +++ b/java/com/google/gerrit/pgm/BUILD @@ -37,6 +37,7 @@ java_library( "//java/com/google/gerrit/server:module", "//java/com/google/gerrit/server/api", "//java/com/google/gerrit/server/cache/h2", + "//java/com/google/gerrit/server/cache/mem", "//java/com/google/gerrit/server/git/receive", "//java/com/google/gerrit/server/restapi", "//java/com/google/gerrit/server/schema", diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java index 3c79b8050f..be4e2e99f2 100644 --- a/java/com/google/gerrit/pgm/Daemon.java +++ b/java/com/google/gerrit/pgm/Daemon.java @@ -55,7 +55,8 @@ import com.google.gerrit.server.account.InternalAccountDirectory; import com.google.gerrit.server.api.GerritApiModule; import com.google.gerrit.server.api.PluginApiModule; import com.google.gerrit.server.cache.CacheOverrides; -import com.google.gerrit.server.cache.h2.DefaultCacheFactory; +import com.google.gerrit.server.cache.h2.H2CacheModule; +import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule; import com.google.gerrit.server.change.ChangeCleanupRunner; import com.google.gerrit.server.config.AuthConfig; import com.google.gerrit.server.config.AuthConfigModule; @@ -423,8 +424,8 @@ public class Daemon extends SiteProgram { modules.add(new SearchingChangeCacheImpl.Module(slave)); modules.add(new InternalAccountDirectory.Module()); modules.add(new DefaultPermissionBackendModule()); - modules.add(new DefaultCacheFactory.MemoryCacheModule()); - modules.add(new DefaultCacheFactory.PersistentCacheModule()); + modules.add(new DefaultMemoryCacheModule()); + modules.add(new H2CacheModule()); modules.add(cfgInjector.getInstance(MailReceiver.Module.class)); if (emailModule != null) { modules.add(emailModule); diff --git a/java/com/google/gerrit/pgm/util/BUILD b/java/com/google/gerrit/pgm/util/BUILD index d6e44bd8df..91647fbc83 100644 --- a/java/com/google/gerrit/pgm/util/BUILD +++ b/java/com/google/gerrit/pgm/util/BUILD @@ -12,6 +12,7 @@ java_library( "//java/com/google/gerrit/server", "//java/com/google/gerrit/server:module", "//java/com/google/gerrit/server/cache/h2", + "//java/com/google/gerrit/server/cache/mem", "//java/com/google/gerrit/server/git/receive", "//java/com/google/gerrit/server/restapi", "//java/com/google/gerrit/server/schema", diff --git a/java/com/google/gerrit/pgm/util/BatchProgramModule.java b/java/com/google/gerrit/pgm/util/BatchProgramModule.java index f642508d52..17c7319412 100644 --- a/java/com/google/gerrit/pgm/util/BatchProgramModule.java +++ b/java/com/google/gerrit/pgm/util/BatchProgramModule.java @@ -37,7 +37,8 @@ import com.google.gerrit.server.account.GroupIncludeCacheImpl; import com.google.gerrit.server.account.Realm; import com.google.gerrit.server.account.externalids.ExternalIdModule; import com.google.gerrit.server.cache.CacheRemovalListener; -import com.google.gerrit.server.cache.h2.DefaultCacheFactory; +import com.google.gerrit.server.cache.h2.H2CacheModule; +import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule; import com.google.gerrit.server.change.ChangeJson; import com.google.gerrit.server.change.ChangeKindCacheImpl; import com.google.gerrit.server.change.MergeabilityCacheImpl; @@ -154,8 +155,8 @@ public class BatchProgramModule extends FactoryModule { install(new BatchGitModule()); install(new DefaultPermissionBackendModule()); - install(new DefaultCacheFactory.MemoryCacheModule()); - install(new DefaultCacheFactory.PersistentCacheModule()); + install(new DefaultMemoryCacheModule()); + install(new H2CacheModule()); install(new ExternalIdModule()); install(new GroupModule()); install(new NoteDbModule(cfg)); diff --git a/java/com/google/gerrit/server/cache/h2/H2CacheModule.java b/java/com/google/gerrit/server/cache/h2/H2CacheModule.java new file mode 100644 index 0000000000..90ca7d6e60 --- /dev/null +++ b/java/com/google/gerrit/server/cache/h2/H2CacheModule.java @@ -0,0 +1,28 @@ +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.server.cache.h2; + +import com.google.gerrit.lifecycle.LifecycleModule; +import com.google.gerrit.server.cache.CacheImpl; +import com.google.gerrit.server.cache.PersistentCacheFactory; + +@CacheImpl(type = CacheImpl.Type.PERSISTENT) +public class H2CacheModule extends LifecycleModule { + @Override + protected void configure() { + bind(PersistentCacheFactory.class).to(H2CacheFactory.class); + listener().to(H2CacheFactory.class); + } +} diff --git a/java/com/google/gerrit/server/cache/mem/BUILD b/java/com/google/gerrit/server/cache/mem/BUILD new file mode 100644 index 0000000000..ef297f1cdb --- /dev/null +++ b/java/com/google/gerrit/server/cache/mem/BUILD @@ -0,0 +1,12 @@ +java_library( + name = "mem", + srcs = glob(["*.java"]), + visibility = ["//visibility:public"], + deps = [ + "//java/com/google/gerrit/extensions:api", + "//java/com/google/gerrit/server", + "//lib:guava", + "//lib/guice", + "//lib/jgit/org.eclipse.jgit:jgit", + ], +) diff --git a/java/com/google/gerrit/server/cache/h2/DefaultCacheFactory.java b/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java similarity index 77% rename from java/com/google/gerrit/server/cache/h2/DefaultCacheFactory.java rename to java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java index a8287aea0f..114e893c03 100644 --- a/java/com/google/gerrit/server/cache/h2/DefaultCacheFactory.java +++ b/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.gerrit.server.cache.h2; +package com.google.gerrit.server.cache.mem; import com.google.common.base.Strings; import com.google.common.cache.Cache; @@ -20,43 +20,21 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.cache.Weigher; -import com.google.gerrit.extensions.config.FactoryModule; -import com.google.gerrit.lifecycle.LifecycleModule; import com.google.gerrit.server.cache.CacheBinding; -import com.google.gerrit.server.cache.CacheImpl; import com.google.gerrit.server.cache.ForwardingRemovalListener; import com.google.gerrit.server.cache.MemoryCacheFactory; -import com.google.gerrit.server.cache.PersistentCacheFactory; import com.google.gerrit.server.config.ConfigUtil; import com.google.gerrit.server.config.GerritServerConfig; import com.google.inject.Inject; import java.util.concurrent.TimeUnit; import org.eclipse.jgit.lib.Config; -public class DefaultCacheFactory implements MemoryCacheFactory { - @CacheImpl(type = CacheImpl.Type.MEMORY) - public static class MemoryCacheModule extends FactoryModule { - @Override - protected void configure() { - factory(ForwardingRemovalListener.Factory.class); - bind(MemoryCacheFactory.class).to(DefaultCacheFactory.class); - } - } - - @CacheImpl(type = CacheImpl.Type.PERSISTENT) - public static class PersistentCacheModule extends LifecycleModule { - @Override - protected void configure() { - bind(PersistentCacheFactory.class).to(H2CacheFactory.class); - listener().to(H2CacheFactory.class); - } - } - +class DefaultMemoryCacheFactory implements MemoryCacheFactory { private final Config cfg; private final ForwardingRemovalListener.Factory forwardingRemovalListenerFactory; @Inject - public DefaultCacheFactory( + DefaultMemoryCacheFactory( @GerritServerConfig Config config, ForwardingRemovalListener.Factory forwardingRemovalListenerFactory) { this.cfg = config; diff --git a/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheModule.java b/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheModule.java new file mode 100644 index 0000000000..0e4ec3bfd0 --- /dev/null +++ b/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheModule.java @@ -0,0 +1,29 @@ +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.server.cache.mem; + +import com.google.gerrit.extensions.config.FactoryModule; +import com.google.gerrit.server.cache.CacheImpl; +import com.google.gerrit.server.cache.ForwardingRemovalListener; +import com.google.gerrit.server.cache.MemoryCacheFactory; + +@CacheImpl(type = CacheImpl.Type.MEMORY) +public class DefaultMemoryCacheModule extends FactoryModule { + @Override + protected void configure() { + factory(ForwardingRemovalListener.Factory.class); + bind(MemoryCacheFactory.class).to(DefaultMemoryCacheFactory.class); + } +} diff --git a/java/com/google/gerrit/testing/BUILD b/java/com/google/gerrit/testing/BUILD index dd726a8af2..f2fe4c24a2 100644 --- a/java/com/google/gerrit/testing/BUILD +++ b/java/com/google/gerrit/testing/BUILD @@ -26,6 +26,7 @@ java_library( "//java/com/google/gerrit/server:module", "//java/com/google/gerrit/server/api", "//java/com/google/gerrit/server/cache/h2", + "//java/com/google/gerrit/server/cache/mem", "//java/com/google/gerrit/server/restapi", "//java/com/google/gerrit/server/schema", "//lib:gwtorm", diff --git a/java/com/google/gerrit/testing/InMemoryModule.java b/java/com/google/gerrit/testing/InMemoryModule.java index 29ba7325d6..6d90510a2a 100644 --- a/java/com/google/gerrit/testing/InMemoryModule.java +++ b/java/com/google/gerrit/testing/InMemoryModule.java @@ -33,7 +33,8 @@ import com.google.gerrit.server.GerritPersonIdent; import com.google.gerrit.server.GerritPersonIdentProvider; import com.google.gerrit.server.api.GerritApiModule; import com.google.gerrit.server.api.PluginApiModule; -import com.google.gerrit.server.cache.h2.DefaultCacheFactory; +import com.google.gerrit.server.cache.h2.H2CacheModule; +import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule; import com.google.gerrit.server.config.AllProjectsName; import com.google.gerrit.server.config.AllProjectsNameProvider; import com.google.gerrit.server.config.AllUsersName; @@ -227,8 +228,8 @@ public class InMemoryModule extends FactoryModule { return MoreExecutors.newDirectExecutorService(); } }); - install(new DefaultCacheFactory.MemoryCacheModule()); - install(new DefaultCacheFactory.PersistentCacheModule()); + install(new DefaultMemoryCacheModule()); + install(new H2CacheModule()); install(new FakeEmailSender.Module()); install(new SignedTokenEmailTokenVerifier.Module()); install(new GpgModule(cfg));