RANGER-891: Audit shutdown hook to be registered with Hadoop ShutdownHookManager instead of directly with Java Runtime

Signed-off-by: Madhan Neethiraj <madhan@apache.org>
diff --git a/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java b/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
index cb998cd..b95e2a9 100644
--- a/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
+++ b/agents-audit/src/main/java/org/apache/ranger/audit/provider/AuditProviderFactory.java
@@ -26,6 +26,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.util.ShutdownHookManager;
 import org.apache.ranger.audit.destination.DBAuditDestination;
 import org.apache.ranger.audit.destination.FileAuditDestination;
 import org.apache.ranger.audit.destination.HDFSAuditDestination;
@@ -64,6 +65,8 @@
 	public static final int AUDIT_ASYNC_MAX_QUEUE_SIZE_DEFAULT = 10 * 1024;
 	public static final int AUDIT_ASYNC_MAX_FLUSH_INTERVAL_DEFAULT = 5 * 1000;
 
+	private static final int RANGER_AUDIT_SHUTDOWN_HOOK_PRIORITY = 30;
+
 	private static AuditProviderFactory sFactory;
 
 	private AuditHandler mProvider = null;
@@ -448,7 +451,7 @@
 	private void installJvmSutdownHook(Properties props) {
 		int shutdownHookMaxWaitSeconds = MiscUtil.getIntProperty(props, AUDIT_SHUTDOWN_HOOK_MAX_WAIT_SEC, AUDIT_SHUTDOWN_HOOK_MAX_WAIT_SEC_DEFAULT);
 		JVMShutdownHook jvmShutdownHook = new JVMShutdownHook(mProvider, shutdownHookMaxWaitSeconds);
-		Runtime.getRuntime().addShutdownHook(jvmShutdownHook);
+		ShutdownHookManager.get().addShutdownHook(jvmShutdownHook, RANGER_AUDIT_SHUTDOWN_HOOK_PRIORITY);
 	}
 
 	private static class RangerAsyncAuditCleanup implements Runnable {
diff --git a/src/main/assembly/plugin-solr.xml b/src/main/assembly/plugin-solr.xml
index 31ebd6b..9d5e57a 100644
--- a/src/main/assembly/plugin-solr.xml
+++ b/src/main/assembly/plugin-solr.xml
@@ -30,6 +30,7 @@
 						<outputDirectory>/lib</outputDirectory>
 						<unpack>false</unpack>
 						<includes>
+							<include>org.apache.hadoop:hadoop-common:jar:${hadoop-common.version}</include>
 							<include>com.google.code.gson:gson</include>
 							<include>org.eclipse.persistence:eclipselink</include>
 							<include>org.eclipse.persistence:javax.persistence</include>