diff --git a/distro/.gitignore b/distro/.gitignore
new file mode 100644
index 0000000..5a3a673
--- /dev/null
+++ b/distro/.gitignore
@@ -0,0 +1,6 @@
+/target/
+/bin/
+/target
+.settings/
+.pydevproject
+*.log
diff --git a/distro/pom.xml b/distro/pom.xml
new file mode 100644
index 0000000..49faefc
--- /dev/null
+++ b/distro/pom.xml
@@ -0,0 +1,620 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>ranger-distro</artifactId>
+    <name>Apache Ranger Distribution</name>
+    <description>Apache Ranger Distribution</description>
+    <parent>
+        <groupId>org.apache.ranger</groupId>
+        <artifactId>ranger</artifactId>
+        <version>2.1.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <profiles>
+        <profile>
+            <id>all</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                          <finalName>ranger-${project.version}</finalName>
+                          <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/hive-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/knox-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/storm-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-kafka.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-yarn.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-ozone.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-solr.xml</descriptor>
+                                        <descriptor>src/main/assembly/admin-web.xml</descriptor>
+                                        <descriptor>src/main/assembly/solr_audit_conf.xml</descriptor>
+                                        <descriptor>src/main/assembly/usersync.xml</descriptor>
+                                        <descriptor>src/main/assembly/tagsync.xml</descriptor>
+                                        <descriptor>src/main/assembly/migration-util.xml</descriptor>
+                                        <descriptor>src/main/assembly/kms.xml</descriptor>
+                                        <descriptor>src/main/assembly/ranger-tools.xml</descriptor>
+                                        <descriptor>src/main/assembly/ranger-src.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-atlas.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-sqoop.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-kylin.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-elasticsearch.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-presto.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>ranger-admin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/admin-web.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>ranger-hdfs-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>ranger-hive-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/hive-agent.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>ranger-hbase-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>ranger-knox-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/knox-agent.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <profile>
+            <id>ranger-storm-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/storm-agent.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-yarn-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-yarn.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-ozone-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-ozone.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-kafka-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-kafka.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-solr-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-solr.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-kms-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-kms.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-atlas-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-atlas.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-sqoop-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-sqoop.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-kylin-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-kylin.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-elasticsearch-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-elasticsearch.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>ranger-presto-plugin</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/plugin-presto.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>linux</id>
+            <activation>
+                <os>
+                    <family>linux</family>
+                </os>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                            <finalName>ranger-${project.version}</finalName>
+                            <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/hive-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/knox-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/storm-agent.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-kafka.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-yarn.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-ozone.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-solr.xml</descriptor>
+                                        <descriptor>src/main/assembly/admin-web.xml</descriptor>
+                                        <descriptor>src/main/assembly/solr_audit_conf.xml</descriptor>
+                                        <descriptor>src/main/assembly/usersync.xml</descriptor>
+                                        <descriptor>src/main/assembly/tagsync.xml</descriptor>
+                                        <descriptor>src/main/assembly/migration-util.xml</descriptor>
+                                        <descriptor>src/main/assembly/kms.xml</descriptor>
+                                        <descriptor>src/main/assembly/ranger-tools.xml</descriptor>
+                                        <descriptor>src/main/assembly/ranger-src.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-atlas.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-sqoop.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-kylin.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-elasticsearch.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-presto.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <!--Add a dependency here to ensure this module is the final one built-->
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.ranger</groupId>
+            <artifactId>ranger-elasticsearch-plugin-shim</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/distro/src/main/assembly/admin-web.xml b/distro/src/main/assembly/admin-web.xml
new file mode 100644
index 0000000..37bda35
--- /dev/null
+++ b/distro/src/main/assembly/admin-web.xml
@@ -0,0 +1,556 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>admin</id> 
+  <formats>
+     <format>tar.gz</format>
+     <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-admin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:security-admin-web</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>true</unpack>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:unixauthclient</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/ranger_jaas</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-hdfs-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/hdfs</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-hive-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/hive</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.hive:hive-common:jar:${hive.version}</include>
+          <include>org.apache.hive:hive-service:jar:${hive.version}</include>
+          <include>org.apache.hive:hive-exec:jar:${hive.version}</include>
+          <include>org.apache.hive:hive-jdbc:jar:${hive.version}</include>
+          <include>org.apache.hive:hive-metastore:jar:${hive.version}</include>
+          <include>org.apache.thrift:libfb303:jar:${libfb303.version}</include>
+          <include>org.apache.thrift:libthrift:jar:${libthrift.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-hbase-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/hbase</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+            <include>org.apache.hbase:hbase-common:jar:${hbase.version}</include>
+            <include>org.apache.hbase:hbase-client:jar:${hbase.version}</include>
+            <include>org.apache.hbase:hbase-protocol:jar:${hbase.version}</include>
+            <include>org.apache.hbase:hbase-server:jar:${hbase.version}</include>
+            <include>org.apache.hbase:hbase-protocol-shaded:jar:${hbase.version}</include>
+            <include>org.apache.hbase.thirdparty:hbase-shaded-protobuf:jar:${hbase-shaded-protobuf}</include>
+            <include>org.apache.hbase.thirdparty:hbase-shaded-netty:jar:${hbase-shaded-netty}</include>
+            <include>org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:jar:${hbase-shaded-miscellaneous}</include>
+            <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+            <include>io.dropwizard.metrics:metrics-core</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-knox-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/knox</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+            <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+            <include>commons-collections:commons-collections:jar:${commons.collections.version}</include>
+            <include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
+            <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-storm-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/storm</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.storm:storm-core:jar:0.9.2-incubating</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-yarn-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/yarn</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.hadoop:hadoop-yarn-api:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-yarn-common:jar:${hadoop.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-ozone-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/ozone</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.hadoop:hadoop-ozone-common:jar:${ozone.version}</include>
+          <include>org.apache.hadoop:hadoop-ozone-client:jar:${ozone.version}</include>
+          <include>org.apache.hadoop:hadoop-hdds-common:jar:${ozone.version}</include>
+          <include>org.apache.hadoop:hadoop-hdds-client:jar:${ozone.version}</include>
+          <include>org.apache.commons:commons-compress:jar:1.4.1</include>
+          <include>commons-net:commons-net:jar:${commons.net.version}</include>
+          <include>com.google.guava:guava</include>
+          <include>io.jaegertracing:jaeger-core:jar:0.33.1</include>
+          <include>io.opentracing:opentracing-api:jar:0.31.0</include>
+          <include>io.opentracing:opentracing-noop:jar:0.31.0</include>
+          <include>io.opentracing:opentracing-util:jar:0.31.0</include>
+          <include>io.opentracing.contrib:opentracing-tracerresolver:jar:0.1.5</include>
+          <include>com.google.protobuf:protobuf-java</include>
+          <include>org.apache.ratis:ratis-common:jar:0.2.0</include>
+          <include>org.apache.ratis:ratis-thirdparty-misc:jar:0.2.0</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-kms-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/kms</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-kms-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:embeddedwebserver</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.tomcat.embed:tomcat-embed*</include>
+          <include>org.apache.tomcat:tomcat-annotations-api*</include>
+          <include>org.eclipse.jdt.core.compiler:ecj:jar:P20140317-1600</include>
+          <include>log4j:log4j</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-common</include>
+          <include>org.slf4j:slf4j-api</include>
+          <include>org.apache.hadoop:hadoop-common</include>
+          <include>commons-logging:commons-logging</include>
+          <include>com.sun.jersey.contribs:jersey-multipart</include>
+          <include>com.google.guava:guava</include>
+          <include>commons-collections:commons-collections</include>
+          <include>commons-lang:commons-lang</include>
+          <include>commons-io:commons-io</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>org.apache.httpcomponents:httpclient</include>
+          <include>org.apache.httpcomponents:httpcore</include>
+          <include>org.noggit:noggit</include>
+          <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
+          <include>org.apache.httpcomponents:httpmime</include>
+          <include>commons-codec:commons-codec</include>
+          <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+          <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+          <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>cred/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>commons-configuration:commons-configuration</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang</include>
+          <include>commons-lang3:commons-lang3</include>
+          <include>commons-logging:commons-logging</include>
+          <include>com.google.guava:guava</include>
+          <include>org.slf4j:slf4j-api</include>
+          <include>org.apache.hadoop:hadoop-common</include>
+          <include>org.apache.hadoop:hadoop-auth</include>
+          <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+          <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+          <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:jisql</include>
+      </includes>
+      <binaries>
+        <outputDirectory>jisql/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>net.sf.jopt-simple:jopt-simple</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-kafka-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/kafka</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-kafka-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+            
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-solr-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/solr</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-solr-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-nifi-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/nifi</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-nifi-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-nifi-registry-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/nifi-registry</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-nifi-registry-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-atlas-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/atlas</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-nifi-registry-plugin</include>
+          <include>org.apache.atlas:atlas-intg:jar:${atlas.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-sqoop-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/sqoop</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-sqoop-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-kylin-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/kylin</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-kylin-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/elasticsearch</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-presto-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>ews/webapp/WEB-INF/classes/ranger-plugins/presto</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:ranger-presto-plugin</include>
+          <include>io.prestosql:presto-spi:jar:${presto.version}</include>
+          <include>io.prestosql:presto-jdbc:jar:${presto.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <fileSet>
+      <outputDirectory>ews</outputDirectory>
+      <directory>${project.parent.basedir}/embeddedwebserver/scripts</directory>
+      <fileMode>544</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
+      <directory>${project.parent.basedir}/embeddedwebserver/conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>db</outputDirectory>
+      <directory>${project.parent.basedir}/security-admin/db</directory>
+      <fileMode>544</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory>contrib</outputDirectory>
+      <directory>${project.parent.basedir}/security-admin/contrib</directory>
+      <fileMode>544</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.parent.basedir}/security-admin/scripts</directory>
+      <includes>
+        <include>install.properties</include>
+      </includes>
+      <fileMode>700</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.parent.basedir}/security-admin/scripts</directory>
+      <includes>
+        <include>setup.sh</include>
+        <include>setup_authentication.sh</include>
+        <include>set_globals.sh</include>
+        <include>db_setup.py</include>
+        <include>dba_script.py</include>
+        <include>restrict_permissions.py</include>
+        <include>upgrade_admin.py</include>
+        <include>upgrade.sh</include>
+        <include>update_property.py</include>
+        <include>ranger_credential_helper.py</include>
+        <include>deleteUserGroupUtil.py</include>
+        <include>changepasswordutil.py</include>
+        <include>changeusernameutil.py</include>
+        <include>rolebasedusersearchutil.py</include>
+      </includes>
+      <fileMode>544</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory>templates-upgrade</outputDirectory>
+      <directory>${project.parent.basedir}/security-admin/scripts</directory>
+      <includes>
+        <include>install.properties</include>
+        <include>ranger-admin-site-template.xml</include>
+      </includes>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.parent.basedir}/security-admin</directory>
+      <includes>
+        <include>3rd_party_licenses.txt</include>
+        <include>3rd_party_licenses_text.txt</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.directory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory>bin</outputDirectory>
+      <directory>${project.parent.basedir}/security-admin/src/bin</directory>
+      <fileMode>0755</fileMode>
+      <directoryMode>0755</directoryMode>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/distro/src/main/assembly/hbase-agent.xml b/distro/src/main/assembly/hbase-agent.xml
new file mode 100644
index 0000000..34ca795
--- /dev/null
+++ b/distro/src/main/assembly/hbase-agent.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>hbase-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-hbase-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-hbase-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-hbase-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-hbase-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>com.google.code.gson:gson*</include>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>${project.parent.basedir}/hbase-agent/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>${project.parent.basedir}/hbase-agent/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>${project.parent.basedir}/hive-agent/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-hbase-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>upgrade-hbase-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-hbase-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+
+    <file>
+      <source>${project.parent.basedir}/hbase-agent/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/hdfs-agent.xml b/distro/src/main/assembly/hdfs-agent.xml
new file mode 100644
index 0000000..709c4c7
--- /dev/null
+++ b/distro/src/main/assembly/hdfs-agent.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>hdfs-plugin</id>
+  <formats>
+     <format>tar.gz</format>
+     <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-hdfs-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-hdfs-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+     </binaries>
+    </moduleSet>
+    
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+     </binaries>
+    </moduleSet>
+    
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-hdfs-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-hdfs-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+        <outputDirectory>install/conf.templates/enable</outputDirectory>
+        <directory>${project.parent.basedir}/hdfs-agent/conf</directory>
+        <excludes>
+            <exclude>*.sh</exclude>
+        </excludes>
+        <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+        <outputDirectory>install/conf.templates/disable</outputDirectory>
+        <directory>${project.parent.basedir}/hdfs-agent/disable-conf</directory>
+        <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+        <outputDirectory></outputDirectory>
+        <directory>${project.build.outputDirectory}</directory>
+        <includes>
+            <include>version</include>
+        </includes>
+        <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <!-- enable/disable script for plugin -->
+  <files>
+    <file>
+        <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+        <outputDirectory></outputDirectory>
+        <destName>enable-hdfs-plugin.sh</destName>
+        <fileMode>755</fileMode>
+    </file>
+    <file>
+        <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.sh</source>
+        <outputDirectory></outputDirectory>
+        <destName>upgrade-hdfs-plugin.sh</destName>
+        <fileMode>755</fileMode>
+    </file>
+    <file>
+        <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.py</source>
+        <outputDirectory></outputDirectory>
+        <fileMode>755</fileMode>
+    </file>
+    <file>
+        <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+        <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+        <outputDirectory></outputDirectory>
+        <destName>disable-hdfs-plugin.sh</destName>
+        <fileMode>755</fileMode>
+    </file>
+    <file>
+        <source>${project.parent.basedir}/hdfs-agent/scripts/install.properties</source>
+        <outputDirectory></outputDirectory>
+        <destName>install.properties</destName>
+        <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/hive-agent.xml b/distro/src/main/assembly/hive-agent.xml
new file mode 100644
index 0000000..fc170fd
--- /dev/null
+++ b/distro/src/main/assembly/hive-agent.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>hive-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-hive-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-hive-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-hive-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-hive-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>${project.parent.basedir}/hive-agent/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>${project.parent.basedir}/hive-agent/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>${project.parent.basedir}/hive-agent/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <!-- enable/disable script for agent -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-hive-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>upgrade-hive-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-hive-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/hive-agent/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/kms.xml b/distro/src/main/assembly/kms.xml
new file mode 100755
index 0000000..7b7ea8d
--- /dev/null
+++ b/distro/src/main/assembly/kms.xml
@@ -0,0 +1,445 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+    <id>kms</id>
+    <formats>
+        <format>tar.gz</format>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${project.parent.name}-${project.version}-kms</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+
+    <moduleSets>
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-kms</include>
+            </includes>
+            <binaries>
+                <outputDirectory>ews/webapp/lib</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <includes>
+                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+                    <include>org.eclipse.persistence:eclipselink</include>
+                    <include>org.eclipse.persistence:javax.persistence</include>
+                    <include>com.googlecode.log4jdbc:log4jdbc</include>
+                    <include>log4j:log4j</include>
+                    <include>org.slf4j:slf4j-api</include>
+                    <include>org.slf4j:slf4j-log4j12</include>
+                    <include>com.codahale.metrics:metrics-core</include>
+                    <include>org.slf4j:jul-to-slf4j</include>
+                    <include>commons-logging:commons-logging</include>
+                    <include>com.google.guava:guava</include>
+                    <include>com.sun.jersey:jersey-core</include>
+                    <include>com.sun.jersey:jersey-server</include>
+                    <include>javax.servlet:servlet-api</include>
+                    <include>org.mortbay.jetty:jetty</include>
+                    <include>org.mortbay.jetty:jetty-util</include>
+                    <include>commons-collections:commons-collections</include>
+                    <include>commons-lang:commons-lang</include>
+                    <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
+                    <include>org.apache.curator:curator-framework</include>
+                    <include>org.apache.curator:curator-client</include>
+                    <include>org.apache.curator:curator-test</include>
+                    <include>asm:asm-all</include>
+                    <include>com.sun.jersey:jersey-bundle</include>
+                    <include>org.apache.httpcomponents:httpclient</include>
+                    <include>javax.activation:activation</include>
+                    <include>org.apache.directory.server:apacheds-i18n</include>
+                    <include>org.apache.directory.server:apacheds-kerberos-codec</include>
+                    <include>org.apache.directory.api:api-asn1-api</include>
+                    <include>org.apache.directory.api:api-i18n</include>
+                    <include>org.apache.directory.api:api-util</include>
+                    <include>org.apache.avro:avro</include>
+                    <include>commons-beanutils:commons-beanutils</include>
+                    <include>commons-cli:commons-cli</include>
+                    <include>commons-codec:commons-codec:jar:${commons.codec.version}</include>
+                    <include>org.apache.commons:commons-compress</include>
+                    <include>org.apache.commons:commons-configuration2</include>
+                    <include>commons-digester:commons-digester</include>
+                    <include>commons-io:commons-io</include>
+                    <include>org.apache.commons:commons-math3</include>
+                    <include>commons-net:commons-net:jar:${commons.net.version}</include>
+                    <include>org.apache.curator:curator-recipes</include>
+                    <include>com.google.code.gson:gson</include>
+                    <include>org.apache.hadoop:hadoop-annotations</include>
+                    <include>org.apache.htrace:htrace-core4</include>
+                    <include>org.apache.httpcomponents:httpcore</include>
+                    <include>org.codehaus.jackson:jackson-core-asl</include>
+                    <include>org.codehaus.jackson:jackson-jaxrs</include>
+                    <include>org.codehaus.jackson:jackson-mapper-asl</include>
+                    <include>org.codehaus.jackson:jackson-xc</include>
+                    <include>javax.xml.bind:jaxb-api</include>
+                    <include>com.sun.xml.bind:jaxb-impl</include>
+                    <include>com.sun.jersey:jersey-json</include>
+                    <include>org.codehaus.jettison:jettison</include>
+                    <include>jline:jline</include>
+                    <include>com.jcraft:jsch</include>
+                    <include>com.google.code.findbugs:jsr305</include>
+                    <include>io.netty:netty</include>
+                    <include>com.thoughtworks.paranamer:paranamer</include>
+                    <include>org.xerial.snappy:snappy-java</include>
+                    <include>xmlenc:xmlenc</include>
+                    <include>org.tukaani:xz</include>
+                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+                    <include>org.apache.httpcomponents:httpclient:jar:${kms.httpcomponents.httpclient.version}</include>
+                    <include>org.noggit:noggit:jar:${noggit.version}</include>
+                    <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
+                    <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
+                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+                    <include>org.codehaus.woodstox:stax2-api</include>
+                    <include>com.fasterxml.woodstox:woodstox-core</include>
+                    <include>com.fasterxml.jackson.core:jackson-core</include>
+                    <include>com.fasterxml.jackson.core:jackson-annotations</include>
+                    <include>com.fasterxml.jackson.core:jackson-databind</include>
+                    <include>com.microsoft.azure:azure:jar:${com.microsoft.azure.version}</include>
+                    <include>com.microsoft.azure:azure-keyvault:jar:${com.microsoft.azure.azure-keyvault.version}</include>
+                    <include>com.microsoft.azure:azure-mgmt-keyvault:jar:${com.microsoft.azure.azure-mgmt-keyvault.version}</include>
+                    <include>com.microsoft.rest:client-runtime:jar:${com.microsoft.rest.client-runtime.version}</include>
+                    <include>com.microsoft.azure:azure-client-runtime:jar:${com.microsoft.azure.azure-client-runtime.version}</include>
+                    <include>com.microsoft.azure:adal4j:jar:${com.microsoft.azure.adal4j.version}</include>
+                    <include>io.reactivex:rxjava:jar:${io.reactivex.rxjava.version}</include>
+                    <include>com.squareup.okhttp3:okhttp</include>
+                    <include>com.squareup.okio:okio</include>
+                    <include>com.squareup.retrofit2:retrofit</include>
+                    <include>com.squareup.retrofit2:adapter-rxjava</include>
+                    <include>com.squareup.okhttp3:okhttp-urlconnection</include>
+                    <include>com.fasterxml.jackson.datatype:jackson-datatype-joda</include>
+                    <include>joda-time:okhttp-urlconnection</include>
+                    <include>joda-time:joda-time</include>
+                    <include>com.nimbusds:oauth2-oidc-sdk</include>
+                    <include>net.minidev:json-smart</include>
+                    <include>net.minidev:asm:jar:${net.minidev.asm.version}</include>
+                    <include>javax.mail:javax.mail-api</include>
+                    <include>com.sun.mail:javax.mail</include>
+                    <include>com.nimbusds:nimbus-jose-jwt</include>
+                    <include>org.apache.commons:commons-lang3</include>
+                    <include>com.microsoft.azure:azure-keyvault-webkey</include>
+                    <include>org.bouncycastle:bcprov-jdk15on</include>
+                    <include>org.bouncycastle:bcpkix-jdk15on</include>
+                    <include>com.microsoft.azure:azure-mgmt-resources</include>
+                    <include>com.microsoft.azure:azure-client-authentication</include>
+                    <include>com.microsoft.azure:azure-mgmt-graph-rbac</include>
+                    <include>com.microsoft.azure:azure-mgmt-storage</include>
+                    <include>com.microsoft.azure:azure-mgmt-compute</include>
+                    <include>com.microsoft.azure:azure-mgmt-network</include>
+                    <include>com.microsoft.azure:azure-mgmt-batch</include>
+                    <include>com.microsoft.azure:azure-mgmt-batchai</include>
+                    <include>com.microsoft.azure:azure-mgmt-trafficmanager</include>
+                    <include>com.microsoft.azure:azure-mgmt-redis</include>
+                    <include>com.microsoft.azure:azure-mgmt-cdn</include>
+                    <include>com.microsoft.azure:azure-mgmt-dns</include>
+                    <include>com.microsoft.azure:azure-mgmt-appservice</include>
+                    <include>com.microsoft.azure:azure-mgmt-sql</include>
+                    <include>com.microsoft.azure:azure-mgmt-servicebus</include>
+                    <include>com.microsoft.azure:azure-mgmt-containerinstance</include>
+                    <include>com.microsoft.azure:azure-mgmt-containerregistry</include>
+                    <include>com.microsoft.azure:azure-mgmt-containerservice</include>
+                    <include>com.microsoft.azure:azure-mgmt-cosmosdb</include>
+                    <include>com.microsoft.azure:azure-mgmt-search</include>
+                    <include>com.microsoft.azure:azure-mgmt-locks</include>
+                    <include>com.microsoft.azure:azure-mgmt-msi</include>
+                    <include>com.microsoft.azure:azure-mgmt-monitor</include>
+                    <include>com.microsoft.azure:azure-mgmt-eventhub</include>
+                    <include>com.microsoft.azure:azure-mgmt-eventhub</include>
+                    <include>com.microsoft.azure:azure-keyvault-cryptography</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-kms</include>
+            </includes>
+            <binaries>
+                <outputDirectory>ews/webapp</outputDirectory>
+                <includeDependencies>false</includeDependencies>
+                <unpack>true</unpack>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:embeddedwebserver</include>
+            </includes>
+            <binaries>
+                <outputDirectory>ews/webapp/WEB-INF/classes/lib</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <includes>
+                    <include>org.apache.tomcat.embed:tomcat-embed*</include>
+                    <include>org.apache.tomcat:tomcat-annotations-api*</include>
+                    <include>org.eclipse.jdt.core.compiler:ecj:jar:P20140317-1600</include>
+                    <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
+                    <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
+                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+                    <include>org.apache.solr:solr-solrj</include>
+                    <include>org.apache.ranger:ranger-plugins-common</include>
+                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+                    <include>org.apache.ranger:ranger-plugins-cred</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:jisql</include>
+            </includes>
+            <binaries>
+                <outputDirectory>jisql/lib</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <includes>
+                    <include>net.sf.jopt-simple:jopt-simple</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+
+        <!-- Plugin -->
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-kms-plugin-shim</include>
+                <include>org.apache.ranger:ranger-plugin-classloader</include>
+                <include>org.apache.ranger:credentialbuilder</include>
+            </includes>
+            <binaries>
+                <outputDirectory>ews/webapp/WEB-INF/classes/lib</outputDirectory>
+                <includeDependencies>false</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-plugins-audit</include>
+                <include>org.apache.ranger:ranger-plugins-cred</include>
+                <include>org.apache.ranger:ranger-plugins-common</include>
+                <include>org.apache.ranger:ranger-kms-plugin</include>
+            </includes>
+            <binaries>
+                <outputDirectory>ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <dependencySets>
+                    <dependencySet>
+                        <outputDirectory>ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
+                        <unpack>false</unpack>
+                        <includes>
+                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+                            <include>com.google.code.gson:gson</include>
+                            <include>org.eclipse.persistence:eclipselink</include>
+                            <include>org.eclipse.persistence:javax.persistence</include>
+                            <include>commons-collections:commons-collections</include>
+                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
+                            <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+                            <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+                            <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+                            <include>org.noggit:noggit:jar:${noggit.version}</include>
+                            <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
+                            <include>org.apache.solr:solr-solrj</include>
+                            <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+                            <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+                            <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+                        </includes>
+                    </dependencySet>
+                    <dependencySet>
+                        <outputDirectory>install/lib</outputDirectory>
+                        <unpack>false</unpack>
+                        <directoryMode>755</directoryMode>
+                        <fileMode>644</fileMode>
+                        <includes>
+                            <include>commons-cli:commons-cli</include>
+                            <include>commons-collections:commons-collections</include>
+                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+                            <include>commons-io:commons-io:jar:${commons.io.version}</include>
+                            <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
+                            <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+                            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+                            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+                            <include>org.apache.ranger:ranger-plugins-cred</include>
+                            <include>org.apache.ranger:credentialbuilder</include>
+                            <include>org.codehaus.woodstox:stax2-api</include>
+                            <include>com.fasterxml.woodstox:woodstox-core</include>
+                        </includes>
+                    </dependencySet>
+                </dependencySets>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-plugins-installer</include>
+                <include>org.apache.ranger:credentialbuilder</include>
+            </includes>
+            <binaries>
+                <outputDirectory>install/lib</outputDirectory>
+                <includeDependencies>false</includeDependencies>
+                <unpack>false</unpack>
+            </binaries>
+        </moduleSet>
+        <!-- End Plugin -->
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:credentialbuilder</include>
+            </includes>
+            <binaries>
+                <outputDirectory>cred/lib</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <includes>
+                    <include>commons-cli:commons-cli</include>
+                    <include>commons-collections:commons-collections</include>
+                    <include>org.apache.commons:commons-configuration2</include>
+                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
+                    <include>commons-lang:commons-lang</include>
+                    <include>commons-logging:commons-logging</include>
+                    <include>com.google.guava:guava</include>
+                    <include>org.slf4j:slf4j-api</include>
+                    <include>org.apache.hadoop:hadoop-common</include>
+                    <include>org.apache.hadoop:hadoop-auth</include>
+                    <include>org.apache.htrace:htrace-core4</include>
+                    <include>org.codehaus.woodstox:stax2-api</include>
+                    <include>com.fasterxml.woodstox:woodstox-core</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+    </moduleSets>
+
+    <fileSets>
+        <!-- <fileSet>
+            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
+            <directory>${project.parent.basedir}/kms/config/webserver</directory>
+            <fileMode>700</fileMode>
+        </fileSet> -->
+        <fileSet>
+            <outputDirectory>db</outputDirectory>
+            <directoryMode>755</directoryMode>
+            <directory>${project.parent.basedir}/kms/scripts/db</directory>
+            <fileMode>544</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory></outputDirectory>
+            <directory>${project.parent.basedir}/kms/scripts</directory>
+            <includes>
+                <include>dba_script.py</include>
+                <include>db_setup.py</include>
+                <include>update_property.py</include>
+                <include>ranger-kms-initd</include>
+                <include>ranger-kms</include>
+                <include>setup.sh</include>
+                <include>importJCEKSKeys.sh</include>
+                <include>exportKeysToJCEKS.sh</include>
+                <include>HSMMK2DB.sh</include>
+                <include>DBMK2HSM.sh</include>
+                <include>VerifyIsDBMasterkeyCorrect.sh</include>
+                <include>VerifyIsHSMMasterkeyCorrect.sh</include>
+                <include>DBMKTOKEYSECURE.sh</include>
+                <include>DBMKTOAZUREKEYVAULT.sh</include>
+                <include>KEYSECUREMKTOKMSDB.sh</include>
+            </includes>
+            <fileMode>544</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory></outputDirectory>
+            <directory>${project.parent.basedir}/kms/scripts</directory>
+            <includes>
+                <include>install.properties</include>
+            </includes>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
+            <directoryMode>0700</directoryMode>
+            <directory>${project.parent.basedir}/kms/config/kms-webapp</directory>
+            <fileMode>0700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
+            <directoryMode>0700</directoryMode>
+            <directory>${project.parent.basedir}/kms/config/webserver</directory>
+            <fileMode>0700</fileMode>
+        </fileSet>
+        <!-- Plugin -->
+        <!-- conf.templates for enable -->
+        <fileSet>
+            <outputDirectory>install/conf.templates/enable</outputDirectory>
+            <directory>${project.parent.basedir}/plugin-kms/conf</directory>
+            <excludes>
+                <exclude>*.sh</exclude>
+            </excludes>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>install/conf.templates/disable</outputDirectory>
+            <directory>${project.parent.basedir}/plugin-kms/disable-conf</directory>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>install/conf.templates/default</outputDirectory>
+            <directory>${project.parent.basedir}/plugin-kms/template</directory>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <!-- version file -->
+        <fileSet>
+            <outputDirectory></outputDirectory>
+            <directory>${project.build.directory}</directory>
+            <includes>
+                <include>version</include>
+            </includes>
+            <fileMode>444</fileMode>
+        </fileSet>
+    </fileSets>
+    <files>
+        <file>
+            <source>${project.parent.basedir}/plugin-kms/scripts/enable-kms-plugin.sh</source>
+            <outputDirectory></outputDirectory>
+            <destName>enable-kms-plugin.sh</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+            <outputDirectory></outputDirectory>
+            <fileMode>755</fileMode>
+        </file>
+    </files>
+</assembly>
diff --git a/distro/src/main/assembly/knox-agent.xml b/distro/src/main/assembly/knox-agent.xml
new file mode 100644
index 0000000..c347a33
--- /dev/null
+++ b/distro/src/main/assembly/knox-agent.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>knox-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-knox-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-knox-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-knox-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-knox-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.commons:commons-configuration2</include>
+          <include>com.google.code.gson:gson*</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
+          <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+          <include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
+          <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>${project.parent.basedir}/knox-agent/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>${project.parent.basedir}/knox-agent/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>${project.parent.basedir}/knox-agent/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+
+  <!-- enable/disable script for plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-knox-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>upgrade-knox-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-knox-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/knox-agent/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/src/main/assembly/migration-util.xml b/distro/src/main/assembly/migration-util.xml
similarity index 60%
rename from src/main/assembly/migration-util.xml
rename to distro/src/main/assembly/migration-util.xml
index f2eda12..4c723b8 100644
--- a/src/main/assembly/migration-util.xml
+++ b/distro/src/main/assembly/migration-util.xml
@@ -18,26 +18,26 @@
 <assembly>
   <id>migration-util</id>
   <formats>
-     <format>tar.gz</format>
-     <format>zip</format>
+    <format>tar.gz</format>
+    <format>zip</format>
   </formats>
-  <baseDirectory>${project.name}-${project.version}-migration-util</baseDirectory>
+  <baseDirectory>${project.parent.name}-${project.version}-migration-util</baseDirectory>
   <includeBaseDirectory>true</includeBaseDirectory>
   <fileSets>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>644</fileMode>
-		<outputDirectory>/</outputDirectory>
-		<directory>migration-util</directory>
-	</fileSet>
-        <fileSet>
-	    	<directoryMode>755</directoryMode>
-                <outputDirectory>/</outputDirectory>
-                <directory>${project.build.directory}</directory>
-                <includes>
-                        <include>version</include>
-                </includes>
-		<fileMode>444</fileMode>
-        </fileSet>
+    <fileSet>
+      <directoryMode>755</directoryMode>
+      <fileMode>644</fileMode>
+      <outputDirectory></outputDirectory>
+      <directory>${project.parent.basedir}/migration-util</directory>
+    </fileSet>
+    <fileSet>
+      <directoryMode>755</directoryMode>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.directory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
   </fileSets>
 </assembly>
diff --git a/distro/src/main/assembly/plugin-atlas.xml b/distro/src/main/assembly/plugin-atlas.xml
new file mode 100644
index 0000000..b267549
--- /dev/null
+++ b/distro/src/main/assembly/plugin-atlas.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>atlas-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-atlas-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-atlas-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-atlas-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-atlas-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>com.sun.jersey:jersey-bundle</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.codehaus.jackson:jackson-jaxrs</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>org.codehaus.jackson:jackson-core-asl</include>
+          <include>org.codehaus.jackson:jackson-mapper-asl</include>
+          <include>org.codehaus.jackson:jackson-xc</include>
+          <include>org.apache.ranger:ranger-plugins-audit</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:ranger-plugins-common</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+          <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+          <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+          <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>org.apache.hadoop:hadoop-azure:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-azure-datalake:jar:${hadoop.version}</include>
+          <include>org.apache.knox:gateway-cloud-bindings</include>
+          <include>org.apache.knox:gateway-shell</include>
+          <include>org.apache.knox:gateway-i18n</include>
+          <include>org.wildfly.openssl:wildfly-openssl:jar:${wildfly.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-atlas-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+          <include>commons-logging:commons-logging</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:credentialbuilder</include>
+          <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+          <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+          <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <includeDependencies>false</includeDependencies>
+        <outputDirectory>install/lib</outputDirectory>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>${project.parent.basedir}/plugin-atlas/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>${project.parent.basedir}/plugin-atlas/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <!-- enable/disable script for plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-atlas-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-atlas-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-atlas/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-elasticsearch.xml b/distro/src/main/assembly/plugin-elasticsearch.xml
new file mode 100644
index 0000000..383575c
--- /dev/null
+++ b/distro/src/main/assembly/plugin-elasticsearch.xml
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>elasticsearch-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-elasticsearch-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-elasticsearch-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-elasticsearch-plugin</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-collections:commons-collections</include>
+          <include>commons-lang:commons-lang</include>
+          <include>org.slf4j:slf4j-api</include>
+          <include>org.slf4j:slf4j-log4j12</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-elasticsearch-plugin/ranger-elasticsearch-plugin-impl</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
+          <include>com.google.code.gson:gson</include>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>com.sun.jersey:jersey-bundle</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>commons-io:commons-io</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.codehaus.jackson:jackson-core-asl</include>
+          <include>org.codehaus.jackson:jackson-jaxrs</include>
+          <include>org.codehaus.jackson:jackson-mapper-asl</include>
+          <include>org.codehaus.jackson:jackson-xc</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>commons-codec:commons-codec</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:credentialbuilder</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>/install/conf.templates/enable</outputDirectory>
+      <directory>${project.parent.basedir}/plugin-elasticsearch/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>/install/conf.templates/disable</outputDirectory>
+      <directory>${project.parent.basedir}/plugin-elasticsearch/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>/install/conf.templates/default</outputDirectory>
+      <directory>${project.parent.basedir}/plugin-elasticsearch/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory>/</outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory>/</outputDirectory>
+      <destName>enable-elasticsearch-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory>/</outputDirectory>
+      <destName>disable-elasticsearch-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-elasticsearch/scripts/install.properties</source>
+      <outputDirectory>/</outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory>/</outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/ranger-elasticsearch-plugin-shim/conf/plugin-descriptor.properties</source>
+      <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
+      <fileMode>755</fileMode>
+      <filtered>true</filtered>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/ranger-elasticsearch-plugin-shim/conf/plugin-security.policy</source>
+      <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-kafka.xml b/distro/src/main/assembly/plugin-kafka.xml
new file mode 100644
index 0000000..4a88d02
--- /dev/null
+++ b/distro/src/main/assembly/plugin-kafka.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	You under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<assembly>
+
+	<id>kafka-plugin</id>
+	<formats>
+		<format>tar.gz</format>
+		<format>zip</format>
+	</formats>
+	<baseDirectory>${project.parent.name}-${project.version}-kafka-plugin
+	</baseDirectory>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<moduleSets>
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:ranger-kafka-plugin-shim</include>
+				<include>org.apache.ranger:ranger-plugin-classloader</include>
+			</includes>
+			<binaries>
+				<outputDirectory>lib</outputDirectory>
+				<includeDependencies>false</includeDependencies>
+				<unpack>false</unpack>
+				<directoryMode>755</directoryMode>
+				<fileMode>644</fileMode>
+			</binaries>
+		</moduleSet>
+
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:ranger-kafka-plugin</include>
+				<include>org.apache.ranger:ranger-plugins-audit</include>
+				<include>org.apache.ranger:ranger-plugins-cred</include>
+				<include>org.apache.ranger:ranger-plugins-common</include>
+			</includes>
+			<binaries>
+				<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
+				<includeDependencies>true</includeDependencies>
+				<unpack>false</unpack>
+				<directoryMode>755</directoryMode>
+				<fileMode>644</fileMode>
+				<includes>
+					<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+					<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+					<include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}</include>
+					<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+					<include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
+					<include>com.google.code.gson:gson</include>
+					<include>org.eclipse.persistence:eclipselink</include>
+					<include>org.eclipse.persistence:javax.persistence</include>
+					<include>commons-collections:commons-collections</include>
+					<include>com.sun.jersey:jersey-bundle</include>
+					<include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+					<include>commons-lang:commons-lang</include>
+					<include>commons-io:commons-io</include>
+					<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+					<include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+					<include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+					<include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
+					<include>org.noggit:noggit:jar:${noggit.version}</include>
+					<include>org.codehaus.jackson:jackson-core-asl</include>
+					<include>org.codehaus.jackson:jackson-jaxrs</include>
+					<include>org.codehaus.jackson:jackson-mapper-asl</include>
+					<include>org.codehaus.jackson:jackson-xc</include>
+					<include>org.apache.solr:solr-solrj</include>
+					<include>commons-codec:commons-codec</include>
+					<include>org.codehaus.woodstox:stax2-api</include>
+					<include>com.fasterxml.woodstox:woodstox-core</include>
+					<include>org.apache.htrace:htrace-core4</include>
+					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
+					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+				</includes>
+			</binaries>
+		</moduleSet>
+
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:ranger-kafka-plugin</include>
+				<include>org.apache.ranger:ranger-plugins-audit</include>
+				<include>org.apache.ranger:ranger-plugins-cred</include>
+				<include>org.apache.ranger:ranger-plugins-common</include>
+			</includes>
+			<binaries>
+				<outputDirectory>install/lib</outputDirectory>
+				<includeDependencies>true</includeDependencies>
+				<unpack>false</unpack>
+				<directoryMode>755</directoryMode>
+				<fileMode>644</fileMode>
+				<includes>
+					<include>commons-cli:commons-cli</include>
+					<include>commons-collections:commons-collections</include>
+					<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+					<include>commons-io:commons-io:jar:${commons.io.version}</include>
+					<include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+					<include>commons-logging:commons-logging</include>
+					<include>com.google.guava:guava:jar:${google.guava.version}</include>
+					<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+					<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+					<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+					<include>org.apache.ranger:ranger-plugins-cred</include>
+					<include>org.apache.ranger:credentialbuilder</include>
+					<include>org.codehaus.woodstox:stax2-api</include>
+					<include>com.fasterxml.woodstox:woodstox-core</include>
+					<include>org.apache.htrace:htrace-core4</include>
+				</includes>
+			</binaries>
+		</moduleSet>
+
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:ranger-plugins-installer</include>
+				<include>org.apache.ranger:credentialbuilder</include>
+			</includes>
+			<binaries>
+				<outputDirectory>install/lib</outputDirectory>
+				<includeDependencies>false</includeDependencies>
+				<unpack>false</unpack>
+			</binaries>
+		</moduleSet>
+	</moduleSets>
+
+	<fileSets>
+		<!-- conf.templates for enable -->
+		<fileSet>
+			<outputDirectory>install/conf.templates/enable</outputDirectory>
+			<directory>../plugin-kafka/conf</directory>
+			<fileMode>700</fileMode>
+		</fileSet>
+		<fileSet>
+			<outputDirectory>install/conf.templates/disable</outputDirectory>
+			<directory>../plugin-kafka/disable-conf</directory>
+			<fileMode>700</fileMode>
+		</fileSet>
+		<fileSet>
+			<outputDirectory>install/conf.templates/default</outputDirectory>
+			<directory>../plugin-kafka/template</directory>
+			<fileMode>700</fileMode>
+		</fileSet>
+		<!-- version file -->
+		<fileSet>
+			<outputDirectory></outputDirectory>
+			<directory>${project.build.outputDirectory}</directory>
+			<includes>
+				<include>version</include>
+			</includes>
+			<fileMode>444</fileMode>
+		</fileSet>
+	</fileSets>
+
+	<!-- enable/disable script for Plugin -->
+	<files>
+		<file>
+			<source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+			<outputDirectory></outputDirectory>
+			<destName>enable-kafka-plugin.sh</destName>
+			<fileMode>755</fileMode>
+		</file>
+		<file>
+			<source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+			<outputDirectory></outputDirectory>
+			<destName>disable-kafka-plugin.sh</destName>
+			<fileMode>755</fileMode>
+		</file>
+		<file>
+			<source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+			<outputDirectory></outputDirectory>
+			<fileMode>755</fileMode>
+		</file>
+		<file>
+			<source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+			<outputDirectory></outputDirectory>
+			<fileMode>755</fileMode>
+		</file>
+		<file>
+			<source>${project.parent.basedir}/plugin-kafka/scripts/install.properties</source>
+			<outputDirectory></outputDirectory>
+			<destName>install.properties</destName>
+			<fileMode>755</fileMode>
+		</file>
+	</files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-kms.xml b/distro/src/main/assembly/plugin-kms.xml
new file mode 100755
index 0000000..c3738ce
--- /dev/null
+++ b/distro/src/main/assembly/plugin-kms.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>kms-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-kms-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-kms-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-kms-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-kms-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>com.google.code.gson:gson</include>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>commons-collections:commons-collections</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-kms-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:credentialbuilder</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>../plugin-kms/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>../plugin-kms/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>../plugin-kms/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-kms-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-kms/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-kms/scripts/kms-plugin-install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>kms-plugin-install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-kylin.xml b/distro/src/main/assembly/plugin-kylin.xml
new file mode 100644
index 0000000..ac0509f
--- /dev/null
+++ b/distro/src/main/assembly/plugin-kylin.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>kylin-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-kylin-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-kylin-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-kylin-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-kylin-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <dependencySets>
+          <dependencySet>
+            <outputDirectory>lib/ranger-kylin-plugin-impl</outputDirectory>
+            <unpack>false</unpack>
+            <includes>
+              <include>org.eclipse.persistence:eclipselink</include>
+              <include>org.eclipse.persistence:javax.persistence</include>
+              <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+              <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+              <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+              <include>org.noggit:noggit:jar:${noggit.version}</include>
+              <include>org.apache.solr:solr-solrj</include>
+              <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+              <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+              <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+            </includes>
+          </dependencySet>
+          <dependencySet>
+            <outputDirectory>install/lib</outputDirectory>
+            <unpack>false</unpack>
+            <directoryMode>755</directoryMode>
+            <fileMode>644</fileMode>
+            <includes>
+              <include>commons-cli:commons-cli</include>
+              <include>commons-collections:commons-collections</include>
+              <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+              <include>commons-io:commons-io:jar:${commons.io.version}</include>
+              <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+              <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+              <include>com.google.guava:guava:jar:${google.guava.version}</include>
+              <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+              <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+              <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+              <include>org.apache.ranger:ranger-plugins-cred</include>
+              <include>org.apache.ranger:credentialbuilder</include>
+              <include>org.codehaus.woodstox:stax2-api</include>
+              <include>com.fasterxml.woodstox:woodstox-core</include>
+              <include>org.apache.htrace:htrace-core4</include>
+            </includes>
+          </dependencySet>
+        </dependencySets>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>../plugin-kylin/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>../plugin-kylin/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>../plugin-kylin/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-kylin-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-kylin-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-kylin/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-ozone.xml b/distro/src/main/assembly/plugin-ozone.xml
new file mode 100644
index 0000000..98ee9c1
--- /dev/null
+++ b/distro/src/main/assembly/plugin-ozone.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+    <id>ozone-plugin</id>
+    <formats>
+        <format>tar.gz</format>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${project.parent.name}-${project.version}-ozone-plugin</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <moduleSets>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-ozone-plugin-shim</include>
+                <include>org.apache.ranger:ranger-plugin-classloader</include>
+            </includes>
+            <binaries>
+                <outputDirectory>lib</outputDirectory>
+                <includeDependencies>false</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-plugins-installer</include>
+                <include>org.apache.ranger:credentialbuilder</include>
+            </includes>
+            <binaries>
+                <outputDirectory>install/lib</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <includes>
+                    <include>commons-cli:commons-cli</include>
+                    <include>commons-collections:commons-collections</include>
+                    <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
+                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
+                    <include>commons-lang:commons-lang</include>
+                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
+                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+                    <include>org.apache.hadoop:hadoop-ozone:jar:0.4.0.3.0.100.0-SNAPSHOT</include>
+                    <include>org.apache.hadoop:hadoop-hdds:jar:0.4.0.3.0.100.0-SNAPSHOT</include>
+                    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+                    <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration2.version}</include>
+                    <include>com.sun.jersey:jersey-core</include>
+                    <include>com.sun.jersey:jersey-client</include>
+                    <include>com.sun.jersey:jersey-bundle</include>
+                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+                    <include>com.kstruct:gethostname4j</include>
+                    <include>net.java.dev.jna:jna</include>
+                    <include>net.java.dev.jna:jna-platform</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-plugins-audit</include>
+                <include>org.apache.ranger:ranger-plugins-cred</include>
+                <include>org.apache.ranger:ranger-plugins-common</include>
+                <include>org.apache.ranger:ranger-ozone-plugin</include>
+            </includes>
+            <binaries>
+                <outputDirectory>lib/ranger-ozone-plugin-impl</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <includes>
+                    <include>org.eclipse.persistence:javax.persistence</include>
+                    <include>org.eclipse.persistence:eclipselink</include>
+                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+                    <include>org.noggit:noggit:jar:${noggit.version}</include>
+                    <include>org.apache.solr:solr-solrj</include>
+                    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+                    <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration2.version}</include>
+                    <include>com.sun.jersey:jersey-core</include>
+                    <include>com.sun.jersey:jersey-client</include>
+                    <include>com.sun.jersey:jersey-bundle</include>
+                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
+                    <include>commons-lang:commons-lang</include>
+                    <include>com.kstruct:gethostname4j</include>
+                    <include>net.java.dev.jna:jna</include>
+                    <include>net.java.dev.jna:jna-platform</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+    </moduleSets>
+
+    <fileSets>
+        <fileSet>
+            <outputDirectory>   install/conf.templates/enable</outputDirectory>
+            <directory>../plugin-ozone/conf</directory>
+            <excludes>
+                <exclude>*.sh</exclude>
+            </excludes>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>install/conf.templates/disable</outputDirectory>
+            <directory>../plugin-ozone/disable-conf</directory>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>install/conf.templates/default</outputDirectory>
+            <directory>../plugin-ozone/template</directory>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory></outputDirectory>
+            <directory>${project.build.outputDirectory}</directory>
+            <includes>
+                <include>version</include>
+            </includes>
+            <fileMode>444</fileMode>
+        </fileSet>
+    </fileSets>
+    <files>
+        <file>
+            <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+            <outputDirectory></outputDirectory>
+            <destName>enable-ozone-plugin.sh</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+            <outputDirectory></outputDirectory>
+            <destName>disable-ozone-plugin.sh</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/plugin-ozone/scripts/install.properties</source>
+            <outputDirectory></outputDirectory>
+            <destName>install.properties</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+            <outputDirectory></outputDirectory>
+            <fileMode>755</fileMode>
+        </file>
+    </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-presto.xml b/distro/src/main/assembly/plugin-presto.xml
new file mode 100644
index 0000000..d2075bf
--- /dev/null
+++ b/distro/src/main/assembly/plugin-presto.xml
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+    <id>presto-plugin</id>
+    <formats>
+        <format>tar.gz</format>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${project.parent.name}-${project.version}-presto-plugin</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <moduleSets>
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-presto-plugin-shim</include>
+                <include>org.apache.ranger:ranger-plugin-classloader</include>
+            </includes>
+            <binaries>
+                <outputDirectory>lib</outputDirectory>
+                <includeDependencies>false</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <includes>
+                    <include>com.google.inject:guice:jar:${presto.guice.version}</include>
+                    <include>com.google.guava:guava:jar:${presto.guava.version}</include>
+                    <include>io.airlift:bootstrap:jar:${presto.airlift.version}</include>
+                    <include>io.airlift:log:jar:${presto.airlift.version}</include>
+                    <include>io.airlift:log-manager:jar:${presto.airlift.version}</include>
+                    <include>io.airlift:configuration:jar:${presto.airlift.version}</include>
+                    <include>javax.validation:validation-api:jar:${presto.validation-api.version}</include>
+                    <include>javax.inject:javax.inject:jar:${javax-inject.version}</include>
+                    <include>org.apache.bval:bval-jsr:jar:${presto.bval-jsr.version}</include>
+                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-plugins-audit</include>
+                <include>org.apache.ranger:ranger-plugins-cred</include>
+                <include>org.apache.ranger:ranger-plugins-common</include>
+                <include>org.apache.ranger:ranger-presto-plugin</include>
+            </includes>
+            <binaries>
+                <outputDirectory>lib/ranger-presto-plugin-impl</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <directoryMode>755</directoryMode>
+                <fileMode>644</fileMode>
+                <includes>
+                    <include>com.google.code.gson:gson*</include>
+                    <include>org.eclipse.persistence:eclipselink</include>
+                    <include>org.eclipse.persistence:javax.persistence</include>
+                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+                    <include>org.noggit:noggit:jar:${noggit.version}</include>
+                    <include>org.apache.solr:solr-solrj</include>
+                    <include>com.sun.jersey:jersey-core</include>
+                    <include>com.sun.jersey:jersey-server</include>
+                    <include>commons-cli:commons-cli</include>
+                    <include>commons-collections:commons-collections</include>
+                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+                    <include>commons-codec:commons-codec</include>
+                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
+                    <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
+                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+                    <include>org.apache.ranger:ranger-plugins-cred</include>
+                    <include>org.apache.ranger:credentialbuilder</include>
+                    <include>org.codehaus.woodstox:stax2-api</include>
+                    <include>com.fasterxml.woodstox:woodstox-core</include>
+                    <include>org.apache.htrace:htrace-core4</include>
+                    <include>com.sun.jersey:jersey-bundle</include>
+                    <include>com.sun.jersey:jersey-json</include>
+                    <include>org.codehaus.jackson:jackson-core-asl</include>
+                    <include>org.codehaus.jackson:jackson-jaxrs</include>
+                    <include>org.codehaus.jackson:jackson-mapper-asl</include>
+                    <include>org.codehaus.jackson:jackson-xc</include>
+                    <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
+                    <include>net.java.dev.jna:jna</include>
+                    <include>net.java.dev.jna:jna-platform</include>
+                    <include>com.kstruct:gethostname4j</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+
+        <moduleSet>
+            <useAllReactorProjects>true</useAllReactorProjects>
+            <includes>
+                <include>org.apache.ranger:ranger-plugins-installer</include>
+                <include>org.apache.ranger:credentialbuilder</include>
+            </includes>
+            <binaries>
+                <outputDirectory>install/lib</outputDirectory>
+                <includeDependencies>true</includeDependencies>
+                <unpack>false</unpack>
+                <includes>
+                    <include>commons-cli:commons-cli</include>
+                    <include>commons-collections:commons-collections</include>
+                    <include>com.google.guava:guava:jar:${presto.guava.version}</include>
+                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
+                    <include>commons-lang:commons-lang</include>
+                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
+                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+                    <include>org.codehaus.woodstox:stax2-api</include>
+                    <include>com.fasterxml.woodstox:woodstox-core</include>
+                    <include>org.apache.htrace:htrace-core4</include>
+                </includes>
+            </binaries>
+        </moduleSet>
+    </moduleSets>
+
+    <fileSets>
+        <!-- conf.templates for enable -->
+        <fileSet>
+            <outputDirectory>install/conf.templates/enable</outputDirectory>
+            <directory>../plugin-presto/conf</directory>
+            <excludes>
+                <exclude>*.sh</exclude>
+            </excludes>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>install/conf.templates/disable</outputDirectory>
+            <directory>../plugin-presto/disable-conf</directory>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <fileSet>
+            <outputDirectory>install/conf.templates/default</outputDirectory>
+            <directory>../plugin-presto/template</directory>
+            <fileMode>700</fileMode>
+        </fileSet>
+        <!-- version file -->
+        <fileSet>
+            <outputDirectory></outputDirectory>
+            <directory>${project.build.outputDirectory}</directory>
+            <includes>
+                <include>version</include>
+            </includes>
+            <fileMode>444</fileMode>
+        </fileSet>
+    </fileSets>
+
+    <!-- enable/disable script for Plugin -->
+    <files>
+        <file>
+            <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+            <outputDirectory></outputDirectory>
+            <destName>enable-presto-plugin.sh</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+            <outputDirectory></outputDirectory>
+            <destName>disable-presto-plugin.sh</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/plugin-presto/scripts/install.properties</source>
+            <outputDirectory></outputDirectory>
+            <destName>install.properties</destName>
+            <fileMode>755</fileMode>
+        </file>
+        <file>
+            <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+            <outputDirectory></outputDirectory>
+            <fileMode>755</fileMode>
+        </file>
+    </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-solr.xml b/distro/src/main/assembly/plugin-solr.xml
new file mode 100644
index 0000000..9227172
--- /dev/null
+++ b/distro/src/main/assembly/plugin-solr.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+  license agreements. See the NOTICE file distributed with this work for additional 
+  information regarding copyright ownership. The ASF licenses this file to 
+  You under the Apache License, Version 2.0 (the "License"); you may not use 
+  this file except in compliance with the License. You may obtain a copy of 
+  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+  by applicable law or agreed to in writing, software distributed under the 
+  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+  OF ANY KIND, either express or implied. See the License for the specific 
+  language governing permissions and limitations under the License. -->
+<assembly>
+  <id>solr-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-solr-plugin
+  </baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-solr-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <outputDirectory>/lib</outputDirectory>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-solr-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-solr-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>com.google.code.gson:gson</include>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>com.sun.jersey:jersey-bundle</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.codehaus.jackson:jackson-core-asl</include>
+          <include>org.codehaus.jackson:jackson-jaxrs</include>
+          <include>org.codehaus.jackson:jackson-mapper-asl</include>
+          <include>org.codehaus.jackson:jackson-xc</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+          <include>commons-logging:commons-logging</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:credentialbuilder</include>
+          <include>org.apache.ranger:ranger-solr-plugin</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>../plugin-solr/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>../plugin-solr/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>../plugin-solr/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-solr-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-solr-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-solr/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-sqoop.xml b/distro/src/main/assembly/plugin-sqoop.xml
new file mode 100644
index 0000000..e08ea0c
--- /dev/null
+++ b/distro/src/main/assembly/plugin-sqoop.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>sqoop-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-sqoop-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-sqoop-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-sqoop-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-sqoop-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:credentialbuilder</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>../plugin-sqoop/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>../plugin-sqoop/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>../plugin-sqoop/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-sqoop-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-sqoop-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-sqoop/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/plugin-yarn.xml b/distro/src/main/assembly/plugin-yarn.xml
new file mode 100644
index 0000000..5300e86
--- /dev/null
+++ b/distro/src/main/assembly/plugin-yarn.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>yarn-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-yarn-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-yarn-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-yarn-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-yarn-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.eclipse.persistence:eclipselink</include>
+          <include>org.eclipse.persistence:javax.persistence</include>
+          <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+          <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+          <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+          <include>org.noggit:noggit:jar:${noggit.version}</include>
+          <include>org.apache.solr:solr-solrj</include>
+          <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+          <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+          <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>commons-cli:commons-cli</include>
+          <include>commons-collections:commons-collections</include>
+          <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+          <include>commons-io:commons-io:jar:${commons.io.version}</include>
+          <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+          <include>com.google.guava:guava:jar:${google.guava.version}</include>
+          <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+          <include>org.apache.ranger:ranger-plugins-cred</include>
+          <include>org.apache.ranger:credentialbuilder</include>
+          <include>org.codehaus.woodstox:stax2-api</include>
+          <include>com.fasterxml.woodstox:woodstox-core</include>
+          <include>org.apache.htrace:htrace-core4</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>../plugin-yarn/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>../plugin-yarn/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>../plugin-yarn/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-yarn-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-yarn-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/plugin-yarn/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/src/main/assembly/ranger-src.xml b/distro/src/main/assembly/ranger-src.xml
similarity index 93%
rename from src/main/assembly/ranger-src.xml
rename to distro/src/main/assembly/ranger-src.xml
index 077fa42..4cd36fa 100644
--- a/src/main/assembly/ranger-src.xml
+++ b/distro/src/main/assembly/ranger-src.xml
@@ -21,11 +21,11 @@
         <format>tar.gz</format>
         <format>zip</format>
     </formats>
-    <baseDirectory>${project.name}-${project.version}-src</baseDirectory>
+    <baseDirectory>${project.parent.name}-${project.version}-src</baseDirectory>
     <includeBaseDirectory>true</includeBaseDirectory>
     <fileSets>
         <fileSet>
-            <directory>.</directory>
+            <directory>..</directory>
             <includes>
                 <include>LICENCE.txt</include>
                 <include>README.txt</include>
@@ -35,7 +35,7 @@
             <useDefaultExcludes>true</useDefaultExcludes>
         </fileSet>
         <fileSet>
-            <directory>.</directory>
+            <directory>..</directory>
             <excludes>
                 <exclude>.git/**</exclude>
                 <exclude>**/.gitignore</exclude>
diff --git a/distro/src/main/assembly/ranger-tools.xml b/distro/src/main/assembly/ranger-tools.xml
new file mode 100644
index 0000000..26e632c
--- /dev/null
+++ b/distro/src/main/assembly/ranger-tools.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>ranger-tools</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-ranger-tools</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-tools</include>
+      </includes>
+      <binaries>
+        <outputDirectory>dist</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <dependencySets>
+          <dependencySet>
+            <outputDirectory>lib</outputDirectory>
+            <unpack>false</unpack>
+            <includes>
+              <include>commons-cli:commons-cli</include>
+              <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+              <include>commons-lang:commons-lang</include>
+              <include>com.google.code.gson:gson</include>
+              <include>log4j:log4j</include>
+              <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+              <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+              <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+              <include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}</include>
+              <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+              <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
+              <include>org.eclipse.persistence:eclipselink</include>
+              <include>org.eclipse.persistence:javax.persistence</include>
+              <include>commons-collections:commons-collections</include>
+              <include>com.sun.jersey:jersey-bundle</include>
+              <include>commons-io:commons-io</include>
+              <include>com.google.guava:guava:jar:${google.guava.version}</include>
+              <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+              <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+              <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+              <include>org.noggit:noggit:jar:${noggit.version}</include>
+              <include>org.codehaus.jackson:jackson-core-asl</include>
+              <include>org.codehaus.jackson:jackson-jaxrs</include>
+              <include>org.codehaus.jackson:jackson-mapper-asl</include>
+              <include>org.codehaus.jackson:jackson-xc</include>
+              <include>org.apache.ranger:ranger-plugins-common</include>
+              <include>org.apache.ranger:ranger-plugins-audit</include>
+              <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+              <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+              <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+            </includes>
+          </dependencySet>
+        </dependencySets>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:credentialbuilder</include>
+        <include>org.apache.ranger:ranger-util</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <includes>
+          <include>org.apache.ranger:credentialbuilder</include>
+          <include>org.apache.ranger:ranger-util</include>
+        </includes>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+
+  <fileSets>
+    <fileSet>
+      <directoryMode>755</directoryMode>
+      <fileMode>644</fileMode>
+      <outputDirectory>conf</outputDirectory>
+      <directory>${project.parent.basedir}/ranger-tools/conf</directory>
+    </fileSet>
+    <fileSet>
+      <directoryMode>755</directoryMode>
+      <fileMode>644</fileMode>
+      <outputDirectory>testdata</outputDirectory>
+      <directory>${project.parent.basedir}/ranger-tools/testdata</directory>
+    </fileSet>
+    <fileSet>
+      <directoryMode>755</directoryMode>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.directory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <files>
+    <file>
+      <source>${project.parent.basedir}/ranger-tools/scripts/ranger-perftester.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>ranger-perftester.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/ranger-tools/scripts/ranger-plugin-perftester.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>ranger-plugin-perftester.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/ranger-tools/scripts/README.txt</source>
+      <outputDirectory></outputDirectory>
+      <destName>README.txt</destName>
+      <fileMode>644</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/src/main/assembly/solr_audit_conf.xml b/distro/src/main/assembly/solr_audit_conf.xml
similarity index 87%
rename from src/main/assembly/solr_audit_conf.xml
rename to distro/src/main/assembly/solr_audit_conf.xml
index 57c1344..e3e618c 100644
--- a/src/main/assembly/solr_audit_conf.xml
+++ b/distro/src/main/assembly/solr_audit_conf.xml
@@ -24,8 +24,8 @@
    <includeBaseDirectory>false</includeBaseDirectory>
         <fileSets>
                 <fileSet>
-                        <outputDirectory>/</outputDirectory>
-                        <directory>security-admin/contrib/solr_for_audit_setup/conf</directory>
+                        <outputDirectory></outputDirectory>
+                        <directory>../security-admin/contrib/solr_for_audit_setup/conf</directory>
                         <fileMode>755</fileMode>
                 </fileSet>
         </fileSets>
diff --git a/distro/src/main/assembly/storm-agent.xml b/distro/src/main/assembly/storm-agent.xml
new file mode 100644
index 0000000..c4e81f4
--- /dev/null
+++ b/distro/src/main/assembly/storm-agent.xml
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>storm-plugin</id>
+  <formats>
+    <format>tar.gz</format>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.parent.name}-${project.version}-storm-plugin</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-storm-plugin-shim</include>
+        <include>org.apache.ranger:ranger-plugin-classloader</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-audit</include>
+        <include>org.apache.ranger:ranger-plugins-cred</include>
+        <include>org.apache.ranger:ranger-plugins-common</include>
+        <include>org.apache.ranger:ranger-storm-plugin</include>
+      </includes>
+      <binaries>
+        <outputDirectory>lib/ranger-storm-plugin-impl</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+        <dependencySets>
+          <dependencySet>
+            <outputDirectory>lib/ranger-storm-plugin-impl</outputDirectory>
+            <unpack>false</unpack>
+            <includes>
+              <include>commons-configuration:commons-configuration</include>
+              <include>org.apache.hadoop:hadoop-common</include>
+              <include>org.apache.hadoop:hadoop-common-plus</include>
+              <include>com.google.code.gson:gson</include>
+              <include>org.eclipse.persistence:eclipselink</include>
+              <include>org.eclipse.persistence:javax.persistence</include>
+              <include>commons-collections:commons-collections</include>
+              <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+              <include>com.google.guava:guava:jar:${google.guava.version}</include>
+              <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+              <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
+              <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
+              <include>org.noggit:noggit:jar:${noggit.version}</include>
+              <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
+              <include>org.apache.hadoop:hadoop-hdfs</include>
+              <include>org.apache.htrace:htrace-core:jar:${htrace-core.version}</include>
+              <include>commons-cli:commons-cli:jar:${commons.cli.version}</include>
+              <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+              <include>commons-io:commons-io:jar:${commons.io.version}</include>
+              <include>org.codehaus.jackson:jackson-core-asl</include>
+              <include>org.codehaus.jackson:jackson-jaxrs</include>
+              <include>org.codehaus.jackson:jackson-mapper-asl</include>
+              <include>org.apache.solr:solr-solrj</include>
+              <include>commons-codec:commons-codec</include>
+              <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+              <include>net.java.dev.jna:jna:jar:${jna.version}</include>
+              <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+            </includes>
+          </dependencySet>
+          <dependencySet>
+            <outputDirectory>install/lib</outputDirectory>
+            <unpack>false</unpack>
+            <directoryMode>755</directoryMode>
+            <fileMode>644</fileMode>
+            <includes>
+              <include>commons-cli:commons-cli</include>
+              <include>commons-collections:commons-collections</include>
+              <include>commons-configuration:commons-configuration</include>
+              <include>commons-io:commons-io:jar:${commons.io.version}</include>
+              <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+              <include>commons-logging:commons-logging</include>
+              <include>com.google.guava:guava:jar:${google.guava.version}</include>
+              <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
+              <include>org.apache.hadoop:hadoop-common:jar</include>
+              <include>org.apache.hadoop:hadoop-auth:jar</include>
+              <include>org.apache.ranger:ranger-plugins-cred</include>
+              <include>org.apache.ranger:credentialbuilder</include>
+            </includes>
+          </dependencySet>
+          <dependencySet>
+            <outputDirectory>lib/</outputDirectory>
+            <unpack>false</unpack>
+            <directoryMode>755</directoryMode>
+            <fileMode>644</fileMode>
+            <includes>
+              <include>com.sun.jersey:jersey-bundle:jar:${jersey-bundle.version}</include>
+            </includes>
+          </dependencySet>
+        </dependencySets>
+      </binaries>
+    </moduleSet>
+
+    <moduleSet>
+      <useAllReactorProjects>true</useAllReactorProjects>
+      <includes>
+        <include>org.apache.ranger:ranger-plugins-installer</include>
+        <include>org.apache.ranger:credentialbuilder</include>
+      </includes>
+      <binaries>
+        <outputDirectory>install/lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+  <fileSets>
+    <!-- conf.templates for enable -->
+    <fileSet>
+      <outputDirectory>install/conf.templates/enable</outputDirectory>
+      <directory>../storm-agent/conf</directory>
+      <excludes>
+        <exclude>*.sh</exclude>
+      </excludes>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/disable</outputDirectory>
+      <directory>../storm-agent/disable-conf</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <fileSet>
+      <outputDirectory>install/conf.templates/default</outputDirectory>
+      <directory>../storm-agent/template</directory>
+      <fileMode>700</fileMode>
+    </fileSet>
+    <!-- version file -->
+    <fileSet>
+      <outputDirectory></outputDirectory>
+      <directory>${project.build.outputDirectory}</directory>
+      <includes>
+        <include>version</include>
+      </includes>
+      <fileMode>444</fileMode>
+    </fileSet>
+  </fileSets>
+  <!-- enable/disable script for Plugin -->
+  <files>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>enable-storm-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>upgrade-storm-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/upgrade-plugin.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
+      <outputDirectory></outputDirectory>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
+      <outputDirectory></outputDirectory>
+      <destName>disable-storm-plugin.sh</destName>
+      <fileMode>755</fileMode>
+    </file>
+    <file>
+      <source>${project.parent.basedir}/storm-agent/scripts/install.properties</source>
+      <outputDirectory></outputDirectory>
+      <destName>install.properties</destName>
+      <fileMode>755</fileMode>
+    </file>
+  </files>
+</assembly>
diff --git a/distro/src/main/assembly/tagsync.xml b/distro/src/main/assembly/tagsync.xml
new file mode 100644
index 0000000..2400cd5
--- /dev/null
+++ b/distro/src/main/assembly/tagsync.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+	<id>tagsync</id>
+	<formats>
+		<format>tar.gz</format>
+		<format>zip</format>
+	</formats>
+	<baseDirectory>${project.parent.name}-${project.version}-tagsync</baseDirectory>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<moduleSets>
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:ranger-tagsync</include>
+			</includes>
+			<binaries>
+				<outputDirectory>dist</outputDirectory>
+				<includeDependencies>true</includeDependencies>
+				<unpack>false</unpack>
+				<directoryMode>755</directoryMode>
+				<fileMode>644</fileMode>
+				<dependencySets>
+					<dependencySet>
+						<outputDirectory>lib</outputDirectory>
+						<unpack>false</unpack>
+						<includes>
+							<include>com.101tec:zkclient</include>
+							<include>com.google.code.gson:gson:jar:${gson.version}</include>
+							<include>com.google.guava:guava:jar:${google.guava.version}</include>
+							<include>com.sun.jersey:jersey-bundle:jar:${jersey-bundle.version}</include>
+							<include>com.sun.jersey.contribs:jersey-multipart:jar:${sun-jersey-bundle.version}</include>
+							<include>org.apache.atlas:atlas-notification:jar:${atlas.version}</include>
+							<include>org.apache.atlas:atlas-intg:jar:${atlas.version}</include>
+							<include>org.apache.atlas:atlas-client-v1:jar:${atlas.version}</include>
+							<include>org.apache.atlas:atlas-client-v2:jar:${atlas.version}</include>
+							<include>org.apache.atlas:atlas-client-common:jar:${atlas.version}</include>
+							<include>org.apache.atlas:atlas-common:jar:${atlas.version}</include>
+							<include>org.apache.hadoop:hadoop-auth</include>
+							<include>org.apache.hadoop:hadoop-common</include>
+							<include>org.apache.commons:commons-compress</include>
+							<include>org.apache.kafka:kafka_${scala.binary.version}:jar:${kafka.version}</include>
+							<include>org.apache.kafka:kafka-clients:jar:${kafka.version}</include>
+							<include>org.apache.ranger:credentialbuilder</include>
+							<include>org.apache.ranger:ranger-plugins-cred</include>
+							<include>org.apache.ranger:ranger-plugins-common</include>
+							<include>org.apache.ranger:ranger-util</include>
+							<include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
+							<include>com.fasterxml.jackson.core:jackson-annotations:jar:${atlas.jackson.version}</include>
+							<include>com.fasterxml.jackson.core:jackson-core:jar:${atlas.jackson.version}</include>
+							<include>com.fasterxml.jackson.core:jackson-databind:jar:${atlas.jackson.databind.version}</include>
+							<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:${atlas.jackson.version}</include>
+							<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:${atlas.jackson.version}</include>
+							<include>com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:${atlas.jackson.version}</include>
+							<include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
+							<include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
+							<include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.version}</include>
+							<include>org.codehaus.jettison:jettison:jar:${jettison.version}</include>
+							<include>org.scala-lang:scala-library:jar:${scala.version}</include>
+							<include>org.slf4j:slf4j-api</include>
+							<include>aopalliance:aopalliance:jar:${aopalliance.version}</include>
+							<include>commons-cli:commons-cli:jar:${commons.cli.version}</include>
+							<include>commons-codec:commons-codec:jar:${commons.codec.version}</include>
+							<include>commons-collections:commons-collections:jar:${commons.collections.version}</include>
+							<include>commons-configuration:commons-configuration:jar:${commons.configuration1.version}</include>
+							<include>commons-io:commons-io:jar:${commons.io.version}</include>
+							<include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+							<include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+							<include>javax.inject:javax.inject:jar:${javax-inject.version}</include>
+							<include>joda-time:joda-time:jar:${joda-time.version}</include>
+							<include>log4j:log4j:jar:${log4j.version}</include>
+							<include>org.codehaus.woodstox:stax2-api</include>
+							<include>com.fasterxml.woodstox:woodstox-core</include>
+							<include>org.apache.htrace:htrace-core4</include>
+							<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+							<include>net.java.dev.jna:jna:jar:${jna.version}</include>
+							<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+							<include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+							<include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+							<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+							<include>org.cloudera.logredactor:logredactor</include>
+						</includes>
+					</dependencySet>
+				</dependencySets>
+			</binaries>
+		</moduleSet>
+	</moduleSets>
+
+	<fileSets>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>conf.dist</outputDirectory>
+			<directory>../tagsync/conf.dist</directory>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>conf.dist/etc/ranger/data</outputDirectory>
+			<directory>../tagsync/src/main/resources/etc/ranger/data</directory>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>544</fileMode>
+			<outputDirectory></outputDirectory>
+			<directory>../tagsync/scripts</directory>
+			<excludes>
+				<exclude>ranger-tagsync.sh</exclude>
+			</excludes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>444</fileMode>
+			<outputDirectory>templates</outputDirectory>
+			<directory>../tagsync/conf/templates</directory>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<outputDirectory></outputDirectory>
+			<directory>${project.build.directory}</directory>
+			<includes>
+				<include>version</include>
+			</includes>
+			<fileMode>444</fileMode>
+		</fileSet>
+	</fileSets>
+	<files>
+		<file>
+			<source>${project.parent.basedir}/tagsync/scripts/ranger-tagsync.sh</source>
+			<outputDirectory></outputDirectory>
+			<destName>ranger-tagsync</destName>
+			<fileMode>755</fileMode>
+		</file>
+	</files>
+</assembly>
diff --git a/distro/src/main/assembly/usersync.xml b/distro/src/main/assembly/usersync.xml
new file mode 100644
index 0000000..d1053aa
--- /dev/null
+++ b/distro/src/main/assembly/usersync.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+	<id>usersync</id>
+	<formats>
+		<format>tar.gz</format>
+		<format>zip</format>
+	</formats>
+	<baseDirectory>${project.parent.name}-${project.version}-usersync</baseDirectory>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<moduleSets>
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:unixauthservice</include>
+				<include>org.apache.ranger:unixusersync</include>
+			</includes>
+			<binaries>
+				<outputDirectory>dist</outputDirectory>
+				<includeDependencies>true</includeDependencies>
+				<unpack>false</unpack>
+				<directoryMode>755</directoryMode>
+				<fileMode>644</fileMode>
+				<dependencySets>
+					<dependencySet>
+						<outputDirectory>lib</outputDirectory>
+						<unpack>false</unpack>
+						<includes>
+							<include>com.google.code.gson:gson</include>
+							<include>com.sun.jersey:jersey-bundle</include>
+							<include>log4j:log4j</include>
+							<include>commons-cli:commons-cli</include>
+							<include>commons-collections:commons-collections</include>
+							<include>org.apache.commons:commons-configuration2</include>
+							<include>commons-lang:commons-lang</include>
+							<include>commons-logging:commons-logging</include>
+							<include>com.google.guava:guava</include>
+							<include>org.apache.hadoop:hadoop-auth</include>
+							<include>org.slf4j:slf4j-api</include>
+							<include>org.apache.hadoop:hadoop-common</include>
+							<include>org.apache.commons:commons-csv</include>
+							<include>org.apache.ranger:credentialbuilder</include>
+							<include>org.apache.ranger:ranger-util</include>
+							<include>commons-io:commons-io:jar:${commons.io.version}</include>
+							<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
+							<include>commons-codec:commons-codec</include>
+							<include>org.apache.ranger:ranger-plugins-common</include>
+							<include>org.codehaus.woodstox:stax2-api</include>
+							<include>com.fasterxml.woodstox:woodstox-core</include>
+							<include>org.apache.htrace:htrace-core4</include>
+							<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
+							<include>net.java.dev.jna:jna:jar:${jna.version}</include>
+							<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
+							<include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
+							<include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
+							<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
+							<include>org.cloudera.logredactor:logredactor</include>
+							<include>com.fasterxml.jackson.core:jackson-annotations:jar:${fasterxml.jackson.version}</include>
+							<include>com.fasterxml.jackson.core:jackson-core:jar:${fasterxml.jackson.version}</include>
+							<include>com.fasterxml.jackson.core:jackson-databind:jar:${fasterxml.jackson.version}</include>
+							<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:${fasterxml.jackson.version}</include>
+							<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:${fasterxml.jackson.version}</include>
+							<include>com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:${fasterxml.jackson.version}</include>
+							<include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
+							<include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
+							<include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.version}</include>
+							<include>org.codehaus.jettison:jettison:jar:${jettison.version}</include>
+							<include>org.codehaus.jackson:jackson-xc:jar:${codehaus.jackson.version}</include>
+						</includes>
+					</dependencySet>
+					<dependencySet>
+						<outputDirectory>ldaptool/lib</outputDirectory>
+						<unpack>false</unpack>
+						<includes>
+							<include>commons-cli:commons-cli</include>
+							<include>org.apache.commons:commons-configuration2</include>
+							<include>commons-lang:commons-lang</include>
+							<include>commons-logging:commons-logging</include>
+						</includes>
+					</dependencySet>
+				</dependencySets>
+			</binaries>
+		</moduleSet>
+
+		<moduleSet>
+			<useAllReactorProjects>true</useAllReactorProjects>
+			<includes>
+				<include>org.apache.ranger:ranger-plugins-installer</include>
+			</includes>
+			<binaries>
+				<outputDirectory>installer/lib</outputDirectory>
+				<includeDependencies>false</includeDependencies>
+				<unpack>false</unpack>
+			</binaries>
+		</moduleSet>
+	</moduleSets>
+
+	<fileSets>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>conf.dist</outputDirectory>
+			<directory>../unixauthservice/conf.dist</directory>
+			<excludes>
+				<exclude>jaas.conf</exclude>
+			</excludes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>544</fileMode>
+			<outputDirectory></outputDirectory>
+			<directory>../unixauthservice/scripts</directory>
+			<excludes>
+				<exclude>*.properties</exclude>
+				<exclude>initd</exclude>
+			</excludes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>700</fileMode>
+			<outputDirectory></outputDirectory>
+			<directory>../unixauthservice/scripts</directory>
+			<includes>
+				<include>*.properties</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>conf.dist/cert</outputDirectory>
+			<directory>../unixauthservice/cert</directory>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>750</fileMode>
+			<outputDirectory>native</outputDirectory>
+			<directory>../unixauthnative/target</directory>
+			<includes>
+				<include>credValidator.*</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>750</fileMode>
+			<outputDirectory>native</outputDirectory>
+			<directory>../unixauthpam/target</directory>
+			<includes>
+				<include>pamCredValidator.*</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<outputDirectory></outputDirectory>
+			<directory>${project.build.directory}</directory>
+			<includes>
+				<include>version</include>
+			</includes>
+			<fileMode>444</fileMode>
+		</fileSet>
+		<fileSet>
+			<outputDirectory></outputDirectory>
+			<directory>../security-admin/scripts</directory>
+			<includes>
+				<include>ranger_credential_helper.py</include>
+			</includes>
+			<fileMode>544</fileMode>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>755</fileMode>
+			<outputDirectory>usersync_tool</outputDirectory>
+			<directory>../ugsync/filesourceusersynctool</directory>
+			<includes>
+				<include>run-filesource-usersync.sh</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>755</fileMode>
+			<outputDirectory>ldaptool</outputDirectory>
+			<directory>../ugsync/ldapconfigchecktool/ldapconfigcheck/scripts</directory>
+			<includes>
+				<include>run.sh</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>ldaptool/lib</outputDirectory>
+			<directory>../ugsync/ldapconfigchecktool/ldapconfigcheck/target</directory>
+			<includes>
+				<include>ldapconfigcheck-${project.version}.jar</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>ldaptool/conf</outputDirectory>
+			<directory>../ugsync/ldapconfigchecktool/ldapconfigcheck/conf</directory>
+			<includes>
+				<include>input.properties</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directoryMode>755</directoryMode>
+			<fileMode>644</fileMode>
+			<outputDirectory>ldaptool/output</outputDirectory>
+			<directory>../ugsync/ldapconfigchecktool/ldapconfigcheck/conf</directory>
+			<excludes>
+				<exclude>input.properties</exclude>
+			</excludes>
+		</fileSet>
+	</fileSets>
+	<files>
+		<file>
+			<source>${project.parent.basedir}/unixauthservice/scripts/initd</source>
+			<outputDirectory></outputDirectory>
+			<destName>ranger-usersync</destName>
+			<fileMode>755</fileMode>
+		</file>
+	</files>
+</assembly>
diff --git a/hive-agent/pom.xml b/hive-agent/pom.xml
index fc4c18e..f219a37 100644
--- a/hive-agent/pom.xml
+++ b/hive-agent/pom.xml
@@ -72,10 +72,20 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-    		<groupId>org.apache.httpcomponents</groupId>
-    		<artifactId>httpcore</artifactId>
-    		<version>${httpcomponents.httpcore.version}</version>
-		</dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>${httpcomponents.httpcore.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.thrift</groupId>
+            <artifactId>libfb303</artifactId>
+            <version>${libfb303.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.thrift</groupId>
+            <artifactId>libthrift</artifactId>
+            <version>${libthrift.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.tez</groupId>
             <artifactId>tez-dag</artifactId>
diff --git a/jisql/pom.xml b/jisql/pom.xml
index 656123f..481bbee 100644
--- a/jisql/pom.xml
+++ b/jisql/pom.xml
@@ -31,7 +31,7 @@
         <dependency>
             <groupId>net.sf.jopt-simple</groupId>
             <artifactId>jopt-simple</artifactId>
-            <version>3.2</version>
+            <version>${jopt-simple.version}</version>
         </dependency>
     </dependencies>
 </project>
diff --git a/pom.xml b/pom.xml
index b03a451..f53c54d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,6 +82,7 @@
         <apacheds.version>2.0.0-M22</apacheds.version>
         <asm.all.version>3.2</asm.all.version>
         <aspectj.version>1.8.2</aspectj.version>
+        <assembly.plugin.version>2.6</assembly.plugin.version>
         <atlas.version>3.0.0-SNAPSHOT</atlas.version>
         <atlas.gson.version>2.5</atlas.gson.version>
         <atlas.jackson.version>2.9.9</atlas.jackson.version>
@@ -97,6 +98,7 @@
         <commons.codec.version>1.12</commons.codec.version>
         <commons.collections.version>3.2.2</commons.collections.version>
         <commons.compress.version>1.8.1</commons.compress.version>
+        <commons.configuration1.version>1.10</commons.configuration1.version>
         <commons.configuration.version>2.1.1</commons.configuration.version>
         <commons.dbcp.version>1.4</commons.dbcp.version>
         <commons.digester.version>2.1</commons.digester.version>
@@ -127,9 +129,9 @@
         <libfb303.version>0.9.3</libfb303.version>
         <libthrift.version>0.12.0</libthrift.version>
         <htrace-core.version>4.1.0-incubating</htrace-core.version>
-        <httpcomponents.httpclient.version>4.5.3</httpcomponents.httpclient.version>
+        <httpcomponents.httpclient.version>4.5.6</httpcomponents.httpclient.version>
         <httpcomponents.httpcore.version>4.4.6</httpcomponents.httpcore.version>
-        <httpcomponents.httpmime.version>4.5.3</httpcomponents.httpmime.version>
+        <httpcomponents.httpmime.version>4.5.6</httpcomponents.httpmime.version>
         <javax.persistence.version>2.1.0</javax.persistence.version>
         <javax.servlet.version>3.1.0</javax.servlet.version>
         <javax-inject.version>1</javax-inject.version>
@@ -142,6 +144,7 @@
         <jersey-spring.version>1.19.3</jersey-spring.version>
         <jettison.version>1.1</jettison.version>
         <jline.version>0.9.94</jline.version>
+        <jopt-simple.version>3.2</jopt-simple.version>
         <json4s.version>3.2.11</json4s.version>
         <jsonsmart.version>2.3</jsonsmart.version>
         <jsr250.version>1.0</jsr250.version>
@@ -268,41 +271,12 @@
                 <module>ranger-kylin-plugin-shim</module>
                 <module>plugin-elasticsearch</module>
                 <module>ranger-elasticsearch-plugin-shim</module>
+                <!--
+                   'distro' should be the last module. If a module gets inserted after
+                   ranger-elasticsearch-plugin-shim, make sure to update dependency in distro/pom.xml
+                -->
+                <module>distro</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/hive-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/knox-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/storm-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-kafka.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-yarn.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-ozone.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-solr.xml</descriptor>
-                                <descriptor>src/main/assembly/admin-web.xml</descriptor>
-                                <descriptor>src/main/assembly/solr_audit_conf.xml</descriptor>
-                                <descriptor>src/main/assembly/usersync.xml</descriptor>
-                                <descriptor>src/main/assembly/tagsync.xml</descriptor>
-                                <descriptor>src/main/assembly/migration-util.xml</descriptor>
-                                <descriptor>src/main/assembly/kms.xml</descriptor>
-                                <descriptor>src/main/assembly/ranger-tools.xml</descriptor>
-                                <descriptor>src/main/assembly/ranger-src.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-atlas.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-sqoop.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-kylin.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-elasticsearch.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-presto.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-admin</id>
@@ -310,19 +284,6 @@
                 <module>agents-common</module>
                 <module>security-admin</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/admin-web.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-hdfs-plugin</id>
@@ -337,19 +298,6 @@
                 <module>hdfs-agent</module>
                 <module>ranger-hdfs-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-hive-plugin</id>
@@ -364,19 +312,6 @@
                 <module>hive-agent</module>
                 <module>ranger-hive-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/hive-agent.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-hbase-plugin</id>
@@ -391,19 +326,6 @@
                 <module>hbase-agent</module>
                 <module>ranger-hbase-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-knox-plugin</id>
@@ -418,19 +340,6 @@
                 <module>knox-agent</module>
                 <module>ranger-knox-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/knox-agent.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-storm-plugin</id>
@@ -445,19 +354,6 @@
                 <module>storm-agent</module>
                 <module>ranger-storm-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/storm-agent.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-yarn-plugin</id>
@@ -472,19 +368,6 @@
                 <module>plugin-yarn</module>
                 <module>ranger-yarn-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-yarn.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
     <profile>
             <id>ranger-ozone-plugin</id>
@@ -499,19 +382,6 @@
                 <module>plugin-ozone</module>
                 <module>ranger-ozone-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-ozone.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-kafka-plugin</id>
@@ -526,19 +396,6 @@
                 <module>plugin-kafka</module>
                 <module>ranger-kafka-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-kafka.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-solr-plugin</id>
@@ -553,19 +410,6 @@
                 <module>plugin-solr</module>
                 <module>ranger-solr-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-solr.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-kms-plugin</id>
@@ -580,19 +424,6 @@
                 <module>plugin-kms</module>
                 <module>ranger-kms-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-kms.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-atlas-plugin</id>
@@ -607,19 +438,6 @@
                 <module>plugin-atlas</module>
                 <module>ranger-atlas-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-atlas.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-sqoop-plugin</id>
@@ -634,19 +452,6 @@
                 <module>plugin-sqoop</module>
                 <module>ranger-sqoop-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-sqoop.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-kylin-plugin</id>
@@ -661,19 +466,6 @@
                 <module>plugin-kylin</module>
                 <module>ranger-kylin-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-kylin.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-elasticsearch-plugin</id>
@@ -688,19 +480,6 @@
                 <module>plugin-elasticsearch</module>
                 <module>ranger-elasticsearch-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-elasticsearch.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>ranger-presto-plugin</id>
@@ -715,19 +494,6 @@
                 <module>plugin-presto</module>
                 <module>ranger-presto-plugin-shim</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/plugin-presto.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>linux</id>
@@ -761,6 +527,7 @@
                 <module>ugsync/ldapconfigchecktool/ldapconfigcheck</module>
                 <module>unixauthclient</module>
                 <module>unixauthservice</module>
+                <module>unixauthnative</module>
                 <module>ranger-util</module>
                 <module>plugin-kms</module>
                 <module>tagsync</module>
@@ -783,46 +550,16 @@
                 <module>ranger-sqoop-plugin-shim</module>
                 <module>plugin-kylin</module>
                 <module>ranger-kylin-plugin-shim</module>
-                <module>plugin-elasticsearch</module>
-                <module>ranger-elasticsearch-plugin-shim</module>
                 <module>plugin-presto</module>
                 <module>ranger-presto-plugin-shim</module>
-                <module>unixauthnative</module>
+                <module>plugin-elasticsearch</module>
+                <module>ranger-elasticsearch-plugin-shim</module>
+                <!--
+                   'distro' should be the last module. If a module gets inserted after
+                   ranger-elasticsearch-plugin-shim, make sure to update dependency in distro/pom.xml
+                -->
+                <module>distro</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>2.2-beta-5</version>
-            <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/hive-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/knox-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/storm-agent.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-kafka.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-yarn.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-ozone.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-solr.xml</descriptor>
-                                <descriptor>src/main/assembly/admin-web.xml</descriptor>
-                                <descriptor>src/main/assembly/solr_audit_conf.xml</descriptor>
-                                <descriptor>src/main/assembly/usersync.xml</descriptor>
-                                <descriptor>src/main/assembly/tagsync.xml</descriptor>
-                                <descriptor>src/main/assembly/migration-util.xml</descriptor>
-                                <descriptor>src/main/assembly/kms.xml</descriptor>
-                                <descriptor>src/main/assembly/ranger-tools.xml</descriptor>
-                                <descriptor>src/main/assembly/ranger-src.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-atlas.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-sqoop.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-kylin.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-elasticsearch.xml</descriptor>
-                                <descriptor>src/main/assembly/plugin-presto.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
         <profile>
             <id>linux-pam</id>
@@ -1270,6 +1007,15 @@
                     <includeFilterFile>./dev-support/findbugsIncludeFile.xml</includeFilterFile>
                 </configuration>
             </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>${assembly.plugin.version}</version>
+                <configuration>
+                    <skipAssembly>true</skipAssembly>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/ranger-examples/distro/.gitignore b/ranger-examples/distro/.gitignore
new file mode 100644
index 0000000..5a3a673
--- /dev/null
+++ b/ranger-examples/distro/.gitignore
@@ -0,0 +1,6 @@
+/target/
+/bin/
+/target
+.settings/
+.pydevproject
+*.log
diff --git a/ranger-examples/distro/pom.xml b/ranger-examples/distro/pom.xml
new file mode 100644
index 0000000..ce62785
--- /dev/null
+++ b/ranger-examples/distro/pom.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>ranger-examples-distro</artifactId>
+    <name>Apache Ranger Examples Distribution</name>
+    <description>Apache Ranger Examples Distribution</description>
+    <parent>
+        <groupId>org.apache.ranger</groupId>
+        <artifactId>ranger-examples</artifactId>
+        <version>2.1.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <profiles>
+        <profile>
+            <id>all</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${assembly.plugin.version}</version>
+                        <configuration>
+                          <finalName>ranger-examples-${project.version}</finalName>
+                          <outputDirectory>../target</outputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <phase>package</phase>
+                                <configuration>
+                                    <skipAssembly>false</skipAssembly>
+                                    <descriptors>
+                                        <descriptor>src/main/assembly/sampleapp.xml</descriptor>
+                                        <descriptor>src/main/assembly/plugin-sampleapp.xml</descriptor>
+                                    </descriptors>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <!--Add a dependency here to ensure this module is the final one built-->
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.ranger</groupId>
+            <artifactId>ranger-sampleapp-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/ranger-examples/distro/src/main/assembly/plugin-sampleapp.xml b/ranger-examples/distro/src/main/assembly/plugin-sampleapp.xml
new file mode 100644
index 0000000..bbc38e5
--- /dev/null
+++ b/ranger-examples/distro/src/main/assembly/plugin-sampleapp.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<assembly>
+  <id>sampleapp-plugin</id>
+  <formats>
+     <format>tar.gz</format>
+  </formats>
+  <baseDirectory>${project.name}-${project.version}-ranger-sampleapp-plugin</baseDirectory>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+     <useAllReactorProjects>true</useAllReactorProjects>
+     <includes>
+       <include>org.apache.ranger:ranger-sampleapp-plugin</include>
+     </includes>
+     <binaries>
+        <includeDependencies>false</includeDependencies>
+        <outputDirectory>lib/ranger-sampleapp-plugin-impl</outputDirectory>
+        <includes>
+            <include>org.apache.ranger:ranger-plugins-common</include>
+            <include>org.apache.ranger:ranger-plugins-audit</include>
+            <include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
+            <include>org.noggit:noggit:jar:${noggit.version}</include>
+            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
+            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
+            <include>commons-collections:commons-collections</include>
+            <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
+            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+            <include>commons-io:commons-io:jar:${commons.io.version}</include>
+            <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
+            <include>com.google.guava:guava:jar:${google.guava.version}</include>
+            <include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.storm.version}</include>
+            <include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.storm.version}</include>
+            <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.storm.version}</include>
+            <include>org.codehaus.jackson:jackson-xc:jar:${codehaus.jackson.storm.version}</include>
+            <include>org.slf4j:slf4j-api</include>
+            <include>log4j:log4j</include>
+            <include>com.sun.jersey:jersey-bundle</include>
+            <include>com.google.code.gson:gson</include>
+        </includes>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+     </binaries>
+    </moduleSet>
+   </moduleSets>
+
+   <fileSets>
+    <fileSet>
+        <outputDirectory>conf</outputDirectory>
+        <directory>plugin-sampleapp/conf</directory>
+        <fileMode>644</fileMode>
+    </fileSet>
+   </fileSets>
+</assembly>
diff --git a/ranger-examples/src/main/assembly/sampleapp.xml b/ranger-examples/distro/src/main/assembly/sampleapp.xml
similarity index 80%
rename from ranger-examples/src/main/assembly/sampleapp.xml
rename to ranger-examples/distro/src/main/assembly/sampleapp.xml
index 56d43b5..3e927d2 100644
--- a/ranger-examples/src/main/assembly/sampleapp.xml
+++ b/ranger-examples/distro/src/main/assembly/sampleapp.xml
@@ -24,29 +24,23 @@
   <includeBaseDirectory>false</includeBaseDirectory>
   <moduleSets>
     <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/</outputDirectory>
-                <includes>
-                </includes>
-                <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <outputDirectory>/lib/</outputDirectory>
-     </binaries>
+     <useAllReactorProjects>true</useAllReactorProjects>
      <includes>
        <include>org.apache.ranger:sampleapp</include>
      </includes>
+     <binaries>
+        <outputDirectory>lib</outputDirectory>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+        <directoryMode>755</directoryMode>
+        <fileMode>644</fileMode>
+     </binaries>
     </moduleSet>
    </moduleSets>
+
    <fileSets>
     <fileSet>
-        <outputDirectory>/</outputDirectory>
+        <outputDirectory></outputDirectory>
         <directory>sampleapp/scripts</directory>
 		<includes>
 			<include>*.sh</include>
@@ -54,7 +48,7 @@
         <fileMode>755</fileMode>
     </fileSet>
     <fileSet>
-        <outputDirectory>/conf</outputDirectory>
+        <outputDirectory>conf</outputDirectory>
         <directory>sampleapp/conf</directory>
         <fileMode>644</fileMode>
     </fileSet>
diff --git a/ranger-examples/pom.xml b/ranger-examples/pom.xml
index b7f7a57..b3ceed4 100644
--- a/ranger-examples/pom.xml
+++ b/ranger-examples/pom.xml
@@ -28,21 +28,6 @@
         <module>conditions-enrichers</module>
         <module>sampleapp</module>
         <module>plugin-sampleapp</module>
+        <module>distro</module>
     </modules>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-assembly-plugin</artifactId>
-                    <version>2.2-beta-5</version>
-                    <configuration>
-                        <descriptors>
-                            <descriptor>src/main/assembly/sampleapp.xml</descriptor>
-                            <descriptor>src/main/assembly/plugin-sampleapp.xml</descriptor>
-                        </descriptors>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
 </project>
diff --git a/ranger-examples/src/main/assembly/plugin-sampleapp.xml b/ranger-examples/src/main/assembly/plugin-sampleapp.xml
deleted file mode 100644
index 0931ec7..0000000
--- a/ranger-examples/src/main/assembly/plugin-sampleapp.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>sampleapp-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-ranger-sampleapp-plugin</baseDirectory>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-sampleapp-plugin-impl</outputDirectory>
-                <includes>
-                    <include>org.apache.ranger:ranger-plugins-common</include>
-                    <include>org.apache.ranger:ranger-plugins-audit</include>
-                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
-                    <include>org.noggit:noggit:jar:${noggit.version}</include>
-                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
-                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                    <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.storm.version}</include>
-                    <include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.storm.version}</include>
-                    <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.storm.version}</include>
-                    <include>org.codehaus.jackson:jackson-xc:jar:${codehaus.jackson.storm.version}</include>
-                    <include>org.slf4j:slf4j-api</include>
-                    <include>log4j:log4j</include>
-                    <include>com.sun.jersey:jersey-bundle</include>
-                    <include>com.google.code.gson:gson</include>
-                </includes>
-                <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-sampleapp-plugin-impl</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-sampleapp-plugin</include>
-     </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-    <fileSet>
-        <outputDirectory>/conf</outputDirectory>
-        <directory>plugin-sampleapp/conf</directory>
-        <fileMode>644</fileMode>
-    </fileSet>
-   </fileSets>
-</assembly>
diff --git a/src/main/assembly/admin-web.xml b/src/main/assembly/admin-web.xml
deleted file mode 100644
index 4658f87..0000000
--- a/src/main/assembly/admin-web.xml
+++ /dev/null
@@ -1,553 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>admin</id> 
-  <formats>
-     <format>tar.gz</format>
-     <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-admin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>true</unpack>
-        <outputDirectory>/ews/webapp</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:security-admin-web</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <outputDirectory>/ews/ranger_jaas</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:unixauthclient</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/hdfs</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-hdfs-plugin</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/hive</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-            <includes>
-              <include>org.apache.hive:hive-common:jar:${hive.version}</include>
-              <include>org.apache.hive:hive-service:jar:${hive.version}</include>
-              <include>org.apache.hive:hive-exec:jar:${hive.version}</include>
-              <include>org.apache.hive:hive-jdbc:jar:${hive.version}</include>
-              <include>org.apache.hive:hive-metastore:jar:${hive.version}</include>
-              <include>org.apache.thrift:libfb303:jar:${libfb303.version}</include>
-              <include>org.apache.thrift:libthrift:jar:${libthrift.version}</include>
-            </includes>
-          </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-hive-plugin</include>
-     </includes>
-    </moduleSet>
-
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/hbase</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-            <includes>
-              <include>org.apache.hbase:hbase-common:jar:${hbase.version}</include>
-              <include>org.apache.hbase:hbase-client:jar:${hbase.version}</include>
-              <include>org.apache.hbase:hbase-protocol:jar:${hbase.version}</include>
-              <include>org.apache.hbase:hbase-server:jar:${hbase.version}</include>
-              <include>org.apache.hbase:hbase-protocol-shaded:jar:${hbase.version}</include>
-              <include>org.apache.hbase.thirdparty:hbase-shaded-protobuf:jar:${hbase-shaded-protobuf}</include>
-              <include>org.apache.hbase.thirdparty:hbase-shaded-netty:jar:${hbase-shaded-netty}</include>
-              <include>org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:jar:${hbase-shaded-miscellaneous}</include>
-              <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-              <include>io.dropwizard.metrics:metrics-core</include>
-            </includes>
-          </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-hbase-plugin</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/knox</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-            <includes>
-              <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-              <include>commons-collections:commons-collections:jar:${commons.collections.version}</include>
-              <include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
-              <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
-            </includes>
-          </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-knox-plugin</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/storm</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-            <includes>
-              <include>org.apache.storm:storm-core:jar:0.9.2-incubating</include>
-            </includes>
-          </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-storm-plugin</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/yarn</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-            <includes>
-              <include>org.apache.hadoop:hadoop-yarn-api:jar:${hadoop.version}</include>
-              <include>org.apache.hadoop:hadoop-yarn-common:jar:${hadoop.version}</include>
-            </includes>
-          </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-yarn-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/ozone</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-              <dependencySets>
-                  <dependencySet>
-                      <includes>
-			  <include>org.apache.hadoop:hadoop-ozone-common:jar:${ozone.version}</include>
-                          <include>org.apache.hadoop:hadoop-ozone-client:jar:${ozone.version}</include>
-                          <include>org.apache.hadoop:hadoop-hdds-common:jar:${ozone.version}</include>
-                          <include>org.apache.hadoop:hadoop-hdds-client:jar:${ozone.version}</include>
-                          <include>org.apache.commons:commons-compress:jar:1.4.1</include>
-                          <include>commons-net:commons-net:jar:${commons.net.version}</include>
-                          <include>com.google.guava:guava</include>
-                          <include>io.jaegertracing:jaeger-core:jar:0.33.1</include>
-                          <include>io.opentracing:opentracing-api:jar:0.31.0</include>
-                          <include>io.opentracing:opentracing-noop:jar:0.31.0</include>
-                          <include>io.opentracing:opentracing-util:jar:0.31.0</include>
-                          <include>io.opentracing.contrib:opentracing-tracerresolver:jar:0.1.5</include>
-                          <include>com.google.protobuf:protobuf-java</include>
-                          <include>org.apache.ratis:ratis-common:jar:0.2.0</include>
-                          <include>org.apache.ratis:ratis-thirdparty-misc:jar:0.2.0</include>
-                      </includes>
-                  </dependencySet>
-              </dependencySets>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-ozone-plugin</include>
-          </includes>
-      </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/kms</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-     </binaries>
-     <includes>
-       <include>org.apache.ranger:ranger-kms-plugin</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/ews/lib</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/ews/lib</outputDirectory>
-                <includes>
-                    <include>org.apache.tomcat.embed:tomcat-embed*</include>
-                    <include>org.apache.tomcat:tomcat-annotations-api*</include>
-                    <include>org.eclipse.jdt.core.compiler:ecj:jar:P20140317-1600</include>
-                    <include>log4j:log4j</include>
-		    		<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-		    		<include>org.apache.ranger:ranger-plugins-common</include>                    
-		   			<include>org.slf4j:slf4j-api</include>
-                    <include>org.apache.hadoop:hadoop-common</include>
-                    <include>commons-logging:commons-logging</include>
-                    <include>com.sun.jersey.contribs:jersey-multipart</include>
-                    <include>com.google.guava:guava</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>commons-lang:commons-lang</include>
-		    		<include>commons-io:commons-io</include>
-		    		 <include>org.apache.solr:solr-solrj</include>
-                    <include>org.apache.httpcomponents:httpclient</include>
-                    <include>org.apache.httpcomponents:httpcore</include>
-                    <include>org.noggit:noggit</include>
-                    <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
-                    <include>org.apache.httpcomponents:httpmime</include>
-                    <include>commons-codec:commons-codec</include>
-                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-                    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
-                    <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
-                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                    <include>org.apache.ranger:ranger-plugins-cred</include>
-                </includes>
-                <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-	    <include>org.apache.ranger:embeddedwebserver</include>
-     </includes>
-    </moduleSet>
-
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/cred/lib</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/cred/lib</outputDirectory>
-                <unpack>false</unpack>
-   				<includes>
-                    <include>commons-cli:commons-cli</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>commons-configuration:commons-configuration</include>
-                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                    <include>commons-lang:commons-lang</include>
-                    <include>commons-lang3:commons-lang3</include>
-                    <include>commons-logging:commons-logging</include>
-                    <include>com.google.guava:guava</include>
-                    <include>org.slf4j:slf4j-api</include>
-                    <include>org.apache.hadoop:hadoop-common</include>
-                    <include>org.apache.hadoop:hadoop-auth</include>
-              		<include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-					<include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
-					<include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
-					<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-				</includes>
-            </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-	    <include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-<moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/jisql/lib</outputDirectory>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/jisql/lib</outputDirectory>
-                <unpack>false</unpack>
-				<includes>
-                    <include>net.sf.jopt-simple:jopt-simple</include>
-				</includes>
-            </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-	    <include>org.apache.ranger:jisql</include>
-     </includes>
-    </moduleSet>
-    
-    	     <moduleSet>
-     			<binaries>
-        			<includeDependencies>true</includeDependencies>
-        			<outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/kafka</outputDirectory>
-        			<unpack>false</unpack>
-        			<directoryMode>755</directoryMode>
-        			<fileMode>644</fileMode>
-     			</binaries>
-     			<includes>
-       				<include>org.apache.ranger:ranger-kafka-plugin</include>
-     			</includes>
-    		</moduleSet>
-    		
-    		<moduleSet>
-     			<binaries>
-        			<includeDependencies>true</includeDependencies>
-        			<outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/solr</outputDirectory>
-        			<unpack>false</unpack>
-        			<directoryMode>755</directoryMode>
-        			<fileMode>644</fileMode>
-     			</binaries>
-     			<includes>
-       				<include>org.apache.ranger:ranger-solr-plugin</include>
-     			</includes>
-    		</moduleSet>
-
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/nifi</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-nifi-plugin</include>
-          </includes>
-      </moduleSet>
-
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/nifi-registry</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-nifi-registry-plugin</include>
-          </includes>
-      </moduleSet>
-
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/atlas</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-          <dependencySets>
-              <dependencySet>
-                  <includes>
-                      <include>org.apache.atlas:atlas-intg:jar:${atlas.version}</include>
-                  </includes>
-              </dependencySet>
-          </dependencySets>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-atlas-plugin</include>
-          </includes>
-      </moduleSet>
-
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/sqoop</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-sqoop-plugin</include>
-          </includes>
-      </moduleSet>
-
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/kylin</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-kylin-plugin</include>
-          </includes>
-      </moduleSet>
-
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/elasticsearch</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
-          </includes>
-      </moduleSet>
-      <moduleSet>
-          <binaries>
-              <includeDependencies>true</includeDependencies>
-              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/presto</outputDirectory>
-              <unpack>false</unpack>
-              <directoryMode>755</directoryMode>
-              <fileMode>644</fileMode>
-              <dependencySets>
-                  <dependencySet>
-                      <includes>
-                          <include>io.prestosql:presto-spi:jar:${presto.version}</include>
-                          <include>io.prestosql:presto-jdbc:jar:${presto.version}</include>
-                      </includes>
-                  </dependencySet>
-              </dependencySets>
-          </binaries>
-          <includes>
-              <include>org.apache.ranger:ranger-presto-plugin</include>
-          </includes>
-      </moduleSet>
-
-  </moduleSets>
-
-  <fileSets>
-	<fileSet>
-		<outputDirectory>/ews</outputDirectory>
-		<directory>embeddedwebserver/scripts</directory>
-		<fileMode>544</fileMode>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
-		<directory>embeddedwebserver/conf</directory>
-		<fileMode>700</fileMode>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/db</outputDirectory>
-		<directory>security-admin/db</directory>
-		<fileMode>544</fileMode>
-	</fileSet>
-
-	<fileSet>
-		<outputDirectory>/contrib</outputDirectory>
-		<directory>security-admin/contrib</directory>
-		<fileMode>544</fileMode>
-	</fileSet>
-
-	<fileSet>
-		<outputDirectory>/</outputDirectory>
-		<directory>security-admin/scripts</directory>
-		<includes>
-			<include>install.properties</include>
-		</includes>
-		<fileMode>700</fileMode>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/</outputDirectory>
-		<directory>security-admin/scripts</directory>
-		<includes>
-			<include>setup.sh</include>
-			<include>setup_authentication.sh</include>
-			<include>set_globals.sh</include>
-			<include>db_setup.py</include>
-			<include>dba_script.py</include>
-			<include>restrict_permissions.py</include>
-			<include>upgrade_admin.py</include>
-			<include>upgrade.sh</include>
-			<include>update_property.py</include>
-			<include>ranger_credential_helper.py</include>
-			<include>deleteUserGroupUtil.py</include>
-			<include>changepasswordutil.py</include>
-                <include>changeusernameutil.py</include>
-                <include>rolebasedusersearchutil.py</include>
-		</includes>
-		<fileMode>544</fileMode>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/templates-upgrade</outputDirectory>
-		<directory>security-admin/scripts</directory>
-		<includes>
-			<include>install.properties</include>
-			<include>ranger-admin-site-template.xml</include>
-		</includes>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/</outputDirectory>
-		<directory>security-admin</directory>
-		<includes>
-			<include>3rd_party_licenses.txt</include>
-			<include>3rd_party_licenses_text.txt</include>
-		</includes>
-		<fileMode>444</fileMode>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/</outputDirectory>
-		<directory>${project.build.directory}</directory>
-		<includes>
-			<include>version</include>
-		</includes>
-		<fileMode>444</fileMode>
-	</fileSet>
-   <fileSet>
-        <directory>security-admin/src/bin</directory>
-        <outputDirectory>bin</outputDirectory>
-        <fileMode>0755</fileMode>
-        <directoryMode>0755</directoryMode>
-    </fileSet>
-  </fileSets>
-</assembly>
diff --git a/src/main/assembly/hbase-agent.xml b/src/main/assembly/hbase-agent.xml
deleted file mode 100644
index 6ce2cb3..0000000
--- a/src/main/assembly/hbase-agent.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>hbase-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-hbase-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-hbase-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-     </includes>
-    </moduleSet>    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	<directoryMode>755</directoryMode>
-	<fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-hbase-plugin-impl</outputDirectory>
-                <includes>
-                    <include>com.google.code.gson:gson*</include>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-		    		<include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-            <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-            <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-		   			<include>org.noggit:noggit:jar:${noggit.version}</include>
-		   			<include>org.apache.solr:solr-solrj</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-                <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-hbase-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-	<include>org.apache.ranger:ranger-plugins-audit</include>
-	<include>org.apache.ranger:ranger-plugins-cred</include>
-	<include>org.apache.ranger:ranger-plugins-common</include>
-	<include>org.apache.ranger:ranger-hbase-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <dependencySets>
-                <dependencySet>
-                    <outputDirectory>/install/lib</outputDirectory>
-                    <unpack>false</unpack>
-                    <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang</include>
-                        <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                        <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                        <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-                    </includes>
-                </dependencySet>
-        </dependencySets>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-		<include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-  </moduleSets> 	
-
-  <fileSets>
-    <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>hbase-agent/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>hbase-agent/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>hive-agent/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
-  <files>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-hbase-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>upgrade-hbase-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-      <source>security-admin/scripts/ranger_credential_helper.py</source>
-      <outputDirectory>/</outputDirectory>
-      <fileMode>755</fileMode>
-    </file>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-hbase-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>hbase-agent/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/hdfs-agent.xml b/src/main/assembly/hdfs-agent.xml
deleted file mode 100644
index 8bd77f2..0000000
--- a/src/main/assembly/hdfs-agent.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>hdfs-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-hdfs-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-hdfs-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-      </includes>
-    </moduleSet>
-    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-  		<dependencySets>
-                <dependencySet>
-                    <outputDirectory>/install/lib</outputDirectory>
-                    <unpack>false</unpack>
-                    <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang</include>
-                        <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                        <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                        <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-                    </includes>
-                </dependencySet>
-  		</dependencySets>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-        <include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  		<dependencySets>
-   			<dependencySet>
-     			<outputDirectory>/lib/ranger-hdfs-plugin-impl</outputDirectory>
-				<includes>
-					<include>org.eclipse.persistence:javax.persistence</include>
-					<include>org.eclipse.persistence:eclipselink</include>
-					<include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-					<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-					<include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-					<include>org.noggit:noggit:jar:${noggit.version}</include>
-					<include>org.apache.solr:solr-solrj</include>
-					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-				</includes>
-				<unpack>false</unpack>
-  			</dependencySet>
-  		</dependencySets>
-        <outputDirectory>/lib/ranger-hdfs-plugin-impl</outputDirectory>
-     </binaries>
-    <includes>	
-	<include>org.apache.ranger:ranger-plugins-audit</include>
-	<include>org.apache.ranger:ranger-plugins-cred</include>
-	<include>org.apache.ranger:ranger-plugins-common</include>
-	<include>org.apache.ranger:ranger-hdfs-plugin</include>
-    </includes>
-    </moduleSet>
-    
-  </moduleSets> 	
-  <fileSets>
-    <!-- conf.templates for enable -->
-	<fileSet>
-		<outputDirectory>/install/conf.templates/enable</outputDirectory>
-		<directory>hdfs-agent/conf</directory>
-		<excludes>
-			<exclude>*.sh</exclude>
-		</excludes>
-		<fileMode>700</fileMode>
-	</fileSet>
-	<fileSet>
-		<outputDirectory>/install/conf.templates/disable</outputDirectory>
-		<directory>hdfs-agent/disable-conf</directory>
-		<fileMode>700</fileMode>
-	</fileSet>
-    <!-- version file -->
-	<fileSet>
-		<outputDirectory>/</outputDirectory>
-		<directory>${project.build.outputDirectory}</directory>
-		<includes>
-			<include>version</include>
-		</includes>
-		<fileMode>444</fileMode>
-	</fileSet>
-  </fileSets>
-  <!-- enable/disable script for plugin -->
-  <files>
-	<file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-		<outputDirectory>/</outputDirectory>
-		<destName>enable-hdfs-plugin.sh</destName>
-		<fileMode>755</fileMode>
-	</file>
-	<file>
-		<source>agents-common/scripts/upgrade-plugin.sh</source>
-		<outputDirectory>/</outputDirectory>
-		<destName>upgrade-hdfs-plugin.sh</destName>
-		<fileMode>755</fileMode>
-	</file>
-	<file>
-		<source>agents-common/scripts/upgrade-plugin.py</source>
-		<outputDirectory>/</outputDirectory>
-		<fileMode>755</fileMode>
-	</file>
-	<file>
-		<source>security-admin/scripts/ranger_credential_helper.py</source>
-	  <outputDirectory>/</outputDirectory>
-	  <fileMode>755</fileMode>
-	</file>
-	<file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-		<outputDirectory>/</outputDirectory>
-		<destName>disable-hdfs-plugin.sh</destName>
-		<fileMode>755</fileMode>
-	</file>
-	<file>
-		<source>hdfs-agent/scripts/install.properties</source>
-		<outputDirectory>/</outputDirectory>
-		<destName>install.properties</destName>
-		<fileMode>755</fileMode>
-	</file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/hive-agent.xml b/src/main/assembly/hive-agent.xml
deleted file mode 100644
index 059c6a3..0000000
--- a/src/main/assembly/hive-agent.xml
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>hive-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-hive-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-     <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-hive-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-hive-plugin-impl</outputDirectory>
-                <includes>
-					<include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-		    		<include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-					<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-					<include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-		   			<include>org.noggit:noggit:jar:${noggit.version}</include>
-		   			<include>org.apache.solr:solr-solrj</include>
-					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-                <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-hive-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-	<include>org.apache.ranger:ranger-plugins-audit</include>
-	<include>org.apache.ranger:ranger-plugins-cred</include>
-	<include>org.apache.ranger:ranger-plugins-common</include>
-	<include>org.apache.ranger:ranger-hive-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-       <dependencySets>
-                <dependencySet>
-                    <outputDirectory>/install/lib</outputDirectory>
-                    <unpack>false</unpack>
-                    <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang</include>
-                        <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                        <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                        <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-                    </includes>
-                </dependencySet>
-        </dependencySets>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-	    <include>org.apache.ranger:ranger-plugins-installer</include>
-        <include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-  </moduleSets> 	
-  <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>hive-agent/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>hive-agent/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>hive-agent/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for agent -->
-  <files>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-hive-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>upgrade-hive-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>security-admin/scripts/ranger_credential_helper.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-hive-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>hive-agent/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/kms.xml b/src/main/assembly/kms.xml
deleted file mode 100755
index c1d5c1f..0000000
--- a/src/main/assembly/kms.xml
+++ /dev/null
@@ -1,459 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-    <id>kms</id>
-    <formats>
-        <format>tar.gz</format>
-        <format>zip</format>
-    </formats>
-    <baseDirectory>${project.name}-${project.version}-kms</baseDirectory>
-    <includeBaseDirectory>true</includeBaseDirectory>
-
-    <moduleSets>
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>false</unpack>
-                <outputDirectory>/ews/webapp/lib</outputDirectory>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/ews/webapp/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                            <include>org.eclipse.persistence:eclipselink</include>
-                            <include>org.eclipse.persistence:javax.persistence</include>
-                            <include>com.googlecode.log4jdbc:log4jdbc</include>
-                            <include>log4j:log4j</include>
-                            <include>org.slf4j:slf4j-api</include>
-                            <include>org.slf4j:slf4j-log4j12</include>
-                            <include>com.codahale.metrics:metrics-core</include>
-                            <include>org.slf4j:jul-to-slf4j</include>
-                            <include>commons-logging:commons-logging</include>
-                            <include>com.google.guava:guava</include>
-                            <include>com.sun.jersey:jersey-core</include>
-                            <include>com.sun.jersey:jersey-server</include>
-                            <include>javax.servlet:servlet-api</include>
-                            <include>org.mortbay.jetty:jetty</include>
-                            <include>org.mortbay.jetty:jetty-util</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>commons-lang:commons-lang</include>
-                            <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
-                            <include>org.apache.curator:curator-framework</include>
-                            <include>org.apache.curator:curator-client</include>
-                            <include>org.apache.curator:curator-test</include>
-                            <include>asm:asm-all</include>
-                            <include>com.sun.jersey:jersey-bundle</include>
-                            <include>org.apache.httpcomponents:httpclient</include>
-                            <include>javax.activation:activation</include>
-                            <include>org.apache.directory.server:apacheds-i18n</include>
-                            <include>org.apache.directory.server:apacheds-kerberos-codec</include>
-                            <include>org.apache.directory.api:api-asn1-api</include>
-                            <include>org.apache.directory.api:api-i18n</include>
-                            <include>org.apache.directory.api:api-util</include>
-                            <include>org.apache.avro:avro</include>
-                            <include>commons-beanutils:commons-beanutils</include>
-                            <include>commons-cli:commons-cli</include>
-                            <include>commons-codec:commons-codec:jar:${commons.codec.version}</include>
-                            <include>org.apache.commons:commons-compress</include>
-                            <include>org.apache.commons:commons-configuration2</include>
-                            <include>commons-digester:commons-digester</include>
-                            <include>commons-io:commons-io</include>
-                            <include>org.apache.commons:commons-math3</include>
-                            <include>commons-net:commons-net:jar:${commons.net.version}</include>
-                            <include>org.apache.curator:curator-recipes</include>
-                            <include>com.google.code.gson:gson</include>
-                            <include>org.apache.hadoop:hadoop-annotations</include>
-                            <include>org.apache.htrace:htrace-core4</include>
-                            <include>org.apache.httpcomponents:httpcore</include>
-                            <include>org.codehaus.jackson:jackson-core-asl</include>
-                            <include>org.codehaus.jackson:jackson-jaxrs</include>
-                            <include>org.codehaus.jackson:jackson-mapper-asl</include>
-                            <include>org.codehaus.jackson:jackson-xc</include>
-                            <include>javax.xml.bind:jaxb-api</include>
-                            <include>com.sun.xml.bind:jaxb-impl</include>
-                            <include>com.sun.jersey:jersey-json</include>
-                            <include>org.codehaus.jettison:jettison</include>
-                            <include>jline:jline</include>
-                            <include>com.jcraft:jsch</include>
-                            <include>com.google.code.findbugs:jsr305</include>
-                            <include>io.netty:netty</include>
-                            <include>com.thoughtworks.paranamer:paranamer</include>
-                            <include>org.xerial.snappy:snappy-java</include>
-                            <include>xmlenc:xmlenc</include>
-                            <include>org.tukaani:xz</include>
-                            <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                            <include>org.apache.httpcomponents:httpclient:jar:${kms.httpcomponents.httpclient.version}
-                            </include>
-                            <include>org.noggit:noggit:jar:${noggit.version}</include>
-                            <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
-                            <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
-                            <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-                            <include>org.codehaus.woodstox:stax2-api</include>
-                            <include>com.fasterxml.woodstox:woodstox-core</include>
-                            <include>com.fasterxml.jackson.core:jackson-core</include>
-                            <include>com.fasterxml.jackson.core:jackson-annotations</include>
-                            <include>com.fasterxml.jackson.core:jackson-databind</include>
-                            <include>com.microsoft.azure:azure:jar:${com.microsoft.azure.version}</include>
-                            <include>com.microsoft.azure:azure-keyvault:jar:${com.microsoft.azure.azure-keyvault.version}</include>
-                            <include>com.microsoft.azure:azure-mgmt-keyvault:jar:${com.microsoft.azure.azure-mgmt-keyvault.version}</include>
-                            <include>com.microsoft.rest:client-runtime:jar:${com.microsoft.rest.client-runtime.version}</include>
-                            <include>com.microsoft.azure:azure-client-runtime:jar:${com.microsoft.azure.azure-client-runtime.version}</include>
-                            <include>com.microsoft.azure:adal4j:jar:${com.microsoft.azure.adal4j.version}</include>
-                            <include>io.reactivex:rxjava:jar:${io.reactivex.rxjava.version}</include>
-                            <include>com.squareup.okhttp3:okhttp</include>
-                            <include>com.squareup.okio:okio</include>
-                            <include>com.squareup.retrofit2:retrofit</include>
-                            <include>com.squareup.retrofit2:adapter-rxjava</include>
-                            <include>com.squareup.okhttp3:okhttp-urlconnection</include>
-                            <include>com.fasterxml.jackson.datatype:jackson-datatype-joda</include>
-                            <include>joda-time:okhttp-urlconnection</include>
-                            <include>joda-time:joda-time</include>
-                            <include>com.nimbusds:oauth2-oidc-sdk</include>
-                            <include>net.minidev:json-smart</include>
-                            <include>net.minidev:asm:jar:${net.minidev.asm.version}</include>
-                            <include>javax.mail:javax.mail-api</include>
-                            <include>com.sun.mail:javax.mail</include>
-                            <include>com.nimbusds:nimbus-jose-jwt</include>
-                            <include>org.apache.commons:commons-lang3</include>
-                            <include>com.microsoft.azure:azure-keyvault-webkey</include>
-                            <include>org.bouncycastle:bcprov-jdk15on</include>
-                            <include>org.bouncycastle:bcpkix-jdk15on</include>
-                            <include>com.microsoft.azure:azure-mgmt-resources</include>
-                            <include>com.microsoft.azure:azure-client-authentication</include>
-                            <include>com.microsoft.azure:azure-mgmt-graph-rbac</include>
-                            <include>com.microsoft.azure:azure-mgmt-storage</include>
-                            <include>com.microsoft.azure:azure-mgmt-compute</include>
-                            <include>com.microsoft.azure:azure-mgmt-network</include>
-                            <include>com.microsoft.azure:azure-mgmt-batch</include>
-                            <include>com.microsoft.azure:azure-mgmt-batchai</include>
-                            <include>com.microsoft.azure:azure-mgmt-trafficmanager</include>
-                            <include>com.microsoft.azure:azure-mgmt-redis</include>
-                            <include>com.microsoft.azure:azure-mgmt-cdn</include>
-                            <include>com.microsoft.azure:azure-mgmt-dns</include>
-                            <include>com.microsoft.azure:azure-mgmt-appservice</include>
-                            <include>com.microsoft.azure:azure-mgmt-sql</include>
-                            <include>com.microsoft.azure:azure-mgmt-servicebus</include>
-                            <include>com.microsoft.azure:azure-mgmt-containerinstance</include>
-                            <include>com.microsoft.azure:azure-mgmt-containerregistry</include>
-                            <include>com.microsoft.azure:azure-mgmt-containerservice</include>
-                            <include>com.microsoft.azure:azure-mgmt-cosmosdb</include>
-                            <include>com.microsoft.azure:azure-mgmt-search</include>
-                            <include>com.microsoft.azure:azure-mgmt-locks</include>
-                            <include>com.microsoft.azure:azure-mgmt-msi</include>
-                            <include>com.microsoft.azure:azure-mgmt-monitor</include>
-                            <include>com.microsoft.azure:azure-mgmt-eventhub</include>
-                            <include>com.microsoft.azure:azure-mgmt-eventhub</include>
-                            <include>com.microsoft.azure:azure-keyvault-cryptography</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-kms</include>
-            </includes>
-        </moduleSet>
-	
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>true</unpack>
-                <outputDirectory>/ews/webapp</outputDirectory>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-kms</include>
-            </includes>
-        </moduleSet>
-
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <outputDirectory>/ews/webapp/WEB-INF/classes/lib</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/ews/webapp/WEB-INF/classes/lib</outputDirectory>
-                        <includes>
-                            <include>org.apache.tomcat.embed:tomcat-embed*</include>
-                            <include>org.apache.tomcat:tomcat-annotations-api*</include>
-                            <include>org.eclipse.jdt.core.compiler:ecj:jar:P20140317-1600</include>
-                            <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
-                            <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
-                            <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-                            <include>org.apache.solr:solr-solrj</include>
-                            <include>org.apache.ranger:ranger-plugins-common</include>
-                            <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                            <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                            <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                            <include>org.apache.ranger:ranger-plugins-cred</include>
-                        </includes>
-                        <unpack>false</unpack>
-                    </dependencySet>
-                </dependencySets>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:embeddedwebserver</include>
-            </includes>
-        </moduleSet>
-
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <outputDirectory>/jisql/lib</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/jisql/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>net.sf.jopt-simple:jopt-simple</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:jisql</include>
-            </includes>
-        </moduleSet>
-        <!-- Plugin -->
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <outputDirectory>/ews/webapp/WEB-INF/classes/lib</outputDirectory>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-kms-plugin-shim</include>
-                <include>org.apache.ranger:ranger-plugin-classloader</include>
-                <include>org.apache.ranger:credentialbuilder</include>
-            </includes>
-        </moduleSet>
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                            <include>com.google.code.gson:gson</include>
-                            <include>org.eclipse.persistence:eclipselink</include>
-                            <include>org.eclipse.persistence:javax.persistence</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                            <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}
-                            </include>
-                            <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                            <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                            <include>org.noggit:noggit:jar:${noggit.version}</include>
-                            <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
-                            <include>org.apache.solr:solr-solrj</include>
-                            <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                            <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                            <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                        </includes>
-                    </dependencySet>
-                    <dependencySet>
-                        <outputDirectory>/install/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <directoryMode>755</directoryMode>
-                        <fileMode>644</fileMode>
-                        <includes>
-                            <include>commons-cli:commons-cli</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                            <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                            <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                            <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                            <include>org.apache.ranger:ranger-plugins-cred</include>
-                            <include>org.apache.ranger:credentialbuilder</include>
-                            <include>org.codehaus.woodstox:stax2-api</include>
-                            <include>com.fasterxml.woodstox:woodstox-core</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-                <outputDirectory>/ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-plugins-audit</include>
-                <include>org.apache.ranger:ranger-plugins-cred</include>
-                <include>org.apache.ranger:ranger-plugins-common</include>
-                <include>org.apache.ranger:ranger-kms-plugin</include>
-            </includes>
-        </moduleSet>
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <outputDirectory>/install/lib</outputDirectory>
-                <unpack>false</unpack>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-plugins-installer</include>
-                <include>org.apache.ranger:credentialbuilder</include>
-            </includes>
-        </moduleSet>
-        <!-- End Plugin -->
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <outputDirectory>/cred/lib</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/cred/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>commons-cli:commons-cli</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>org.apache.commons:commons-configuration2</include>
-                            <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                            <include>commons-lang:commons-lang</include>
-                            <include>commons-logging:commons-logging</include>
-                            <include>com.google.guava:guava</include>
-                            <include>org.slf4j:slf4j-api</include>
-                            <include>org.apache.hadoop:hadoop-common</include>
-                            <include>org.apache.hadoop:hadoop-auth</include>
-                            <include>org.apache.htrace:htrace-core4</include>
-                            <include>org.codehaus.woodstox:stax2-api</include>
-                            <include>com.fasterxml.woodstox:woodstox-core</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:credentialbuilder</include>
-            </includes>
-        </moduleSet>
-    </moduleSets>
-
-    <fileSets>
-        <!-- <fileSet>
-            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
-            <directory>kms/config/webserver</directory>
-            <fileMode>700</fileMode>
-        </fileSet> -->
-        <fileSet>
-            <outputDirectory>/db</outputDirectory>
-            <directoryMode>755</directoryMode>
-            <directory>kms/scripts/db</directory>
-            <fileMode>544</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/</outputDirectory>
-            <directory>kms/scripts</directory>
-            <includes>
-                <include>dba_script.py</include>
-                <include>db_setup.py</include>
-                <include>update_property.py</include>
-                <include>ranger-kms-initd</include>
-                <include>ranger-kms</include>
-                <include>setup.sh</include>
-                <include>importJCEKSKeys.sh</include>
-                <include>exportKeysToJCEKS.sh</include>
-                <include>HSMMK2DB.sh</include>
-                <include>DBMK2HSM.sh</include>
-                <include>VerifyIsDBMasterkeyCorrect.sh</include>
-                <include>VerifyIsHSMMasterkeyCorrect.sh</include>
-                <include>DBMKTOKEYSECURE.sh</include>
-                <include>DBMKTOAZUREKEYVAULT.sh</include>
-                <include>KEYSECUREMKTOKMSDB.sh</include>
-            </includes>
-            <fileMode>544</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/</outputDirectory>
-            <directory>kms/scripts</directory>
-            <includes>
-                <include>install.properties</include>
-            </includes>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
-            <directoryMode>0700</directoryMode>
-            <directory>kms/config/kms-webapp</directory>
-            <fileMode>0700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
-            <directoryMode>0700</directoryMode>
-            <directory>kms/config/webserver</directory>
-            <fileMode>0700</fileMode>
-        </fileSet>
-        <!-- Plugin -->
-        <!-- conf.templates for enable -->
-        <fileSet>
-            <outputDirectory>/install/conf.templates/enable</outputDirectory>
-            <directory>plugin-kms/conf</directory>
-            <excludes>
-                <exclude>*.sh</exclude>
-            </excludes>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/disable</outputDirectory>
-            <directory>plugin-kms/disable-conf</directory>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/default</outputDirectory>
-            <directory>plugin-kms/template</directory>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <!-- version file -->
-        <fileSet>
-            <outputDirectory>/</outputDirectory>
-            <directory>${project.build.directory}</directory>
-            <includes>
-                <include>version</include>
-            </includes>
-            <fileMode>444</fileMode>
-        </fileSet>
-    </fileSets>
-    <files>
-        <file>
-            <source>plugin-kms/scripts/enable-kms-plugin.sh</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>enable-kms-plugin.sh</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>security-admin/scripts/ranger_credential_helper.py</source>
-            <outputDirectory>/</outputDirectory>
-            <fileMode>755</fileMode>
-        </file>
-    </files>
-</assembly>
diff --git a/src/main/assembly/knox-agent.xml b/src/main/assembly/knox-agent.xml
deleted file mode 100644
index 5a0a49e..0000000
--- a/src/main/assembly/knox-agent.xml
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>knox-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-knox-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-  
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-knox-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-      </includes>
-    </moduleSet>
-    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-knox-plugin-impl</outputDirectory>
-                <includes>
-                    <include>org.apache.commons:commons-configuration2</include>
-		    		<include>com.google.code.gson:gson*</include>
-					<include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-					<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-					<include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-		    		<include>org.noggit:noggit:jar:${noggit.version}</include>
-		    		<include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
-		    		<include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
-					<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-		    		<include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-					<include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
-					<include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
-					<include>org.apache.solr:solr-solrj</include>
-					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-		    	</includes>
-                <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-knox-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-audit</include>
-		<include>org.apache.ranger:ranger-plugins-cred</include>
-		<include>org.apache.ranger:ranger-plugins-common</include>
-		<include>org.apache.ranger:ranger-knox-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-        <dependencySets>
-           <dependencySet>
-               <outputDirectory>/install/lib</outputDirectory>
-               <unpack>false</unpack>
-               <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang</include>
-                        <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-						<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                        <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-               </includes>
-           </dependencySet>
-        </dependencySets>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-	<include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-  </moduleSets> 	
-  <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>knox-agent/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>knox-agent/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>knox-agent/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for plugin -->
-  <files>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-knox-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>upgrade-knox-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-      <source>security-admin/scripts/ranger_credential_helper.py</source>
-      <outputDirectory>/</outputDirectory>
-      <fileMode>755</fileMode>
-    </file>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-knox-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>knox-agent/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/plugin-atlas.xml b/src/main/assembly/plugin-atlas.xml
deleted file mode 100644
index a7dba72..0000000
--- a/src/main/assembly/plugin-atlas.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>atlas-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-atlas-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-  
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-atlas-plugin-shim</include>	  							 
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-      </includes>
-    </moduleSet>
-    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-atlas-plugin-impl</outputDirectory>
-                <includes>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-                    <include>com.sun.jersey:jersey-bundle</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.codehaus.jackson:jackson-jaxrs</include>
-                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                    <include>org.apache.solr:solr-solrj</include>
-                    <include>org.apache.ranger:ranger-plugins-audit</include>
-                    <include>org.apache.ranger:ranger-plugins-cred</include>
-                    <include>org.apache.ranger:ranger-plugins-common</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-		    	</includes>
-                <unpack>false</unpack>
-            </dependencySet>
-            <dependencySet>
-						<outputDirectory>/install/lib</outputDirectory>
-						<unpack>false</unpack>
-						<directoryMode>755</directoryMode>
-						<fileMode>644</fileMode>
-						<includes>
-							<include>commons-cli:commons-cli</include>
-							<include>commons-collections:commons-collections</include>
-							<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-							<include>commons-io:commons-io:jar:${commons.io.version}</include>
-							<include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-							<include>commons-logging:commons-logging</include>
-							<include>com.google.guava:guava:jar:${google.guava.version}</include>
-							<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-							<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-							<include>org.apache.ranger:ranger-plugins-cred</include>
-							<include>org.apache.ranger:credentialbuilder</include>
-							<include>org.codehaus.woodstox:stax2-api</include>
-							<include>com.fasterxml.woodstox:woodstox-core</include>
-							<include>org.apache.htrace:htrace-core4</include>
-						</includes>
-			</dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-atlas-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-atlas-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>        
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-		<include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-  </moduleSets> 	
-  <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>plugin-atlas/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>plugin-atlas/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for plugin -->
-  <files>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-atlas-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-      <source>security-admin/scripts/ranger_credential_helper.py</source>
-      <outputDirectory>/</outputDirectory>
-      <fileMode>755</fileMode>
-    </file>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-atlas-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>plugin-atlas/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/plugin-elasticsearch.xml b/src/main/assembly/plugin-elasticsearch.xml
deleted file mode 100644
index 4a9ded2..0000000
--- a/src/main/assembly/plugin-elasticsearch.xml
+++ /dev/null
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-    <id>elasticsearch-plugin</id>
-    <formats>
-        <format>tar.gz</format>
-        <format>zip</format>
-    </formats>
-    <baseDirectory>${project.name}-${project.version}-elasticsearch-plugin</baseDirectory>
-    <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-    <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>commons-collections:commons-collections</include>
-                    <include>commons-lang:commons-lang</include>
-                    <include>org.slf4j:slf4j-api</include>
-					<include>org.slf4j:slf4j-log4j12</include>
-                </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
-    </binaries>
-    <includes>
-        <include>org.apache.ranger:ranger-elasticsearch-plugin-shim</include>
-        <include>org.apache.ranger:ranger-plugin-classloader</include>
-    </includes>
-    </moduleSet>
-
-    <moduleSet>
-    <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-elasticsearch-plugin/ranger-elasticsearch-plugin-impl</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
-                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
-                    <include>com.google.code.gson:gson</include>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-                    <include>com.sun.jersey:jersey-bundle</include>
-                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>commons-io:commons-io</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                    <include>org.noggit:noggit:jar:${noggit.version}</include>
-                    <include>org.codehaus.jackson:jackson-core-asl</include>
-                    <include>org.codehaus.jackson:jackson-jaxrs</include>
-                    <include>org.codehaus.jackson:jackson-mapper-asl</include>
-                    <include>org.codehaus.jackson:jackson-xc</include>
-                    <include>org.apache.solr:solr-solrj</include>
-                    <include>commons-codec:commons-codec</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-            </dependencySet>
-            <dependencySet>
-                <outputDirectory>/install/lib</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <includes>
-                    <include>commons-cli:commons-cli</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
-                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                    <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                    <include>org.apache.ranger:ranger-plugins-cred</include>
-                    <include>org.apache.ranger:credentialbuilder</include>
-                </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-elasticsearch-plugin/ranger-elasticsearch-plugin-impl</outputDirectory>
-    </binaries>
-    <includes>
-        <include>org.apache.ranger:ranger-plugins-audit</include>
-        <include>org.apache.ranger:ranger-plugins-cred</include>
-        <include>org.apache.ranger:ranger-plugins-common</include>
-        <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
-    </includes>
-    </moduleSet>
-    <moduleSet>
-    <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-    </binaries>
-    <includes>
-        <include>org.apache.ranger:ranger-plugins-installer</include>
-        <include>org.apache.ranger:credentialbuilder</include>
-    </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>plugin-elasticsearch/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>plugin-elasticsearch/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>plugin-elasticsearch/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
-  <files>
-    <file>
-        <source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-elasticsearch-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-elasticsearch-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>plugin-elasticsearch/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>security-admin/scripts/ranger_credential_helper.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>ranger-elasticsearch-plugin-shim/conf/plugin-descriptor.properties</source>
-        <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
-        <fileMode>755</fileMode>
-        <filtered>true</filtered>
-    </file>
-    <file>
-        <source>ranger-elasticsearch-plugin-shim/conf/plugin-security.policy</source>
-        <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/plugin-kafka.xml b/src/main/assembly/plugin-kafka.xml
deleted file mode 100644
index c8af00f..0000000
--- a/src/main/assembly/plugin-kafka.xml
+++ /dev/null
@@ -1,197 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	You under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
-<assembly>
-	<id>kafka-plugin</id>
-	<formats>
-		<format>tar.gz</format>
-		<format>zip</format>
-	</formats>
-	<baseDirectory>${project.name}-${project.version}-kafka-plugin
-	</baseDirectory>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<moduleSets>
-		<moduleSet>
-	     <binaries>
-	        <includeDependencies>false</includeDependencies>
-	        <unpack>false</unpack>
-		    <directoryMode>755</directoryMode>
-		    <fileMode>644</fileMode>
-	  	    <outputDirectory>/lib</outputDirectory>
-	     </binaries>
-	     <includes>
-		  <include>org.apache.ranger:ranger-kafka-plugin-shim</include>
-		  <include>org.apache.ranger:ranger-plugin-classloader</include>
-	      </includes>
-	    </moduleSet>
-   	 
-		<moduleSet>
-			<binaries>
-				<includeDependencies>true</includeDependencies>
-				<unpack>false</unpack>
-				<directoryMode>755</directoryMode>
-				<fileMode>644</fileMode>
-				<dependencySets>
-					<dependencySet>
-						<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
-						<unpack>false</unpack>
-						<includes>
-							<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}
-							</include>
-							<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}
-							</include>
-							<include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}
-							</include>
-							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}
-							</include>
-							<include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
-							<include>com.google.code.gson:gson</include>
-							<include>org.eclipse.persistence:eclipselink</include>
-							<include>org.eclipse.persistence:javax.persistence</include>
-							<include>commons-collections:commons-collections</include>
-							<include>com.sun.jersey:jersey-bundle</include>
-							<include>commons-logging:commons-logging:jar:${commons.logging.version}
-							</include>
-							<include>commons-lang:commons-lang</include>
-							<include>commons-io:commons-io</include>
-							<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}
-							</include>
-							<include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}
-							</include>
-							<include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}
-							</include>
-							<include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
-							<include>org.noggit:noggit:jar:${noggit.version}</include>
-							<include>org.codehaus.jackson:jackson-core-asl</include>
-							<include>org.codehaus.jackson:jackson-jaxrs</include>
-							<include>org.codehaus.jackson:jackson-mapper-asl</include>
-							<include>org.codehaus.jackson:jackson-xc</include>
-							<include>org.apache.solr:solr-solrj</include>
-							<include>commons-codec:commons-codec</include>
-							<include>org.codehaus.woodstox:stax2-api</include>
-							<include>com.fasterxml.woodstox:woodstox-core</include>
-							<include>org.apache.htrace:htrace-core4</include>
-							<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-							<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-							<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-						</includes>
-					</dependencySet>
-					<dependencySet>
-						<outputDirectory>/install/lib</outputDirectory>
-						<unpack>false</unpack>
-						<directoryMode>755</directoryMode>
-						<fileMode>644</fileMode>
-						<includes>
-							<include>commons-cli:commons-cli</include>
-							<include>commons-collections:commons-collections</include>
-							<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}
-							</include>
-							<include>commons-io:commons-io:jar:${commons.io.version}
-							</include>
-							<include>commons-lang:commons-lang:jar:${commons.lang.version}
-							</include>
-							<include>commons-logging:commons-logging</include>
-							<include>com.google.guava:guava:jar:${google.guava.version}</include>
-							<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-							<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}
-							</include>
-							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}
-							</include>
-							<include>org.apache.ranger:ranger-plugins-cred
-							</include>
-							<include>org.apache.ranger:credentialbuilder</include>
-							<include>org.codehaus.woodstox:stax2-api</include>
-							<include>com.fasterxml.woodstox:woodstox-core</include>
-							<include>org.apache.htrace:htrace-core4</include>
-						</includes>
-					</dependencySet>
-				</dependencySets>
-				<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
-			</binaries>
-			<includes>
-				<include>org.apache.ranger:ranger-kafka-plugin</include>
-				<include>org.apache.ranger:ranger-plugins-audit</include>
-				<include>org.apache.ranger:ranger-plugins-cred</include>
-				<include>org.apache.ranger:ranger-plugins-common</include>
-			</includes>
-		</moduleSet>
-		<moduleSet>
-			<binaries>
-				<includeDependencies>false</includeDependencies>
-				<outputDirectory>/install/lib</outputDirectory>
-				<unpack>false</unpack>
-			</binaries>
-			<includes>
-				<include>org.apache.ranger:ranger-plugins-installer
-				</include>
-				<include>org.apache.ranger:credentialbuilder</include>
-			</includes>
-		</moduleSet>
-	</moduleSets>
-	<fileSets>
-		<!-- conf.templates for enable -->
-		<fileSet>
-			<outputDirectory>/install/conf.templates/enable</outputDirectory>
-			<directory>plugin-kafka/conf</directory>
-			<fileMode>700</fileMode>
-		</fileSet>
-		<fileSet>
-			<outputDirectory>/install/conf.templates/disable</outputDirectory>
-			<directory>plugin-kafka/disable-conf</directory>
-			<fileMode>700</fileMode>
-		</fileSet>
-		<fileSet>
-			<outputDirectory>/install/conf.templates/default</outputDirectory>
-			<directory>plugin-kafka/template</directory>
-			<fileMode>700</fileMode>
-		</fileSet>
-		<!-- version file -->
-		<fileSet>
-			<outputDirectory>/</outputDirectory>
-			<directory>${project.build.outputDirectory}</directory>
-			<includes>
-				<include>version</include>
-			</includes>
-			<fileMode>444</fileMode>
-		</fileSet>
-	</fileSets>
-	<!-- enable/disable script for Plugin -->
-	<files>
-		<file>
-			<source>agents-common/scripts/enable-agent.sh</source>
-			<outputDirectory>/</outputDirectory>
-			<destName>enable-kafka-plugin.sh</destName>
-			<fileMode>755</fileMode>
-		</file>
-		<file>
-			<source>agents-common/scripts/enable-agent.sh</source>
-			<outputDirectory>/</outputDirectory>
-			<destName>disable-kafka-plugin.sh</destName>
-			<fileMode>755</fileMode>
-		</file>
-		<file>
-			<source>security-admin/scripts/ranger_credential_helper.py</source>
-			<outputDirectory>/</outputDirectory>
-			<fileMode>755</fileMode>
-		</file>
-		<file>
-			<source>security-admin/scripts/ranger_credential_helper.py</source>
-			<outputDirectory>/</outputDirectory>
-			<fileMode>755</fileMode>
-		</file>
-		<file>
-			<source>plugin-kafka/scripts/install.properties</source>
-			<outputDirectory>/</outputDirectory>
-			<destName>install.properties</destName>
-			<fileMode>755</fileMode>
-		</file>
-	</files>
-</assembly>
diff --git a/src/main/assembly/plugin-kms.xml b/src/main/assembly/plugin-kms.xml
deleted file mode 100755
index f7778dd..0000000
--- a/src/main/assembly/plugin-kms.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>kms-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-kms-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-kms-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-      </includes>
-  	</moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-kms-plugin-impl</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                    <include>com.google.code.gson:gson</include>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-                    <include>commons-collections:commons-collections</include>
-		    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-		    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-		    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-		    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-		    <include>org.noggit:noggit:jar:${noggit.version}</include>
-		    <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
-		    <include>org.apache.solr:solr-solrj</include>
-		    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-		    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-            <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-            </dependencySet>
-            <dependencySet>
-                   <outputDirectory>/install/lib</outputDirectory>
-                    <unpack>false</unpack>
-            		<directoryMode>755</directoryMode>
-            		<fileMode>644</fileMode>
-                    <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-         		<include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                        <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-			<include>org.apache.ranger:ranger-plugins-cred</include>
-			<include>org.apache.ranger:credentialbuilder</include>
-                        <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-                    </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-kms-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-audit</include>
-		<include>org.apache.ranger:ranger-plugins-cred</include>
-		<include>org.apache.ranger:ranger-plugins-common</include>
-		<include>org.apache.ranger:ranger-kms-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-		<include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>plugin-kms/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>plugin-kms/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>plugin-kms/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
- <files>
-    <file>
-	<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-kms-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>    
-    <file>
-        <source>plugin-kms/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>plugin-kms/scripts/kms-plugin-install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>kms-plugin-install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/plugin-kylin.xml b/src/main/assembly/plugin-kylin.xml
deleted file mode 100644
index 7469401..0000000
--- a/src/main/assembly/plugin-kylin.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-    <id>kylin-plugin</id>
-    <formats>
-        <format>tar.gz</format>
-        <format>zip</format>
-    </formats>
-    <baseDirectory>${project.name}-${project.version}-kylin-plugin</baseDirectory>
-    <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-    <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <outputDirectory>/lib</outputDirectory>
-    </binaries>
-    <includes>
-        <include>org.apache.ranger:ranger-kylin-plugin-shim</include>
-        <include>org.apache.ranger:ranger-plugin-classloader</include>
-        </includes>
-    </moduleSet>
-
-    <moduleSet>
-    <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-kylin-plugin-impl</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                    <include>org.noggit:noggit:jar:${noggit.version}</include>
-                    <include>org.apache.solr:solr-solrj</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-            </dependencySet>
-            <dependencySet>
-                <outputDirectory>/install/lib</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <includes>
-                    <include>commons-cli:commons-cli</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                    <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                    <include>org.apache.ranger:ranger-plugins-cred</include>
-                    <include>org.apache.ranger:credentialbuilder</include>
-                    <include>org.codehaus.woodstox:stax2-api</include>
-                    <include>com.fasterxml.woodstox:woodstox-core</include>
-                    <include>org.apache.htrace:htrace-core4</include>
-                </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-kylin-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-        <include>org.apache.ranger:ranger-plugins-audit</include>
-        <include>org.apache.ranger:ranger-plugins-cred</include>
-        <include>org.apache.ranger:ranger-plugins-common</include>
-        <include>org.apache.ranger:ranger-kylin-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-        <include>org.apache.ranger:ranger-plugins-installer</include>
-        <include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>plugin-kylin/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>plugin-kylin/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>plugin-kylin/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
-  <files>
-    <file>
-        <source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-kylin-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-kylin-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>plugin-kylin/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>security-admin/scripts/ranger_credential_helper.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/plugin-ozone.xml b/src/main/assembly/plugin-ozone.xml
deleted file mode 100644
index 868a63c..0000000
--- a/src/main/assembly/plugin-ozone.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-    <id>ozone-plugin</id>
-    <formats>
-        <format>tar.gz</format>
-        <format>zip</format>
-    </formats>
-    <baseDirectory>${project.name}-${project.version}-ozone-plugin</baseDirectory>
-    <includeBaseDirectory>true</includeBaseDirectory>
-    <moduleSets>
-
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <outputDirectory>/lib</outputDirectory>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-ozone-plugin-shim</include>
-                <include>org.apache.ranger:ranger-plugin-classloader</include>
-            </includes>
-        </moduleSet>
-
-        <moduleSet>
-            <binaries>
-                <includeDependencies>true</includeDependencies>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/install/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>commons-cli:commons-cli</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
-                            <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                            <include>commons-lang:commons-lang</include>
-                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                            <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                            <include>org.apache.hadoop:hadoop-ozone:jar:0.4.0.3.0.100.0-SNAPSHOT</include>
-                            <include>org.apache.hadoop:hadoop-hdds:jar:0.4.0.3.0.100.0-SNAPSHOT</include>
-			    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
-                            <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
-			    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration2.version}</include>
-			    <include>com.sun.jersey:jersey-core</include>
-                            <include>com.sun.jersey:jersey-client</include>
-			    <include>com.sun.jersey:jersey-bundle</include>
-                            <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-			    <include>com.kstruct:gethostname4j</include>
-			    <include>net.java.dev.jna:jna</include>
-                            <include>net.java.dev.jna:jna-platform</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-                <outputDirectory>/install/lib</outputDirectory>
-                <unpack>false</unpack>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-plugins-installer</include>
-                <include>org.apache.ranger:credentialbuilder</include>
-            </includes>
-        </moduleSet>
-
-        <moduleSet>
-            <binaries>
-                <includeDependencies>true</includeDependencies>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/lib/ranger-ozone-plugin-impl</outputDirectory>
-                        <includes>
-                            <include>org.eclipse.persistence:javax.persistence</include>
-                            <include>org.eclipse.persistence:eclipselink</include>
-                            <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                            <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                            <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                            <include>org.noggit:noggit:jar:${noggit.version}</include>
-                            <include>org.apache.solr:solr-solrj</include>
-			    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
-                            <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
-			    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration2.version}</include>
-			    <include>com.sun.jersey:jersey-core</include>
-                            <include>com.sun.jersey:jersey-client</include>
-                            <include>com.sun.jersey:jersey-bundle</include>
-                            <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
-			    <include>commons-lang:commons-lang</include>
-			    <include>com.kstruct:gethostname4j</include>
-			    <include>net.java.dev.jna:jna</include>
-                            <include>net.java.dev.jna:jna-platform</include>
-                        </includes>
-                        <unpack>false</unpack>
-                    </dependencySet>
-                </dependencySets>
-                <outputDirectory>/lib/ranger-ozone-plugin-impl</outputDirectory>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-plugins-audit</include>
-                <include>org.apache.ranger:ranger-plugins-cred</include>
-                <include>org.apache.ranger:ranger-plugins-common</include>
-                <include>org.apache.ranger:ranger-ozone-plugin</include>
-            </includes>
-        </moduleSet>
-
-    </moduleSets>
-    <fileSets>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/enable</outputDirectory>
-            <directory>plugin-ozone/conf</directory>
-            <excludes>
-                <exclude>*.sh</exclude>
-            </excludes>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/disable</outputDirectory>
-            <directory>plugin-ozone/disable-conf</directory>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/default</outputDirectory>
-            <directory>plugin-ozone/template</directory>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/</outputDirectory>
-            <directory>${project.build.outputDirectory}</directory>
-            <includes>
-                <include>version</include>
-            </includes>
-            <fileMode>444</fileMode>
-        </fileSet>
-    </fileSets>
-    <files>
-        <file>
-            <source>agents-common/scripts/enable-agent.sh</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>enable-ozone-plugin.sh</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>agents-common/scripts/enable-agent.sh</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>disable-ozone-plugin.sh</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>plugin-ozone/scripts/install.properties</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>install.properties</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>security-admin/scripts/ranger_credential_helper.py</source>
-            <outputDirectory>/</outputDirectory>
-            <fileMode>755</fileMode>
-        </file>
-    </files>
-</assembly>
diff --git a/src/main/assembly/plugin-presto.xml b/src/main/assembly/plugin-presto.xml
deleted file mode 100644
index 17260ab..0000000
--- a/src/main/assembly/plugin-presto.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-    <id>presto-plugin</id>
-    <formats>
-        <format>tar.gz</format>
-        <format>zip</format>
-    </formats>
-    <baseDirectory>${project.name}-${project.version}-presto-plugin</baseDirectory>
-    <includeBaseDirectory>true</includeBaseDirectory>
-    <moduleSets>
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <outputDirectory>/lib</outputDirectory>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>com.google.inject:guice:jar:${presto.guice.version}</include>
-                            <include>com.google.guava:guava:jar:${presto.guava.version}</include>
-                            <include>io.airlift:bootstrap:jar:${presto.airlift.version}</include>
-                            <include>io.airlift:log:jar:${presto.airlift.version}</include>
-                            <include>io.airlift:log-manager:jar:${presto.airlift.version}</include>
-                            <include>io.airlift:configuration:jar:${presto.airlift.version}</include>
-                            <include>javax.validation:validation-api:jar:${presto.validation-api.version}</include>
-                            <include>javax.inject:javax.inject:jar:${javax-inject.version}</include>
-                            <include>org.apache.bval:bval-jsr:jar:${presto.bval-jsr.version}</include>
-                            <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-presto-plugin-shim</include>
-                <include>org.apache.ranger:ranger-plugin-classloader</include>
-            </includes>
-        </moduleSet>
-
-        <moduleSet>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/lib/ranger-presto-plugin-impl</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>com.google.code.gson:gson*</include>
-                            <include>org.eclipse.persistence:eclipselink</include>
-                            <include>org.eclipse.persistence:javax.persistence</include>
-                            <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                            <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                            <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                            <include>org.noggit:noggit:jar:${noggit.version}</include>
-                            <include>org.apache.solr:solr-solrj</include>
-                            <include>com.sun.jersey:jersey-core</include>
-                            <include>com.sun.jersey:jersey-server</include>
-                            <include>commons-cli:commons-cli</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                            <include>commons-codec:commons-codec</include>
-                            <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                            <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                            <include>org.apache.ranger:ranger-plugins-cred</include>
-                            <include>org.apache.ranger:credentialbuilder</include>
-                            <include>org.codehaus.woodstox:stax2-api</include>
-                            <include>com.fasterxml.woodstox:woodstox-core</include>
-                            <include>org.apache.htrace:htrace-core4</include>
-                            <include>com.sun.jersey:jersey-bundle</include>
-                            <include>com.sun.jersey:jersey-json</include>
-                            <include>org.codehaus.jackson:jackson-core-asl</include>
-                            <include>org.codehaus.jackson:jackson-jaxrs</include>
-                            <include>org.codehaus.jackson:jackson-mapper-asl</include>
-                            <include>org.codehaus.jackson:jackson-xc</include>
-                            <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
-                            <include>net.java.dev.jna:jna</include>
-                            <include>net.java.dev.jna:jna-platform</include>
-                            <include>com.kstruct:gethostname4j</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-                <outputDirectory>/lib/ranger-presto-plugin-impl</outputDirectory>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-plugins-audit</include>
-                <include>org.apache.ranger:ranger-plugins-cred</include>
-                <include>org.apache.ranger:ranger-plugins-common</include>
-                <include>org.apache.ranger:ranger-presto-plugin</include>
-            </includes>
-        </moduleSet>
-        <moduleSet>
-            <binaries>
-                <includeDependencies>true</includeDependencies>
-                <dependencySets>
-                    <dependencySet>
-                        <outputDirectory>/install/lib</outputDirectory>
-                        <unpack>false</unpack>
-                        <includes>
-                            <include>commons-cli:commons-cli</include>
-                            <include>commons-collections:commons-collections</include>
-                            <include>com.google.guava:guava:jar:${presto.guava.version}</include>
-                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                            <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                            <include>commons-lang:commons-lang</include>
-                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                            <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                            <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                            <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                            <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                            <include>org.codehaus.woodstox:stax2-api</include>
-                            <include>com.fasterxml.woodstox:woodstox-core</include>
-                            <include>org.apache.htrace:htrace-core4</include>
-                        </includes>
-                    </dependencySet>
-                </dependencySets>
-                <outputDirectory>/install/lib</outputDirectory>
-                <unpack>false</unpack>
-            </binaries>
-            <includes>
-                <include>org.apache.ranger:ranger-plugins-installer</include>
-                <include>org.apache.ranger:credentialbuilder</include>
-            </includes>
-        </moduleSet>
-    </moduleSets>
-    <fileSets>
-        <!-- conf.templates for enable -->
-        <fileSet>
-            <outputDirectory>/install/conf.templates/enable</outputDirectory>
-            <directory>plugin-presto/conf</directory>
-            <excludes>
-                <exclude>*.sh</exclude>
-            </excludes>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/disable</outputDirectory>
-            <directory>plugin-presto/disable-conf</directory>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/install/conf.templates/default</outputDirectory>
-            <directory>plugin-presto/template</directory>
-            <fileMode>700</fileMode>
-        </fileSet>
-        <!-- version file -->
-        <fileSet>
-            <outputDirectory>/</outputDirectory>
-            <directory>${project.build.outputDirectory}</directory>
-            <includes>
-                <include>version</include>
-            </includes>
-            <fileMode>444</fileMode>
-        </fileSet>
-    </fileSets>
-    <!-- enable/disable script for Plugin -->
-    <files>
-        <file>
-            <source>agents-common/scripts/enable-agent.sh</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>enable-presto-plugin.sh</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>agents-common/scripts/enable-agent.sh</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>disable-presto-plugin.sh</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>plugin-presto/scripts/install.properties</source>
-            <outputDirectory>/</outputDirectory>
-            <destName>install.properties</destName>
-            <fileMode>755</fileMode>
-        </file>
-        <file>
-            <source>security-admin/scripts/ranger_credential_helper.py</source>
-            <outputDirectory>/</outputDirectory>
-            <fileMode>755</fileMode>
-        </file>
-    </files>
-</assembly>
diff --git a/src/main/assembly/plugin-solr.xml b/src/main/assembly/plugin-solr.xml
deleted file mode 100644
index 2c35b00..0000000
--- a/src/main/assembly/plugin-solr.xml
+++ /dev/null
@@ -1,169 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-	license agreements. See the NOTICE file distributed with this work for additional 
-	information regarding copyright ownership. The ASF licenses this file to 
-	You under the Apache License, Version 2.0 (the "License"); you may not use 
-	this file except in compliance with the License. You may obtain a copy of 
-	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-	by applicable law or agreed to in writing, software distributed under the 
-	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-	OF ANY KIND, either express or implied. See the License for the specific 
-	language governing permissions and limitations under the License. -->
-<assembly>
-	<id>solr-plugin</id>
-	<formats>
-		<format>tar.gz</format>
-		<format>zip</format>
-	</formats>
-	<baseDirectory>${project.name}-${project.version}-solr-plugin
-	</baseDirectory>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<moduleSets>
-		<moduleSet>
-	     <binaries>
-	        <includeDependencies>false</includeDependencies>
-	        <unpack>false</unpack>
-		    <directoryMode>755</directoryMode>
-		    <fileMode>644</fileMode>
-	  	    <outputDirectory>/lib</outputDirectory>
-	     </binaries>
-	     <includes>
-		  <include>org.apache.ranger:ranger-solr-plugin-shim</include>
-		  <include>org.apache.ranger:ranger-plugin-classloader</include>
-	      </includes>
-	    </moduleSet>
-		<moduleSet>
-			<binaries>
-				<includeDependencies>false</includeDependencies>
-				<unpack>false</unpack>
-				<directoryMode>755</directoryMode>
-				<fileMode>644</fileMode>
-				<dependencySets>
-					<dependencySet>
-						<outputDirectory>/lib/ranger-solr-plugin-impl</outputDirectory>
-						<unpack>false</unpack>
-						<includes>
-							<include>com.google.code.gson:gson</include>
-							<include>org.eclipse.persistence:eclipselink</include>
-							<include>org.eclipse.persistence:javax.persistence</include>
-							<include>com.sun.jersey:jersey-bundle</include>
-							<include>com.google.guava:guava:jar:${google.guava.version}</include>
-							<include>org.codehaus.jackson:jackson-core-asl</include>
-							<include>org.codehaus.jackson:jackson-jaxrs</include>
-							<include>org.codehaus.jackson:jackson-mapper-asl</include>
-							<include>org.codehaus.jackson:jackson-xc</include>
-							<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-							<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-							<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-						</includes>
-					</dependencySet>
-					<dependencySet>
-						<outputDirectory>/install/lib</outputDirectory>
-						<unpack>false</unpack>
-						<directoryMode>755</directoryMode>
-						<fileMode>644</fileMode>
-						<includes>
-							<include>commons-cli:commons-cli</include>
-							<include>commons-collections:commons-collections</include>
-							<include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}
-							</include>
-							<include>commons-io:commons-io:jar:${commons.io.version}
-							</include>
-							<include>commons-lang:commons-lang:jar:${commons.lang.version}
-							</include>
-							<include>commons-logging:commons-logging</include>
-							<include>com.google.guava:guava:jar:${google.guava.version}</include>
-							<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-							<include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}
-							</include>
-							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}
-							</include>
-							<include>org.apache.ranger:ranger-plugins-cred
-							</include>
-							<include>org.apache.ranger:credentialbuilder</include>
-							<include>org.apache.ranger:ranger-solr-plugin
-							</include>
-                                                        <include>org.codehaus.woodstox:stax2-api</include>
-							<include>com.fasterxml.woodstox:woodstox-core</include>
-							<include>org.apache.htrace:htrace-core4</include>
-						</includes>
-					</dependencySet>
-				</dependencySets>
-				<outputDirectory>/lib/ranger-solr-plugin-impl</outputDirectory>
-			</binaries>
-			<includes>
-				<include>org.apache.ranger:ranger-plugins-audit
-				</include>
-				<include>org.apache.ranger:ranger-plugins-cred
-				</include>
-				<include>org.apache.ranger:ranger-plugins-common
-				</include>
-				<include>org.apache.ranger:ranger-solr-plugin
-				</include>
-			</includes>
-		</moduleSet>
-		<moduleSet>
-			<binaries>
-				<includeDependencies>false</includeDependencies>
-				<outputDirectory>/install/lib</outputDirectory>
-				<unpack>false</unpack>
-			</binaries>
-			<includes>
-				<include>org.apache.ranger:ranger-plugins-installer
-				</include>
-				<include>org.apache.ranger:credentialbuilder</include>
-			</includes>
-		</moduleSet>
-	</moduleSets>
-	<fileSets>
-		<!-- conf.templates for enable -->
-		<fileSet>
-			<outputDirectory>/install/conf.templates/enable</outputDirectory>
-			<directory>plugin-solr/conf</directory>
-			<excludes>
-				<exclude>*.sh</exclude>
-			</excludes>
-			<fileMode>700</fileMode>
-		</fileSet>
-		<fileSet>
-			<outputDirectory>/install/conf.templates/disable</outputDirectory>
-			<directory>plugin-solr/disable-conf</directory>
-			<fileMode>700</fileMode>
-		</fileSet>
-		<fileSet>
-			<outputDirectory>/install/conf.templates/default</outputDirectory>
-			<directory>plugin-solr/template</directory>
-			<fileMode>700</fileMode>
-		</fileSet>
-		<!-- version file -->
-		<fileSet>
-			<outputDirectory>/</outputDirectory>
-			<directory>${project.build.outputDirectory}</directory>
-			<includes>
-				<include>version</include>
-			</includes>
-			<fileMode>444</fileMode>
-		</fileSet>
-	</fileSets>
-	<!-- enable/disable script for Plugin -->
-	<files>
-		<file>
-			<source>agents-common/scripts/enable-agent.sh</source>
-			<outputDirectory>/</outputDirectory>
-			<destName>enable-solr-plugin.sh</destName>
-			<fileMode>755</fileMode>
-		</file>
-		<file>
-			<source>agents-common/scripts/enable-agent.sh</source>
-			<outputDirectory>/</outputDirectory>
-			<destName>disable-solr-plugin.sh</destName>
-			<fileMode>755</fileMode>
-		</file>
-		<file>
-			<source>plugin-solr/scripts/install.properties</source>
-			<outputDirectory>/</outputDirectory>
-			<destName>install.properties</destName>
-			<fileMode>755</fileMode>
-		</file>
-	</files>
-</assembly>
diff --git a/src/main/assembly/plugin-sqoop.xml b/src/main/assembly/plugin-sqoop.xml
deleted file mode 100644
index 890fc0c..0000000
--- a/src/main/assembly/plugin-sqoop.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-    <id>sqoop-plugin</id>
-    <formats>
-        <format>tar.gz</format>
-        <format>zip</format>
-    </formats>
-    <baseDirectory>${project.name}-${project.version}-sqoop-plugin</baseDirectory>
-    <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-    <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <outputDirectory>/lib</outputDirectory>
-    </binaries>
-    <includes>
-        <include>org.apache.ranger:ranger-sqoop-plugin-shim</include>
-        <include>org.apache.ranger:ranger-plugin-classloader</include>
-        </includes>
-    </moduleSet>
-
-    <moduleSet>
-    <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-sqoop-plugin-impl</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                    <include>org.noggit:noggit:jar:${noggit.version}</include>
-                    <include>org.apache.solr:solr-solrj</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-            </dependencySet>
-            <dependencySet>
-                <outputDirectory>/install/lib</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <includes>
-                    <include>commons-cli:commons-cli</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                    <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                    <include>org.apache.ranger:ranger-plugins-cred</include>
-                    <include>org.apache.ranger:credentialbuilder</include>
-                    <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-                </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-sqoop-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-        <include>org.apache.ranger:ranger-plugins-audit</include>
-        <include>org.apache.ranger:ranger-plugins-cred</include>
-        <include>org.apache.ranger:ranger-plugins-common</include>
-        <include>org.apache.ranger:ranger-sqoop-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-        <include>org.apache.ranger:ranger-plugins-installer</include>
-        <include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>plugin-sqoop/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>plugin-sqoop/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>plugin-sqoop/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
-  <files>
-    <file>
-        <source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-sqoop-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-sqoop-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>plugin-sqoop/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>security-admin/scripts/ranger_credential_helper.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/plugin-yarn.xml b/src/main/assembly/plugin-yarn.xml
deleted file mode 100644
index 545e787..0000000
--- a/src/main/assembly/plugin-yarn.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>yarn-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-yarn-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-     <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-yarn-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-      </includes>
-    </moduleSet>
-    
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>/lib/ranger-yarn-plugin-impl</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-		    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-		    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-            <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-		    <include>org.noggit:noggit:jar:${noggit.version}</include>
-		    <include>org.apache.solr:solr-solrj</include>
-		    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-		    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-            <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-            </dependencySet>
-            <dependencySet>
-                    <outputDirectory>/install/lib</outputDirectory>
-                    <unpack>false</unpack>
-            		<directoryMode>755</directoryMode>
-            		<fileMode>644</fileMode>
-                    <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                        <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                        <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-						<include>org.apache.ranger:ranger-plugins-cred</include>
-						<include>org.apache.ranger:credentialbuilder</include>
-                        <include>org.codehaus.woodstox:stax2-api</include>
-                        <include>com.fasterxml.woodstox:woodstox-core</include>
-                        <include>org.apache.htrace:htrace-core4</include>
-                    </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib/ranger-yarn-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-audit</include>
-		<include>org.apache.ranger:ranger-plugins-cred</include>
-		<include>org.apache.ranger:ranger-plugins-common</include>
-		<include>org.apache.ranger:ranger-yarn-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-		<include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>plugin-yarn/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>plugin-yarn/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>plugin-yarn/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
- <files>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-yarn-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-yarn-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>plugin-yarn/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>security-admin/scripts/ranger_credential_helper.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/ranger-tools.xml b/src/main/assembly/ranger-tools.xml
deleted file mode 100644
index d8b6cf7..0000000
--- a/src/main/assembly/ranger-tools.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>ranger-tools</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-ranger-tools</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-      <binaries>
-        <includeDependencies>true</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-            <outputDirectory>/lib</outputDirectory>
-              <includes>
-                <include>commons-cli:commons-cli</include>
-                <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                <include>commons-lang:commons-lang</include>
-                <include>com.google.code.gson:gson</include>
-                <include>log4j:log4j</include>
-                <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-                <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
-                <include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}</include>
-                <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
-                <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
-                <include>org.eclipse.persistence:eclipselink</include>
-                <include>org.eclipse.persistence:javax.persistence</include>
-                <include>commons-collections:commons-collections</include>
-                <include>com.sun.jersey:jersey-bundle</include>
-                <include>commons-io:commons-io</include>
-                <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                <include>org.noggit:noggit:jar:${noggit.version}</include>
-                <include>org.codehaus.jackson:jackson-core-asl</include>
-                <include>org.codehaus.jackson:jackson-jaxrs</include>
-                <include>org.codehaus.jackson:jackson-mapper-asl</include>
-                <include>org.codehaus.jackson:jackson-xc</include>
-                <include>org.apache.ranger:ranger-plugins-common</include>
-                <include>org.apache.ranger:ranger-plugins-audit</include>
-                <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-              </includes>
-              <unpack>false</unpack>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>/dist</outputDirectory>
-      </binaries>
-      <includes>
-        <include>org.apache.ranger:ranger-tools</include>
-      </includes>
-    </moduleSet>
-    <moduleSet>
-      <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-        <directoryMode>755</directoryMode>
-        <fileMode>644</fileMode>
-        <dependencySets>
-          <dependencySet>
-          <outputDirectory>/lib</outputDirectory>
-          <includes>
-            <include>org.apache.ranger:credentialbuilder</include>
-            <include>org.apache.ranger:ranger-util</include>
-          </includes>
-          <unpack>false</unpack>
-          </dependencySet>
-        </dependencySets>
-        <outputDirectory>/lib</outputDirectory>
-      </binaries>
-      <includes>
-        <include>org.apache.ranger:credentialbuilder</include>
-        <include>org.apache.ranger:ranger-util</include>
-      </includes>
-    </moduleSet>
-  </moduleSets>  
-  <fileSets>
-    <fileSet>
-      <directoryMode>755</directoryMode>
-      <fileMode>644</fileMode>
-      <outputDirectory>/conf</outputDirectory>
-      <directory>ranger-tools/conf</directory>
-    </fileSet>
-    <fileSet>
-      <directoryMode>755</directoryMode>
-      <fileMode>644</fileMode>
-      <outputDirectory>/testdata</outputDirectory>
-      <directory>ranger-tools/testdata</directory>
-    </fileSet>
-    <fileSet>
-      <directoryMode>755</directoryMode>
-      <outputDirectory>/</outputDirectory>
-      <directory>${project.build.directory}</directory>
-      <includes>
-        <include>version</include>
-      </includes>
-      <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <files>
-    <file>
-      <source>ranger-tools/scripts/ranger-perftester.sh</source>
-      <outputDirectory>/</outputDirectory>
-      <destName>ranger-perftester.sh</destName>
-      <fileMode>755</fileMode>
-    </file>
-    <file>
-      <source>ranger-tools/scripts/ranger-plugin-perftester.sh</source>
-      <outputDirectory>/</outputDirectory>
-      <destName>ranger-plugin-perftester.sh</destName>
-      <fileMode>755</fileMode>
-    </file>
-    <file>
-      <source>ranger-tools/scripts/README.txt</source>
-      <outputDirectory>/</outputDirectory>
-      <destName>README.txt</destName>
-      <fileMode>644</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/storm-agent.xml b/src/main/assembly/storm-agent.xml
deleted file mode 100644
index 9b19959..0000000
--- a/src/main/assembly/storm-agent.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>storm-plugin</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-storm-plugin</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  	    <outputDirectory>/lib</outputDirectory>
-     </binaries>
-     <includes>
-	  <include>org.apache.ranger:ranger-storm-plugin-shim</include>
-	  <include>org.apache.ranger:ranger-plugin-classloader</include>
-      </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>true</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-        <dependencySets>
-            <dependencySet>
-                <outputDirectory>lib/ranger-storm-plugin-impl</outputDirectory>
-                <unpack>false</unpack>
-                <includes>
-                    <include>commons-configuration:commons-configuration</include>
-                    <include>org.apache.hadoop:hadoop-common</include>
-                    <include>org.apache.hadoop:hadoop-common-plus</include>
-                    <include>com.google.code.gson:gson</include>
-                    <include>org.eclipse.persistence:eclipselink</include>
-                    <include>org.eclipse.persistence:javax.persistence</include>
-                    <include>commons-collections:commons-collections</include>
-                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
-                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
-                    <include>org.noggit:noggit:jar:${noggit.version}</include>
-                    <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
-                    <include>org.apache.hadoop:hadoop-hdfs</include>
-                    <include>org.apache.htrace:htrace-core:jar:${htrace-core.version}</include>
-                    <include>commons-cli:commons-cli:jar:${commons.cli.version}</include> 
-                    <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                    <include>org.codehaus.jackson:jackson-core-asl</include>
-                    <include>org.codehaus.jackson:jackson-jaxrs</include>
-                    <include>org.codehaus.jackson:jackson-mapper-asl</include>
-                    <include>org.apache.solr:solr-solrj</include>
-                    <include>commons-codec:commons-codec</include>
-                    <include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-                    <include>net.java.dev.jna:jna:jar:${jna.version}</include>
-                    <include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-                </includes>
-            </dependencySet>
-            <dependencySet>
-                    <outputDirectory>/install/lib</outputDirectory>
-                    <unpack>false</unpack>
-                    <directoryMode>755</directoryMode>
-                    <fileMode>644</fileMode>
-                    <includes>
-                        <include>commons-cli:commons-cli</include>
-                        <include>commons-collections:commons-collections</include>
-                        <include>commons-configuration:commons-configuration</include>
-                        <include>commons-io:commons-io:jar:${commons.io.version}</include>
-                        <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                        <include>commons-logging:commons-logging</include>
-                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
-                        <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
-                        <include>org.apache.hadoop:hadoop-common:jar</include>
-                        <include>org.apache.hadoop:hadoop-auth:jar</include>
-                        <include>org.apache.ranger:ranger-plugins-cred</include>
-                        <include>org.apache.ranger:credentialbuilder</include>
-                    </includes>
-            </dependencySet>
-            <dependencySet>
-                <outputDirectory>lib/</outputDirectory>
-                <unpack>false</unpack>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <includes>
-                    <include>com.sun.jersey:jersey-bundle:jar:${jersey-bundle.version}</include>
-                </includes>
-            </dependencySet>
-        </dependencySets>
-        <outputDirectory>lib/ranger-storm-plugin-impl</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-audit</include>
-		<include>org.apache.ranger:ranger-plugins-cred</include>
-		<include>org.apache.ranger:ranger-plugins-common</include>
-		<include>org.apache.ranger:ranger-storm-plugin</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/install/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-plugins-installer</include>
-		<include>org.apache.ranger:credentialbuilder</include>
-     </includes>
-    </moduleSet>
-   </moduleSets>
-   <fileSets>
-   <!-- conf.templates for enable -->
-    <fileSet>
-        <outputDirectory>/install/conf.templates/enable</outputDirectory>
-        <directory>storm-agent/conf</directory>
-        <excludes>
-            <exclude>*.sh</exclude>
-        </excludes>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/disable</outputDirectory>
-        <directory>storm-agent/disable-conf</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <fileSet>
-        <outputDirectory>/install/conf.templates/default</outputDirectory>
-        <directory>storm-agent/template</directory>
-        <fileMode>700</fileMode>
-    </fileSet>
-    <!-- version file -->
-    <fileSet>
-        <outputDirectory>/</outputDirectory>
-        <directory>${project.build.outputDirectory}</directory>
-        <includes>
-            <include>version</include>
-        </includes>
-        <fileMode>444</fileMode>
-    </fileSet>
-  </fileSets>
-  <!-- enable/disable script for Plugin -->
- <files>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>enable-storm-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>upgrade-storm-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>agents-common/scripts/upgrade-plugin.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>security-admin/scripts/ranger_credential_helper.py</source>
-        <outputDirectory>/</outputDirectory>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-		<source>agents-common/scripts/enable-agent.sh</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>disable-storm-plugin.sh</destName>
-        <fileMode>755</fileMode>
-    </file>
-    <file>
-        <source>storm-agent/scripts/install.properties</source>
-        <outputDirectory>/</outputDirectory>
-        <destName>install.properties</destName>
-        <fileMode>755</fileMode>
-    </file>
-  </files>
-</assembly>
diff --git a/src/main/assembly/tagsync.xml b/src/main/assembly/tagsync.xml
deleted file mode 100644
index d4885de..0000000
--- a/src/main/assembly/tagsync.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>tagsync</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-tagsync</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  		<dependencySets>
-   			<dependencySet>
-     			<outputDirectory>/lib</outputDirectory>
-				<includes>
-					<include>com.101tec:zkclient</include>
-					<include>com.google.code.gson:gson:jar:${gson.version}</include>
-					<include>com.google.guava:guava:jar:${google.guava.version}</include>
-					<include>com.sun.jersey:jersey-bundle:jar:${jersey-bundle.version}</include>
-					<include>com.sun.jersey.contribs:jersey-multipart:jar:${sun-jersey-bundle.version}</include>
-					<include>org.apache.atlas:atlas-notification:jar:${atlas.version}</include>
-					<include>org.apache.atlas:atlas-intg:jar:${atlas.version}</include>
-					<include>org.apache.atlas:atlas-client-v1:jar:${atlas.version}</include>
-					<include>org.apache.atlas:atlas-client-v2:jar:${atlas.version}</include>
-					<include>org.apache.atlas:atlas-client-common:jar:${atlas.version}</include>
-					<include>org.apache.atlas:atlas-common:jar:${atlas.version}</include>
-					<include>org.apache.hadoop:hadoop-auth</include>
-					<include>org.apache.hadoop:hadoop-common</include>
-					<include>org.apache.commons:commons-compress</include>
-					<include>org.apache.kafka:kafka_${scala.binary.version}:jar:${kafka.version}</include>
-					<include>org.apache.kafka:kafka-clients:jar:${kafka.version}</include>
-					<include>org.apache.ranger:credentialbuilder</include>
-					<include>org.apache.ranger:ranger-plugins-cred</include>
-					<include>org.apache.ranger:ranger-plugins-common</include>
-					<include>org.apache.ranger:ranger-util</include>
-					<include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
-					<include>com.fasterxml.jackson.core:jackson-annotations:jar:${atlas.jackson.version}</include>
-					<include>com.fasterxml.jackson.core:jackson-core:jar:${atlas.jackson.version}</include>
-					<include>com.fasterxml.jackson.core:jackson-databind:jar:${atlas.jackson.databind.version}</include>
-					<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:${atlas.jackson.version}</include>
-					<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:${atlas.jackson.version}</include>
-					<include>com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:${atlas.jackson.version}</include>
-					<include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
-					<include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
-					<include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.version}</include>
-					<include>org.codehaus.jettison:jettison:jar:${jettison.version}</include>
-					<include>org.scala-lang:scala-library:jar:${scala.version}</include>
-					<include>org.slf4j:slf4j-api</include>
-					<include>aopalliance:aopalliance:jar:${aopalliance.version}</include>
-					<include>commons-cli:commons-cli:jar:${commons.cli.version}</include>
-					<include>commons-codec:commons-codec:jar:${commons.codec.version}</include>
-					<include>commons-collections:commons-collections:jar:${commons.collections.version}</include>
-                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
-					<include>commons-io:commons-io:jar:${commons.io.version}</include>
-					<include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-					<include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-					<include>javax.inject:javax.inject:jar:${javax-inject.version}</include>
-					<include>joda-time:joda-time:jar:${joda-time.version}</include>
-					<include>log4j:log4j:jar:${log4j.version}</include>
-					<include>org.codehaus.woodstox:stax2-api</include>
-					<include>com.fasterxml.woodstox:woodstox-core</include>
-					<include>org.apache.htrace:htrace-core4</include>
-					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-				</includes>
-				<unpack>false</unpack>
-  			</dependencySet>
-  		</dependencySets>
-        <outputDirectory>/dist</outputDirectory>
-     </binaries>
-     <includes>
-		<include>org.apache.ranger:ranger-tagsync</include>
-     </includes>
-    </moduleSet>
-  </moduleSets>
-  <fileSets>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>644</fileMode>
-		<outputDirectory>/conf.dist</outputDirectory>
-		<directory>tagsync/conf.dist</directory>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>644</fileMode>
-		<outputDirectory>/conf.dist/etc/ranger/data</outputDirectory>
-		<directory>tagsync/src/main/resources/etc/ranger/data</directory>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-		<fileMode>544</fileMode>
-		<outputDirectory>/</outputDirectory>
-		<directory>tagsync/scripts</directory>
-		<excludes>
-			<exclude>ranger-tagsync.sh</exclude>
-		</excludes>
-	</fileSet>
-	<fileSet>
-		<directoryMode>755</directoryMode>
-		<fileMode>444</fileMode>
-		<outputDirectory>/templates</outputDirectory>
-		<directory>tagsync/conf/templates</directory>
-	</fileSet>
-        <fileSet>
-	    	<directoryMode>755</directoryMode>
-                <outputDirectory>/</outputDirectory>
-                <directory>${project.build.directory}</directory>
-                <includes>
-                        <include>version</include>
-                </includes>
-		<fileMode>444</fileMode>
-        </fileSet>
-  </fileSets>
-  <files>
-      <file>
-		<source>tagsync/scripts/ranger-tagsync.sh</source>
-		<outputDirectory>/</outputDirectory>
-		<destName>ranger-tagsync</destName>
-		<fileMode>755</fileMode>
-      </file>
-   </files>
-</assembly>
diff --git a/src/main/assembly/usersync.xml b/src/main/assembly/usersync.xml
deleted file mode 100644
index 7e81006..0000000
--- a/src/main/assembly/usersync.xml
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly>
-  <id>usersync</id>
-  <formats>
-     <format>tar.gz</format>
-	 <format>zip</format>
-  </formats>
-  <baseDirectory>${project.name}-${project.version}-usersync</baseDirectory>
-  <includeBaseDirectory>true</includeBaseDirectory>
-  <moduleSets>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <unpack>false</unpack>
-	    <directoryMode>755</directoryMode>
-	    <fileMode>644</fileMode>
-  		<dependencySets>
-   			<dependencySet>
-     			<outputDirectory>/lib</outputDirectory>
-				<includes>
-					<include>com.google.code.gson:gson</include>
-					<include>com.sun.jersey:jersey-bundle</include>
-					<include>log4j:log4j</include>
-					<include>commons-cli:commons-cli</include>
-					<include>commons-collections:commons-collections</include>
-					<include>org.apache.commons:commons-configuration2</include>
-					<include>commons-lang:commons-lang</include>
-					<include>commons-logging:commons-logging</include>
-					<include>com.google.guava:guava</include>
-					<include>org.apache.hadoop:hadoop-auth</include>
-					<include>org.slf4j:slf4j-api</include>
-					<include>org.apache.hadoop:hadoop-common</include>
-					<include>org.apache.commons:commons-csv</include>
-					<include>org.apache.ranger:credentialbuilder</include>
-					<include>org.apache.ranger:ranger-util</include>
-					<include>commons-io:commons-io:jar:${commons.io.version}</include>
-					<include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
-					<include>commons-codec:commons-codec</include>
-					<include>org.apache.ranger:ranger-plugins-common</include>
-					<include>org.codehaus.woodstox:stax2-api</include>
-					<include>com.fasterxml.woodstox:woodstox-core</include>
-					<include>org.apache.htrace:htrace-core4</include>
-					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
-					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
-					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
-					<include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
-					<include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.version}</include>
-				</includes>
-				<unpack>false</unpack>
-  			</dependencySet>
-  		</dependencySets>
-        <outputDirectory>/dist</outputDirectory>
-     </binaries>
-     <includes>
-	<include>org.apache.ranger:unixauthservice</include>
-	<include>org.apache.ranger:unixusersync</include>
-     </includes>
-    </moduleSet>
-    <moduleSet>
-     <binaries>
-        <includeDependencies>false</includeDependencies>
-        <outputDirectory>/installer/lib</outputDirectory>
-        <unpack>false</unpack>
-     </binaries>
-     <includes>
-	<include>org.apache.ranger:ranger-plugins-installer</include>
-     </includes>
-    </moduleSet>
-  </moduleSets> 	
-  <fileSets>
-      <fileSet>
-          <outputDirectory>/ldaptool/lib</outputDirectory>
-          <directory>${project.basedir}/ugsync/ldapconfigchecktool/ldapconfigcheck/target/generated-tool-dependencies/lib</directory>
-          <fileMode>644</fileMode>
-      </fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>644</fileMode>
-		<outputDirectory>/conf.dist</outputDirectory>
-		<directory>unixauthservice/conf.dist</directory>
-		<excludes>
-			<exclude>jaas.conf</exclude>
-		</excludes>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-		<fileMode>544</fileMode>
-		<outputDirectory>/</outputDirectory>
-		<directory>unixauthservice/scripts</directory>
-		<excludes>
-			<exclude>*.properties</exclude>
-			<exclude>initd</exclude>
-		</excludes>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-		<fileMode>700</fileMode>
-		<outputDirectory>/</outputDirectory>
-		<directory>unixauthservice/scripts</directory>
-		<includes>
-			<include>*.properties</include>
-		</includes>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>644</fileMode>
-		<outputDirectory>/conf.dist/cert</outputDirectory>
-		<directory>unixauthservice/cert</directory>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>750</fileMode>
-		<outputDirectory>/native</outputDirectory>
-		<directory>unixauthnative/target</directory>
-		               <includes>
-		                        <include>credValidator.*</include>
-		               </includes>
-	</fileSet>
-	<fileSet>
-	    	<directoryMode>755</directoryMode>
-	    	<fileMode>750</fileMode>
-		<outputDirectory>/native</outputDirectory>
-		<directory>unixauthpam/target</directory>
-		               <includes>
-		                        <include>pamCredValidator.*</include>
-		               </includes>
-	</fileSet>
-        <fileSet>
-	    	<directoryMode>755</directoryMode>
-                <outputDirectory>/</outputDirectory>
-                <directory>${project.build.directory}</directory>
-                <includes>
-                        <include>version</include>
-                </includes>
-		<fileMode>444</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>/</outputDirectory>
-            <directory>security-admin/scripts</directory>
-            <includes>
-                <include>ranger_credential_helper.py</include>
-            </includes>
-            <fileMode>544</fileMode>
-        </fileSet>
-        <fileSet>
-                <directoryMode>755</directoryMode>
-                <fileMode>755</fileMode>
-                <outputDirectory>/usersync_tool</outputDirectory>
-                <directory>ugsync/filesourceusersynctool</directory>
-            <includes>
-                <include>run-filesource-usersync.sh</include>
-            </includes>
-        </fileSet>
-	<fileSet>
-                <directoryMode>755</directoryMode>
-                <fileMode>755</fileMode>
-                <outputDirectory>/ldaptool</outputDirectory>
-                <directory>ugsync/ldapconfigchecktool/ldapconfigcheck/scripts</directory>
-            <includes>
-                <include>run.sh</include>
-            </includes>
-        </fileSet>
-	<fileSet>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <outputDirectory>/ldaptool/lib</outputDirectory>
-                <directory>ugsync/ldapconfigchecktool/ldapconfigcheck/target</directory>
-            <includes>
-                <include>ldapconfigcheck-${project.version}.jar</include>
-            </includes>
-	</fileSet>
-	<fileSet>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <outputDirectory>/ldaptool/conf</outputDirectory>
-                <directory>ugsync/ldapconfigchecktool/ldapconfigcheck/conf</directory>
-            <includes>
-                <include>input.properties</include>
-            </includes>
-        </fileSet>
-	<fileSet>
-                <directoryMode>755</directoryMode>
-                <fileMode>644</fileMode>
-                <outputDirectory>/ldaptool/output</outputDirectory>
-                <directory>ugsync/ldapconfigchecktool/ldapconfigcheck/conf</directory>
-		<excludes>
-                <exclude>input.properties</exclude>
-            </excludes>
-        </fileSet>
-  </fileSets>
-  <files>
-      <file>
-		<source>unixauthservice/scripts/initd</source>
-		<outputDirectory>/</outputDirectory>
-		<destName>ranger-usersync</destName>
-		<fileMode>755</fileMode>
-      </file>
-   </files>
-</assembly>
diff --git a/ugsync/ldapconfigchecktool/ldapconfigcheck/pom.xml b/ugsync/ldapconfigchecktool/ldapconfigcheck/pom.xml
index 090a496..b0cff6a 100644
--- a/ugsync/ldapconfigchecktool/ldapconfigcheck/pom.xml
+++ b/ugsync/ldapconfigchecktool/ldapconfigcheck/pom.xml
@@ -101,67 +101,5 @@
     </dependencies>
     <build>
         <finalName>ldapconfigcheck-${project.version}</finalName>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>3.0.2</version>
-                <executions>
-                    <execution>
-                        <id>copy</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>copy</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <artifactItems>
-                        <artifactItem>
-                            <groupId>commons-cli</groupId>
-                            <artifactId>commons-cli</artifactId>
-                            <version>${commons.cli.version}</version>
-                            <type>jar</type>
-                            <overWrite>false</overWrite>
-                            <outputDirectory>
-                                ${project.build.directory}/generated-tool-dependencies/lib
-                            </outputDirectory>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>org.apache.commons</groupId>
-                            <artifactId>commons-configuration2</artifactId>
-                            <version>${commons.configuration.version}</version>
-                            <type>jar</type>
-                            <overWrite>false</overWrite>
-                            <outputDirectory>
-                                ${project.build.directory}/generated-tool-dependencies/lib
-                            </outputDirectory>
-                        </artifactItem>
-                        <artifactItem>
-                            <groupId>commons-lang</groupId>
-                            <artifactId>commons-lang</artifactId>
-                            <version>${commons.lang.version}</version>
-                            <type>jar</type>
-                            <overWrite>false</overWrite>
-                            <outputDirectory>
-                                ${project.build.directory}/generated-tool-dependencies/lib
-                            </outputDirectory>
-                        </artifactItem>
-			<artifactItem>
-                            <groupId>commons-logging</groupId>
-                            <artifactId>commons-logging</artifactId>
-                            <version>${commons.logging.version}</version>
-                            <type>jar</type>
-                            <overWrite>false</overWrite>
-                            <outputDirectory>
-                                ${project.build.directory}/generated-tool-dependencies/lib
-                            </outputDirectory>
-                        </artifactItem>
-                    </artifactItems>
-                    <overWriteReleases>false</overWriteReleases>
-                    <overWriteSnapshots>true</overWriteSnapshots>
-                </configuration>
-            </plugin>
-        </plugins>
     </build>
 </project>
