Use RestForwarderModule#buildRestGson everywhere in rest forwarder

Ibdcde4c63a4b0ff introduced this provider but only used it in the
classes currently needing the instant type adapter. Use it consistently
everywhere in the rest forwarder to ensure the used gson instance has
all type adapters relevant for the rest forwarder.

Make this method static to simplify using it from unit tests.

Change-Id: Ifb43117ac5446768707257e575876d52fcf08e3b
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/HttpSession.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/HttpSession.java
index 52133d4..a7a8580 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/HttpSession.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/HttpSession.java
@@ -14,10 +14,8 @@
 
 package com.ericsson.gerrit.plugins.highavailability.forwarder.rest;
 
-import com.ericsson.gerrit.plugins.highavailability.forwarder.InstantTypeAdapter;
 import com.ericsson.gerrit.plugins.highavailability.forwarder.rest.HttpResponseHandler.HttpResult;
 import com.google.common.net.MediaType;
-import com.google.gerrit.server.events.EventGson;
 import com.google.gson.Gson;
 import com.google.inject.Inject;
 import java.io.IOException;
@@ -37,11 +35,9 @@
   private final Gson gson;
 
   @Inject
-  HttpSession(CloseableHttpClient httpClient, @EventGson Gson gson) {
+  HttpSession(CloseableHttpClient httpClient, @RestGson Gson gson) {
     this.httpClient = httpClient;
-
-    this.gson =
-        gson.newBuilder().registerTypeAdapter(Instant.class, new InstantTypeAdapter()).create();
+    this.gson = gson;
   }
 
   HttpResult post(String uri, Instant createdOn) throws IOException {
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarder.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarder.java
index b7ad165..ea783a6 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarder.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarder.java
@@ -29,7 +29,6 @@
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.restapi.Url;
 import com.google.gerrit.server.events.Event;
-import com.google.gerrit.server.events.EventGson;
 import com.google.gson.Gson;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
@@ -67,7 +66,7 @@
       @PluginName String pluginName,
       Configuration cfg,
       Provider<Set<PeerInfo>> peerInfoProvider,
-      @EventGson Gson gson,
+      @RestGson Gson gson,
       @RestForwarderExecutor FailsafeExecutor<Result> executor,
       ForwarderMetricsRegistry metricsRegistry) {
     this.httpSession = httpClient;
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderModule.java
index 41b151b..712e7f4 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderModule.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderModule.java
@@ -45,7 +45,7 @@
   @Provides
   @Singleton
   @RestGson
-  Gson buildRestGson(@EventGson Gson eventGson) {
+  static Gson buildRestGson(@EventGson Gson eventGson) {
     return eventGson
         .newBuilder()
         .registerTypeAdapter(Instant.class, new InstantTypeAdapter())
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParserTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParserTest.java
index 3df4e67..d661cad 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParserTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParserTest.java
@@ -26,7 +26,7 @@
 
 public class CacheKeyJsonParserTest {
   private static final Object EMPTY_JSON = "{}";
-  private final Gson gson = new EventGsonProvider().get();
+  private final Gson gson = RestForwarderModule.buildRestGson(new EventGsonProvider().get());
   private final CacheKeyJsonParser objectUnderTest = new CacheKeyJsonParser(gson);
 
   @Test
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java
index 9ed764f..c099c9c 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/EventRestApiServletTest.java
@@ -57,7 +57,7 @@
   @Mock private ProcessorMetricsRegistry metricsRegistryMock;
   @Mock private ProcessorMetrics metrics;
   private EventRestApiServlet eventRestApiServlet;
-  private Gson gson = new EventGsonProvider().get();
+  private Gson gson = RestForwarderModule.buildRestGson(new EventGsonProvider().get());
 
   @BeforeClass
   public static void setup() {
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ForwardedCacheEvictionHandlerIT.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ForwardedCacheEvictionHandlerIT.java
index 3df6104..1e5cc3d 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ForwardedCacheEvictionHandlerIT.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ForwardedCacheEvictionHandlerIT.java
@@ -19,11 +19,12 @@
 import com.google.common.cache.RemovalNotification;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import com.google.gerrit.acceptance.*;
+import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
+import com.google.gerrit.acceptance.TestPlugin;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.registration.RegistrationHandle;
 import com.google.gerrit.server.cache.CacheRemovalListener;
-import com.google.gerrit.server.events.EventGson;
+import com.google.gerrit.server.events.EventGsonProvider;
 import com.google.gerrit.server.project.ProjectCacheImpl;
 import com.google.gson.Gson;
 import com.google.inject.Inject;
@@ -48,7 +49,7 @@
   @Inject
   private DynamicSet<CacheRemovalListener> cacheRemovalListeners;
 
-  @Inject @EventGson private Gson gson;
+  private Gson gson = RestForwarderModule.buildRestGson(new EventGsonProvider().get());
 
   private CacheEvictionsTracker<?, ?> evictionsCacheTracker;
   private RegistrationHandle cacheEvictionRegistrationHandle;