diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationModule.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationModule.java
index 3d44f0a..c7e560e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationModule.java
@@ -62,8 +62,7 @@
     DynamicSet.bind(binder(), GitBatchRefUpdateListener.class).to(ReplicationQueue.class);
     DynamicSet.bind(binder(), ProjectDeletedListener.class).to(ReplicationQueue.class);
     DynamicSet.bind(binder(), HeadUpdatedListener.class).to(ReplicationQueue.class);
-    DynamicItem.bind(binder(), ReplicationRemotesApi.class)
-        .to(ReplicationRemotesApiImpl.class);
+    DynamicItem.bind(binder(), ReplicationRemotesApi.class).to(ReplicationRemotesApiImpl.class);
 
     bind(OnStartStop.class).in(Scopes.SINGLETON);
     bind(LifecycleListener.class).annotatedWith(UniqueAnnotations.create()).to(OnStartStop.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/api/ConfigResource.java b/src/main/java/com/googlesource/gerrit/plugins/replication/api/ConfigResource.java
index 08f35d0..0052fc2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/api/ConfigResource.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/api/ConfigResource.java
@@ -37,7 +37,7 @@
    */
   Config getConfig();
 
-   /**
+  /**
    * Update the configuration resource.
    *
    * <p>Allows to persist changes to the configuration resource.
@@ -47,7 +47,7 @@
    */
   void update(Config config) throws IOException;
 
-   /**
+  /**
    * Current logical version string of the current configuration on the persistent storage.
    *
    * @return latest logical version number on the persistent storage
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationRemotesApiTest.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationRemotesApiTest.java
index dc4f9be..3aa97e8 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationRemotesApiTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationRemotesApiTest.java
@@ -28,12 +28,11 @@
 import com.google.gerrit.server.securestore.SecureStore;
 import com.google.inject.util.Providers;
 import com.googlesource.gerrit.plugins.replication.api.ReplicationConfigOverrides;
+import com.googlesource.gerrit.plugins.replication.api.ReplicationRemotesApi;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.List;
-
-import com.googlesource.gerrit.plugins.replication.api.ReplicationRemotesApi;
 import org.eclipse.jgit.lib.Config;
 import org.junit.After;
 import org.junit.Before;
@@ -122,8 +121,7 @@
     return assertThat(config.getString("remote", "site", name));
   }
 
-  private ReplicationRemotesApi newReplicationConfigUpdater(
-      ReplicationConfigOverrides overrides) {
+  private ReplicationRemotesApi newReplicationConfigUpdater(ReplicationConfigOverrides overrides) {
     DynamicItem<ReplicationConfigOverrides> dynamicItemMock = mock(DynamicItem.class);
     when(dynamicItemMock.get()).thenReturn(overrides);
 
