Merge branch 'stable-2.15'

* stable-2.15:
  Allow storing audits into a separate file
  Extract audit configuration into a separate class
  Rename 'renderer' to 'format'
  Move CSV-specific classes into CSV-renderer
  Support audit events rendered as JSON string
  Extract Guice Module into a new file
  Extract the object o string rendering engine
  Extract AuditWriter and make the plugin testable
  Fix audit object class to RpcAuditEvent

Change-Id: I6105cc65622721bf688340b4ac706577732b7ff9
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java
index fca60b5..0d7482e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java
@@ -14,7 +14,8 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
-import com.google.gerrit.audit.AuditEvent;
+import com.google.gerrit.server.audit.AuditEvent;
+import com.google.gerrit.server.audit.SshAuditEvent;
 import java.util.Optional;
 
 public interface AuditFormatRenderer {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRecord.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRecord.java
index a89be0a..d33bd12 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRecord.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRecord.java
@@ -14,7 +14,7 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
-import com.google.gerrit.audit.AuditEvent;
+import com.google.gerrit.server.audit.AuditEvent;
 
 public class AuditRecord {
   public final String type;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java
index 68eff99..50d4b1e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java
@@ -15,12 +15,11 @@
 package com.googlesource.gerrit.plugins.auditsl4j;
 
 import com.google.common.collect.Multimap;
-import com.google.gerrit.audit.AuditEvent;
-import com.google.gerrit.audit.ExtendedHttpAuditEvent;
-import com.google.gerrit.audit.HttpAuditEvent;
-import com.google.gerrit.audit.RpcAuditEvent;
-import com.google.gerrit.audit.SshAuditEvent;
-
+import com.google.gerrit.server.audit.AuditEvent;
+import com.google.gerrit.server.audit.ExtendedHttpAuditEvent;
+import com.google.gerrit.server.audit.HttpAuditEvent;
+import com.google.gerrit.server.audit.RpcAuditEvent;
+import com.google.gerrit.server.audit.SshAuditEvent;
 import java.text.SimpleDateFormat;
 import java.util.Collection;
 import java.util.Collections;
@@ -32,7 +31,7 @@
 import java.util.TreeSet;
 
 public class AuditRendererToCsv implements AuditFormatRenderer {
-  
+
   private static final SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss.SSSS");
 
   @SuppressWarnings("serial")
@@ -47,18 +46,18 @@
               put(AuditEvent.class, new AuditEventFormat());
             }
           });
-  
+
   interface CsvFieldFormatter<T> {
     String formatToCsv(T result);
   }
-  
+
   static class RpcAuditEventFormat implements CsvFieldFormatter<RpcAuditEvent> {
     @Override
     public String formatToCsv(RpcAuditEvent result) {
       return "RPC-" + result.httpMethod + ", Status:" + result.httpStatus;
     }
   }
-  
+
   static class HttpAuditEventFormat implements CsvFieldFormatter<HttpAuditEvent> {
 
     @Override
@@ -66,14 +65,14 @@
       return "HTTP-" + result.httpMethod + ", Status:" + result.httpStatus;
     }
   }
-  
+
   static class SshAuditEventFormat implements CsvFieldFormatter<SshAuditEvent> {
     @Override
     public String formatToCsv(SshAuditEvent result) {
       return "SSH";
     }
   }
-  
+
   static class AuditEventFormat implements CsvFieldFormatter<SshAuditEvent> {
 
     @Override
@@ -144,7 +143,6 @@
     }
     return out.toString();
   }
-  
 
   public static <T> String getFieldAsCsv(T result) {
     if (result == null) return "";
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java
index 400fd33..ba02a53 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java
@@ -15,11 +15,11 @@
 package com.googlesource.gerrit.plugins.auditsl4j;
 
 import com.google.common.collect.ListMultimap;
-import com.google.gerrit.audit.AuditEvent;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.server.AccessPath;
 import com.google.gerrit.server.CurrentUser;
 import com.google.gerrit.server.OutputFormat;
+import com.google.gerrit.server.audit.AuditEvent;
 import com.google.gson.ExclusionStrategy;
 import com.google.gson.FieldAttributes;
 import com.google.gson.Gson;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriter.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriter.java
index 32866a0..1da9b2a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriter.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
+import com.google.gerrit.server.audit.HttpAuditEvent;
 import com.google.inject.ImplementedBy;
 
 @ImplementedBy(AuditWriterToLogger.class)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToAsyncAppender.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToAsyncAppender.java
index 448b4c3..194af59 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToAsyncAppender.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToAsyncAppender.java
@@ -14,8 +14,8 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
-import com.google.gerrit.common.TimeUtil;
 import com.google.gerrit.server.util.SystemLog;
+import com.google.gerrit.server.util.time.TimeUtil;
 import com.google.inject.Singleton;
 import org.apache.log4j.AsyncAppender;
 import org.apache.log4j.Level;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToLogger.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToLogger.java
index 51d4629..98f64e2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToLogger.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToLogger.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
+import com.google.gerrit.server.audit.SshAuditEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToStringList.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToStringList.java
index bb24056..e612792 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToStringList.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditWriterToStringList.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
+import com.google.gerrit.server.audit.HttpAuditEvent;
+import com.google.gerrit.server.audit.RpcAuditEvent;
 import com.google.inject.Singleton;
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
index 94bc55f..97cee43 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
@@ -14,8 +14,8 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
-import com.google.gerrit.audit.AuditEvent;
-import com.google.gerrit.audit.AuditListener;
+import com.google.gerrit.server.audit.AuditEvent;
+import com.google.gerrit.server.audit.AuditListener;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java
index 6ebe298..fc11a00 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java
@@ -14,8 +14,8 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
-import com.google.gerrit.audit.AuditListener;
 import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.audit.AuditListener;
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
 
diff --git a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java
index ecf1432..de89e0d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java
@@ -19,16 +19,12 @@
 import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
 import com.google.gerrit.acceptance.Sandboxed;
 import com.google.gerrit.acceptance.TestPlugin;
-import com.google.gerrit.audit.AuditListener;
 import com.google.gerrit.common.Version;
 import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.audit.AuditListener;
 import com.google.gerrit.server.config.CanonicalWebUrl;
-import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import java.util.ArrayList;
-import java.util.List;
 import org.apache.http.client.fluent.Request;
 import org.junit.Test;
 
@@ -63,5 +59,4 @@
   private <T> T getPluginInstance(Class<T> clazz) {
     return plugin.getSysInjector().getInstance(clazz);
   }
-
 }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java
index 4b4390e..9d0e48c 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java
@@ -19,9 +19,9 @@
 import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
 import com.google.gerrit.acceptance.Sandboxed;
 import com.google.gerrit.acceptance.TestPlugin;
-import com.google.gerrit.audit.AuditListener;
 import com.google.gerrit.common.Version;
 import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.server.audit.AuditListener;
 import com.google.gerrit.server.config.CanonicalWebUrl;
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;