Move routers @Singleton annotations for the module definition
Remove the use of @Singleton at class level and use
instead the Scopes.SINGLETON in the module binding.
This helps managing injection at module-level and
avoids creating just-in-time bindings that could eventually lead
to the duplication of singleton instances.
Feature: Issue 10829
Change-Id: Iab548bb602e68129d746a08790a9b1caa74b342b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java
index a118bd3..4c17a95 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/CacheEvictionEventRouter.java
@@ -15,14 +15,12 @@
package com.googlesource.gerrit.plugins.multisite.forwarder.router;
import com.google.inject.Inject;
-import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.forwarder.CacheEntry;
import com.googlesource.gerrit.plugins.multisite.forwarder.CacheNotFoundException;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedCacheEvictionHandler;
import com.googlesource.gerrit.plugins.multisite.forwarder.GsonParser;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.CacheEvictionEvent;
-@Singleton
public class CacheEvictionEventRouter implements ForwardedEventRouter<CacheEvictionEvent> {
private final ForwardedCacheEvictionHandler cacheEvictionHanlder;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java
index 8770de0..0103c38 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java
@@ -20,7 +20,6 @@
import com.google.gerrit.reviewdb.client.Account;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
-import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedIndexAccountHandler;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedIndexChangeHandler;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedIndexGroupHandler;
@@ -34,7 +33,6 @@
import java.io.IOException;
import java.util.Optional;
-@Singleton
public class IndexEventRouter implements ForwardedEventRouter<IndexEvent> {
private final ForwardedIndexAccountHandler indexAccountHandler;
private final ForwardedIndexChangeHandler indexChangeHandler;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/ProjectListUpdateRouter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/ProjectListUpdateRouter.java
index 0fcebc2..dd9eb0e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/ProjectListUpdateRouter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/ProjectListUpdateRouter.java
@@ -15,12 +15,10 @@
package com.googlesource.gerrit.plugins.multisite.forwarder.router;
import com.google.inject.Inject;
-import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedProjectListUpdateHandler;
import com.googlesource.gerrit.plugins.multisite.forwarder.events.ProjectListUpdateEvent;
import java.io.IOException;
-@Singleton
public class ProjectListUpdateRouter implements ForwardedEventRouter<ProjectListUpdateEvent> {
ForwardedProjectListUpdateHandler projectListUpdateHandler;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java
index 2c29d1f..91dfc53 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/RouterModule.java
@@ -15,13 +15,14 @@
package com.googlesource.gerrit.plugins.multisite.forwarder.router;
import com.google.inject.AbstractModule;
+import com.google.inject.Scopes;
public class RouterModule extends AbstractModule {
@Override
protected void configure() {
- bind(IndexEventRouter.class);
- bind(CacheEvictionEventRouter.class);
- bind(ProjectListUpdateRouter.class);
- bind(StreamEventRouter.class);
+ bind(IndexEventRouter.class).in(Scopes.SINGLETON);
+ bind(CacheEvictionEventRouter.class).in(Scopes.SINGLETON);
+ bind(ProjectListUpdateRouter.class).in(Scopes.SINGLETON);
+ bind(StreamEventRouter.class).in(Scopes.SINGLETON);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/StreamEventRouter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/StreamEventRouter.java
index eb68278..71edfb0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/StreamEventRouter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/StreamEventRouter.java
@@ -18,10 +18,8 @@
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
-import com.google.inject.Singleton;
import com.googlesource.gerrit.plugins.multisite.forwarder.ForwardedEventHandler;
-@Singleton
public class StreamEventRouter implements ForwardedEventRouter<Event> {
private final ForwardedEventHandler streamEventHandler;