diff --git a/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifest.java b/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifest.java
index 3b41f1c..54cff69 100644
--- a/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifest.java
+++ b/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifest.java
@@ -64,11 +64,9 @@
     @XmlAttribute(required = true)
     String remote;
 
-    @XmlAttribute
-    String revision;
+    @XmlAttribute String revision;
 
-    @XmlAttribute
-    String remotebranch;
+    @XmlAttribute String remotebranch;
 
     public Import() {
       manifest = "";
diff --git a/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java b/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java
index 55cc503..855ed26 100644
--- a/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java
+++ b/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java
@@ -68,7 +68,7 @@
     @Override
     public void close() {
       for (Repository repo : this.values()) {
-          repo.close();
+        repo.close();
       }
     }
   }
diff --git a/java/com/googlesource/gerrit/plugins/supermanifest/JiriUpdater.java b/java/com/googlesource/gerrit/plugins/supermanifest/JiriUpdater.java
index 264496f..9063b0d 100644
--- a/java/com/googlesource/gerrit/plugins/supermanifest/JiriUpdater.java
+++ b/java/com/googlesource/gerrit/plugins/supermanifest/JiriUpdater.java
@@ -104,7 +104,7 @@
 
         URI submodUrl = URI.create(nameUri);
 
-        //check if repo exists locally then relativize its URL
+        // check if repo exists locally then relativize its URL
         try {
           String repoName = submodUrl.getPath();
           while (repoName.startsWith("/")) {
diff --git a/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java b/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
index c4571ab..aaa9a92 100644
--- a/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
+++ b/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
@@ -64,8 +64,6 @@
 import org.eclipse.jgit.lib.PersonIdent;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.Repository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * This plugin will listen for changes to XML files in manifest repositories. When it finds such
diff --git a/javatests/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java b/javatests/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java
index f6f7a55..6160532 100644
--- a/javatests/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java
+++ b/javatests/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java
@@ -37,9 +37,8 @@
 import org.junit.Test;
 
 @TestPlugin(
-  name = "supermanifest",
-  sysModule = "com.googlesource.gerrit.plugins.supermanifest.SuperManifestModule"
-)
+    name = "supermanifest",
+    sysModule = "com.googlesource.gerrit.plugins.supermanifest.SuperManifestModule")
 public class JiriSuperManifestIT extends LightweightPluginDaemonTest {
   NameKey[] testRepoKeys;
 
diff --git a/javatests/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java b/javatests/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
index d56b30a..6c1b24c 100644
--- a/javatests/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
+++ b/javatests/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
@@ -37,9 +37,8 @@
 import org.junit.Test;
 
 @TestPlugin(
-  name = "supermanifest",
-  sysModule = "com.googlesource.gerrit.plugins.supermanifest.SuperManifestModule"
-)
+    name = "supermanifest",
+    sysModule = "com.googlesource.gerrit.plugins.supermanifest.SuperManifestModule")
 public class RepoSuperManifestIT extends LightweightPluginDaemonTest {
   Project.NameKey[] testRepoKeys;
   String[] testRepoCommits;
