diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
index 5d1c553..ceaef0a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
@@ -32,8 +32,8 @@
 
 public class AMQProperties {
 
-  public final static String EVENT_APPID = "gerrit";
-  public final static String CONTENT_TYPE_JSON = "application/json";
+  public static final String EVENT_APPID = "gerrit";
+  public static final String CONTENT_TYPE_JSON = "application/json";
 
   private static final Logger LOGGER = LoggerFactory.getLogger(AMQProperties.class);
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
index 36ba106..09661ca 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
@@ -40,7 +40,7 @@
 
   private static final Logger LOGGER = LoggerFactory.getLogger(PluginProperties.class);
 
-  private final static int MINIMUM_CONNECTION_MONITOR_INTERVAL = 5000;
+  private static final int MINIMUM_CONNECTION_MONITOR_INTERVAL = 5000;
 
   private final Set<Section> sections;
   private final Path propertiesFile;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java
index d81379b..635d3ad 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java
@@ -8,12 +8,12 @@
 import java.util.Set;
 
 public interface Properties extends Cloneable {
-  public Config toConfig();
-  public boolean load();
-  public boolean load(Properties baseProperties);
-  public Path getPath();
-  public String getName();
-  public Set<Section> getSections();
-  public <T extends Section> T getSection(Class<T> clazz);
-  public AMQProperties getAMQProperties();
+  Config toConfig();
+  boolean load();
+  boolean load(Properties baseProperties);
+  Path getPath();
+  String getName();
+  Set<Section> getSections();
+  <T extends Section> T getSection(Class<T> clazz);
+  AMQProperties getAMQProperties();
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java
index 233c156..9b7a84d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java
@@ -3,5 +3,5 @@
 import org.eclipse.jgit.lib.Config;
 
 public interface GerritFrontUrl {
-  public void setGerritFrontUrlFromConfig(Config config);
+  void setGerritFrontUrlFromConfig(Config config);
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java
index 759ef03..ba6f220 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java
@@ -27,11 +27,11 @@
 public final class Sections {
   private static final Logger LOGGER = LoggerFactory.getLogger(Sections.class);
 
-  public static final <T extends Section> String getName(T section) {
+  public static <T extends Section> String getName(T section) {
     return section.getClass().getSimpleName().toLowerCase();
   }
 
-  public static final <T extends Section> T initialize(T section) {
+  public static <T extends Section> T initialize(T section) {
     Field[] fs = section.getClass().getFields();
     for (Field f : fs) {
       try {
@@ -56,11 +56,11 @@
     return section;
   }
 
-  public static final <T extends Section> Config toConfig(T section) {
+  public static <T extends Section> Config toConfig(T section) {
     return toConfig(section, new Config());
   }
 
-  public static final <T extends Section> Config toConfig(T section, Config config) {
+  public static <T extends Section> Config toConfig(T section, Config config) {
     Field[] fs = section.getClass().getFields();
     for (Field f : fs) {
       try {
@@ -85,7 +85,7 @@
     return config;
   }
 
-  public static final <T extends Section> Section fromConfig(T section, Config... configs) {
+  public static <T extends Section> Section fromConfig(T section, Config... configs) {
     for (Config config : configs) {
       if (config != null) {
         Set<String> names = config.getNames(getName(section));
@@ -115,7 +115,7 @@
     return section;
   }
 
-  public static final <T extends Section> T normalize(T section) {
+  public static <T extends Section> T normalize(T section) {
     Field[] fs = section.getClass().getFields();
     for (Field f : fs) {
       try {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
index 6c5f450..45ef707 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
@@ -35,7 +35,7 @@
 
   private static final Logger LOGGER = LoggerFactory.getLogger(MessagePublisher.class);
 
-  private final static int MONITOR_FIRSTTIME_DELAY = 15000;
+  private static final int MONITOR_FIRSTTIME_DELAY = 15000;
 
   private final Session session;
   private final Properties properties;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java
index 8cc38cb..28a1d0a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java
@@ -6,12 +6,12 @@
 import com.googlesource.gerrit.plugins.rabbitmq.session.Session;
 
 public interface Publisher extends EventListener {
-  public void start();
-  public void stop();
-  public void enable();
-  public void disable();
-  public boolean isEnable();
-  public Session getSession();
-  public Properties getProperties();
-  public String getName();
+  void start();
+  void stop();
+  void enable();
+  void disable();
+  boolean isEnable();
+  Session getSession();
+  Properties getProperties();
+  String getName();
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java
index 6cd7e81..5aa03fb 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java
@@ -14,8 +14,8 @@
 package com.googlesource.gerrit.plugins.rabbitmq.session;
 
 public interface Session {
-  public boolean isOpen();
-  public void connect();
-  public void disconnect();
-  public void publish(String message);
+  boolean isOpen();
+  void connect();
+  void disconnect();
+  void publish(String message);
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
index 6afec87..d5389dc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
@@ -46,7 +46,7 @@
 
     private final Class<?> clazz;
 
-    public <T extends ShutdownNotifier> ShutdownListenerImpl(Class<T> clazz) {
+    <T extends ShutdownNotifier> ShutdownListenerImpl(Class<T> clazz) {
       this.clazz = clazz;
     }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java
index 332b9cd..1a46663 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java
@@ -3,8 +3,8 @@
 import com.googlesource.gerrit.plugins.rabbitmq.message.Publisher;
 
 public interface EventWorker {
-  public void addPublisher(Publisher publisher);
-  public void addPublisher(Publisher publisher, String userName);
-  public void removePublisher(Publisher publisher);
-  public void clear();
+  void addPublisher(Publisher publisher);
+  void addPublisher(Publisher publisher, String userName);
+  void removePublisher(Publisher publisher);
+  void clear();
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java
index 92c36b9..46b9c7c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java
@@ -15,5 +15,5 @@
 package com.googlesource.gerrit.plugins.rabbitmq.worker;
 
 public interface EventWorkerFactory {
-  public EventWorker create();
+  EventWorker create();
 }
