http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/framework-bundle/framework/web/nifi-jetty/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/framework-bundle/framework/web/nifi-jetty/pom.xml 
b/nar-bundles/framework-bundle/framework/web/nifi-jetty/pom.xml
index bde025b..3cdeb07 100644
--- a/nar-bundles/framework-bundle/framework/web/nifi-jetty/pom.xml
+++ b/nar-bundles/framework-bundle/framework/web/nifi-jetty/pom.xml
@@ -28,86 +28,107 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-api</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-runtime</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-nar</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-security</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-server</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-servlet</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-webapp</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-servlets</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.eclipse.jetty</groupId>
             <artifactId>jetty-jsp</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sun.jersey</groupId>
             <artifactId>jersey-client</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sun.jersey.contribs</groupId>
             <artifactId>jersey-spring</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sun.jersey.contribs</groupId>
             <artifactId>jersey-multipart</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sun.jersey</groupId>
             <artifactId>jersey-server</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.sun.jersey</groupId>
             <artifactId>jersey-json</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.aspectj</groupId>
             <artifactId>aspectjweaver</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>cglib</groupId> 
             <artifactId>cglib-nodep</artifactId> 
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>client-dto</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>custom-ui-utilities</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>web-security</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-web-utils</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>web-optimistic-locking</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
@@ -132,6 +153,7 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>framework-cluster</artifactId>
+            <scope>compile</scope>
         </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/framework-bundle/framework/web/nifi-web-api/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/framework-bundle/framework/web/nifi-web-api/pom.xml 
b/nar-bundles/framework-bundle/framework/web/nifi-web-api/pom.xml
index f4ec6b1..e7cb0e7 100644
--- a/nar-bundles/framework-bundle/framework/web/nifi-web-api/pom.xml
+++ b/nar-bundles/framework-bundle/framework/web/nifi-web-api/pom.xml
@@ -115,6 +115,7 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>client-dto</artifactId>
+            <version>${project.version}</version>
             <classifier>sources</classifier>
             <scope>provided</scope>
             <optional>true</optional>
@@ -131,13 +132,15 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>framework-cluster-web</artifactId>
-            <version>${project.version}</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-api</artifactId>
-            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-nar</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
@@ -295,7 +298,6 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>volatile-provenance-repository</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
     </dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/framework-bundle/framework/web/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/framework-bundle/framework/web/pom.xml 
b/nar-bundles/framework-bundle/framework/web/pom.xml
index 8ef5780..12fda97 100644
--- a/nar-bundles/framework-bundle/framework/web/pom.xml
+++ b/nar-bundles/framework-bundle/framework/web/pom.xml
@@ -42,17 +42,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>client-dto</artifactId>
-                <version>${project.version}</version>
-                <classifier>sources</classifier>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>custom-ui-utilities</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
                 <artifactId>web-security</artifactId>
                 <version>${project.version}</version>
             </dependency>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/framework-bundle/nar/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/framework-bundle/nar/pom.xml 
b/nar-bundles/framework-bundle/nar/pom.xml
index d53c9e2..5d28c6d 100644
--- a/nar-bundles/framework-bundle/nar/pom.xml
+++ b/nar-bundles/framework-bundle/nar/pom.xml
@@ -62,52 +62,5 @@
             <scope>provided</scope>
         </dependency>
                         
-        <!-- mark jetty deps as provided since they are included in the parent 
nar -->
-        <!--<dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-server</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlet</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-webapp</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlets</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-jsp</artifactId>
-            <scope>provided</scope>
-            <type>pom</type>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp</groupId>
-            <artifactId>javax.servlet.jsp-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet.jsp.jstl</groupId>
-            <artifactId>javax.servlet.jsp.jstl-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>javax.servlet-api</artifactId>
-            <scope>provided</scope>
-        </dependency>-->
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/framework-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/framework-bundle/pom.xml 
b/nar-bundles/framework-bundle/pom.xml
index cf5b6b6..daa5256 100644
--- a/nar-bundles/framework-bundle/pom.xml
+++ b/nar-bundles/framework-bundle/pom.xml
@@ -17,7 +17,7 @@
 
     <parent>
         <groupId>org.apache.nifi</groupId>
-        <artifactId>nar-container-common</artifactId>
+        <artifactId>nar-bundle-parent</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 
@@ -31,14 +31,7 @@
         <module>framework</module>
         <module>nar</module>
     </modules>
-    <properties>
-        <nifi.api.version>0.0.1-SNAPSHOT</nifi.api.version>
-        <h2.version>1.3.176</h2.version>
-        <jasypt.version>1.9.2</jasypt.version>
-        <jersey.version>1.18.2</jersey.version>
-        <spring.version>4.1.2.RELEASE</spring.version>
-        <spring.security.version>3.2.5.RELEASE</spring.security.version>
-    </properties>
+
     <dependencyManagement>
         <dependencies>
             <dependency>
@@ -48,13 +41,13 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>remote-communications-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
+                <artifactId>framework-cluster-web</artifactId>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
                 <artifactId>file-authorization-provider</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
@@ -68,11 +61,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-nar</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
                 <artifactId>nifi-runtime</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -88,16 +76,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-properties</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>data-provenance-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
                 <artifactId>core-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -131,352 +109,6 @@
                 <artifactId>web-optimistic-locking</artifactId>
                 <version>${project.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-api</artifactId>
-                <version>${nifi.api.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-expression-language</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-core-flowfile-attributes</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-security-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.bouncycastle</groupId>
-                <artifactId>bcprov-jdk16</artifactId>
-                <version>1.46</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.guava</groupId>
-                <artifactId>guava</artifactId>
-                <version>18.0</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-file-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-stream-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-web-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-socket-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-logging-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-mock</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>com.h2database</groupId>
-                <artifactId>h2</artifactId>
-                <version>${h2.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.jasypt</groupId>
-                <artifactId>jasypt</artifactId>
-                <version>${jasypt.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-                <version>${jersey.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-                <version>${jersey.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-                <version>${jersey.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>javax.mail</groupId>
-                <artifactId>mail</artifactId>
-                <version>1.4.7</version>
-            </dependency>
-            <dependency>
-                <groupId>stax</groupId>
-                <artifactId>stax-api</artifactId>
-                <version>1.0.1</version>
-            </dependency>
-            <dependency>
-                <groupId>org.quartz-scheduler</groupId>
-                <artifactId>quartz</artifactId>
-                <version>2.2.1</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey.contribs</groupId>
-                <artifactId>jersey-spring</artifactId>
-                <version>${jersey.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-web</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-aop</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-context</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-beans</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey.contribs</groupId>
-                <artifactId>jersey-multipart</artifactId>
-                <version>${jersey.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-beans</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-context</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-context-support</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-expression</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-tx</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-core</artifactId>
-                <version>${spring.version}</version>
-                <exclusions>
-                    <!-- <artifactId>jcl-over-slf4j</artifactId> is used in 
dependencies 
-                    section -->
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-web</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-aop</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-jdbc</artifactId>
-                <version>${spring.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework.security</groupId>
-                <artifactId>spring-security-core</artifactId>
-                <version>${spring.security.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-web</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-expression</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-aop</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-context</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-beans</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework.security</groupId>
-                <artifactId>spring-security-web</artifactId>
-                <version>${spring.security.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-tx</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-jdbc</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-expression</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-web</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-aop</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-context</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-beans</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework.security</groupId>
-                <artifactId>spring-security-acl</artifactId>
-                <version>${spring.security.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-tx</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-jdbc</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-aop</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-context</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework.security</groupId>
-                <artifactId>spring-security-config</artifactId>
-                <version>${spring.security.version}</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-aop</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-context</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-beans</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.aspectj</groupId>
-                <artifactId>aspectjweaver</artifactId>
-                <version>1.8.4</version>
-            </dependency>
-            <dependency>
-                <groupId>cglib</groupId>
-                <artifactId>cglib-nodep</artifactId>
-                <version>3.1</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-lang3</artifactId>
-                <version>3.3.2</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>2.4</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-collections4</artifactId>
-                <version>4.0</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-net</groupId>
-                <artifactId>commons-net</artifactId>
-                <version>3.3</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-pool2</artifactId>
-                <version>2.2</version>
-            </dependency>
         </dependencies>
     </dependencyManagement>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/hadoop-bundle/hdfs-processors/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/hadoop-bundle/hdfs-processors/pom.xml 
b/nar-bundles/hadoop-bundle/hdfs-processors/pom.xml
index 369efe7..9a4bf2b 100644
--- a/nar-bundles/hadoop-bundle/hdfs-processors/pom.xml
+++ b/nar-bundles/hadoop-bundle/hdfs-processors/pom.xml
@@ -46,12 +46,6 @@
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-stream-utils</artifactId>
         </dependency>
-
-        <!--        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-core</artifactId>
-        </dependency>-->
-
         <dependency> 
             <groupId>org.apache.hadoop</groupId> 
             <artifactId>hadoop-common</artifactId> 
@@ -62,13 +56,11 @@
             <artifactId>hadoop-hdfs</artifactId> 
             <scope>provided</scope> 
         </dependency>
-
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-mock</artifactId>
             <scope>test</scope>
         </dependency>
-
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/hadoop-bundle/nar/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/hadoop-bundle/nar/pom.xml 
b/nar-bundles/hadoop-bundle/nar/pom.xml
index 481de92..426ca86 100644
--- a/nar-bundles/hadoop-bundle/nar/pom.xml
+++ b/nar-bundles/hadoop-bundle/nar/pom.xml
@@ -22,6 +22,7 @@
     </parent>
 
     <artifactId>hadoop-nar</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
     <packaging>nar</packaging>
 
     <name>Hadoop NAR</name>
@@ -35,7 +36,6 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>hdfs-processors</artifactId>
-            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/hadoop-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/hadoop-bundle/pom.xml 
b/nar-bundles/hadoop-bundle/pom.xml
index caf23de..1a6a160 100644
--- a/nar-bundles/hadoop-bundle/pom.xml
+++ b/nar-bundles/hadoop-bundle/pom.xml
@@ -1,23 +1,23 @@
 <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";>
-<!--
-  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.
--->
+    <!--
+      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.
+    -->
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.apache.nifi</groupId>
-        <artifactId>nar-container-common</artifactId>
+        <artifactId>nar-bundle-parent</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 
@@ -32,75 +32,15 @@
         <module>hdfs-processors</module>
         <module>nar</module>
     </modules>
-
-    <!-- When changing Hadoop version, be sure to include the proper 
dependencies both here and in child POM's -->
-    <properties>
-        <hadoop.version>2.5.2</hadoop.version>
-    </properties>
-
+    
     <dependencyManagement>
         <dependencies>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-core-flowfile-attributes</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-processor-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-stream-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-
-<!--            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-core</artifactId>
-                <version>${hadoop.version}</version>
-                <scope>provided</scope>
-            </dependency>-->
-
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-common</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-hdfs</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-mock</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>flowfile-packager</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>hadoop-libraries-nar</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-                <type>nar</type>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>2.4</version>
+                <artifactId>hdfs-processors</artifactId>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
+
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/hadoop-libraries-bundle/nar/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/hadoop-libraries-bundle/nar/pom.xml 
b/nar-bundles/hadoop-libraries-bundle/nar/pom.xml
index feb4eac..3e54051 100644
--- a/nar-bundles/hadoop-libraries-bundle/nar/pom.xml
+++ b/nar-bundles/hadoop-libraries-bundle/nar/pom.xml
@@ -33,13 +33,6 @@
             <artifactId>standard-services-api-nar</artifactId>
             <type>nar</type>
         </dependency>
-
-<!--        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-core</artifactId>
-        </dependency>-->
-
-        
         <dependency>
             <groupId>org.apache.hadoop</groupId>
             <artifactId>hadoop-common</artifactId>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/hadoop-libraries-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/hadoop-libraries-bundle/pom.xml 
b/nar-bundles/hadoop-libraries-bundle/pom.xml
index bf81346..15055d8 100644
--- a/nar-bundles/hadoop-libraries-bundle/pom.xml
+++ b/nar-bundles/hadoop-libraries-bundle/pom.xml
@@ -17,7 +17,7 @@
 
     <parent>
         <groupId>org.apache.nifi</groupId>
-        <artifactId>standard-services-api-bundle</artifactId>
+        <artifactId>nar-bundle-parent</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 
@@ -29,32 +29,8 @@
     <name>Hadoop Libraries Bundle</name>
     <description>A bundle which provides the Hadoop libraries</description>
 
-    
-
     <modules>
         <module>nar</module>
     </modules>
 
-    <!-- When changing Hadoop version, be sure to include the proper 
dependencies both here and in child POM's -->
-    <dependencyManagement>
-        <dependencies>
-            <!--            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-core</artifactId>
-                <version>${project.version}</version>
-            </dependency>-->
-
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-common</artifactId>
-                <version>2.5.2</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-hdfs</artifactId>
-                <version>2.5.2</version>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/jetty-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/jetty-bundle/pom.xml b/nar-bundles/jetty-bundle/pom.xml
index a4fa57a..6586f09 100644
--- a/nar-bundles/jetty-bundle/pom.xml
+++ b/nar-bundles/jetty-bundle/pom.xml
@@ -17,7 +17,7 @@
 
     <parent>
         <groupId>org.apache.nifi</groupId>
-        <artifactId>nar-container-common</artifactId>
+        <artifactId>nar-bundle-parent</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/monitor-threshold-bundle/nar/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/monitor-threshold-bundle/nar/pom.xml 
b/nar-bundles/monitor-threshold-bundle/nar/pom.xml
index 8323a05..480b5ee 100644
--- a/nar-bundles/monitor-threshold-bundle/nar/pom.xml
+++ b/nar-bundles/monitor-threshold-bundle/nar/pom.xml
@@ -21,6 +21,7 @@
     </parent>
     
     <artifactId>monitor-threshold-nar</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
     <name>MonitorThreshold-NAR</name>
     <packaging>nar</packaging>
     
@@ -28,13 +29,11 @@
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>monitor-threshold-processor</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>monitor-threshold-ui</artifactId>
             <type>war</type>
-            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/monitor-threshold-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/monitor-threshold-bundle/pom.xml 
b/nar-bundles/monitor-threshold-bundle/pom.xml
index 9914b35..6cb3af2 100644
--- a/nar-bundles/monitor-threshold-bundle/pom.xml
+++ b/nar-bundles/monitor-threshold-bundle/pom.xml
@@ -16,7 +16,7 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.nifi</groupId>
-        <artifactId>nar-container-common</artifactId>
+        <artifactId>nar-bundle-parent</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 
@@ -35,76 +35,16 @@
 
     <dependencyManagement>
         <dependencies>
-            <!-- Common  Dependencies -->
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-file-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
+                <artifactId>monitor-threshold-processor</artifactId>
+                <version>${project.version}</version>
             </dependency>
-            <!-- Processor Dependencies -->
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-stream-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-processor-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            
-            <!-- UI Dependencies -->
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-                <version>1.18.2</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-                <version>1.18.2</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-                <version>1.18.2</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-                <version>1.18.2</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-servlet</artifactId>
-                <version>1.18.2</version>
-            </dependency>
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.11</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-lang3</artifactId>
-                <version>3.3.2</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>custom-ui-utilities</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-mock</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-                <scope>test</scope>
+                <artifactId>monitor-threshold-ui</artifactId>
+                <type>war</type>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/nar-container-common/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/nar-container-common/pom.xml 
b/nar-bundles/nar-container-common/pom.xml
deleted file mode 100644
index a9fdf6a..0000000
--- a/nar-bundles/nar-container-common/pom.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<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/maven-v4_0_0.xsd";>
-<!--
-  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.
--->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>nifi-parent</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>nar-container-common</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <name>NiFi NAR Container Common</name>
-    <packaging>pom</packaging>
-    <description>NiFi: NAR Container Common - these are the libraries that NAR 
bundles can refer to as provided because the container must provide 
them.</description>
-
-    <properties>
-        <jetty.version>9.2.5.v20141112</jetty.version>
-    </properties>    
-       
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-api</artifactId>
-                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-runtime</artifactId>
-                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-nar</artifactId>
-                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-properties</artifactId>
-                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-                <version>${jetty.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-                <version>${jetty.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-webapp</artifactId>
-                <version>${jetty.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlets</artifactId>
-                <version>${jetty.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-jsp</artifactId>
-                <version>${jetty.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet.jsp</groupId>
-                <artifactId>javax.servlet.jsp-api</artifactId>
-                <version>2.3.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.el</groupId>
-                <artifactId>javax.el-api</artifactId>
-                <version>3.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet.jsp.jstl</groupId>
-                <artifactId>javax.servlet.jsp.jstl-api</artifactId>
-                <version>1.2.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>3.1.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty.toolchain</groupId>
-                <artifactId>jetty-jsp-jdt</artifactId>
-                <version>2.3.3</version>
-                <scope>provided</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/persistent-provenance-repository-bundle/nar/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/persistent-provenance-repository-bundle/nar/pom.xml 
b/nar-bundles/persistent-provenance-repository-bundle/nar/pom.xml
index dd67fe9..b58ecb8 100644
--- a/nar-bundles/persistent-provenance-repository-bundle/nar/pom.xml
+++ b/nar-bundles/persistent-provenance-repository-bundle/nar/pom.xml
@@ -1,36 +1,36 @@
 <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";>
-<!--
-  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.
--->
-       <modelVersion>4.0.0</modelVersion>
+    <!--
+      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.
+    -->
+    <modelVersion>4.0.0</modelVersion>
 
-       <parent>
-               <groupId>org.apache.nifi</groupId>
-               <artifactId>persistent-provenance-repository-bundle</artifactId>
-               <version>0.0.1-SNAPSHOT</version>
-       </parent>
+    <parent>
+        <groupId>org.apache.nifi</groupId>
+        <artifactId>persistent-provenance-repository-bundle</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
 
-       <artifactId>persistent-provenance-repository-nar</artifactId>
-       <packaging>nar</packaging>
+    <artifactId>persistent-provenance-repository-nar</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>nar</packaging>
 
-       <name>Persistent Provenance Repository Nar</name>
+    <name>Persistent Provenance Repository Nar</name>
 
-       <dependencies>
-               <dependency>
-                       <groupId>org.apache.nifi</groupId>
-                       
<artifactId>persistent-provenance-repository</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-       </dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>persistent-provenance-repository</artifactId>
+        </dependency>
+    </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/persistent-provenance-repository-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/persistent-provenance-repository-bundle/pom.xml 
b/nar-bundles/persistent-provenance-repository-bundle/pom.xml
index c0c9f56..7dc3f34 100644
--- a/nar-bundles/persistent-provenance-repository-bundle/pom.xml
+++ b/nar-bundles/persistent-provenance-repository-bundle/pom.xml
@@ -17,7 +17,7 @@
 
     <parent>
         <groupId>org.apache.nifi</groupId>
-        <artifactId>nar-container-common</artifactId>
+        <artifactId>nar-bundle-parent</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
 
@@ -30,52 +30,12 @@
         <module>persistent-provenance-repository</module>
         <module>nar</module>
     </modules>
-       
-    <properties>
-        <lucene.version>4.10.2</lucene.version>
-    </properties>
-
     <dependencyManagement>
         <dependencies>
             <dependency>
                 <groupId>org.apache.nifi</groupId>
-                <artifactId>data-provenance-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-stream-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-properties</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-core-flowfile-attributes</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.lucene</groupId>
-                <artifactId>lucene-core</artifactId>
-                <version>${lucene.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.lucene</groupId>
-                <artifactId>lucene-analyzers-common</artifactId>
-                <version>${lucene.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.lucene</groupId>
-                <artifactId>lucene-queryparser</artifactId>
-                <version>${lucene.version}</version>
+                <artifactId>persistent-provenance-repository</artifactId>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/pom.xml b/nar-bundles/pom.xml
new file mode 100644
index 0000000..9daf0ba
--- /dev/null
+++ b/nar-bundles/pom.xml
@@ -0,0 +1,120 @@
+<?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/maven-v4_0_0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.nifi</groupId>
+        <artifactId>nifi-parent</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.nifi</groupId>
+    <artifactId>nar-bundle-parent</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>NiFi :: Nar Bundles Parent</name>
+
+    <modules>
+        <module>framework-bundle</module>
+        <module>hadoop-bundle</module>
+        <module>hadoop-libraries-bundle</module>
+        <module>jetty-bundle</module>
+        <module>monitor-threshold-bundle</module>
+        <module>persistent-provenance-repository-bundle</module>
+        <module>standard-bundle</module>
+        <module>standard-services</module>
+        <module>update-attribute-bundle</module>
+        <module>volatile-provenance-repository-bundle</module>
+    </modules>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>load-distribution-service</artifactId>
+                <version>${project.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>distributed-cache-client-service</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>distributed-cache-client-service-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>ssl-context-service-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>load-distribution-service-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>distributed-cache-protocol</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>distributed-cache-server</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>ssl-context-service</artifactId>
+                <version>${project.version}</version>
+            </dependency>                      
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>volatile-provenance-repository</artifactId>
+                <version>${project.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <!-- The following dependencies are marked provided because they 
must be provided by the container.  Nars can assume they are there-->
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>nifi-api</artifactId>
+                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>nifi-runtime</artifactId>
+                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>nifi-nar</artifactId>
+                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.nifi</groupId>
+                <artifactId>nifi-properties</artifactId>
+                <version>[0.0.1-SNAPSHOT,1.0.0-SNAPSHOT)</version>
+                <scope>provided</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/ssl-context-bundle/nar/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/ssl-context-bundle/nar/pom.xml 
b/nar-bundles/ssl-context-bundle/nar/pom.xml
deleted file mode 100644
index ac7a145..0000000
--- a/nar-bundles/ssl-context-bundle/nar/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<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";>
-    <!--
-      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.
-    -->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>ssl-context-bundle</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
-    </parent>
-       
-    <artifactId>ssl-context-service-nar</artifactId>
-    <name>SSL Context Services Nar</name>
-    <packaging>nar</packaging>
-       
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>standard-services-api-nar</artifactId>
-            <type>nar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>ssl-context-service</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/ssl-context-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/ssl-context-bundle/pom.xml 
b/nar-bundles/ssl-context-bundle/pom.xml
deleted file mode 100644
index 1fa2a74..0000000
--- a/nar-bundles/ssl-context-bundle/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<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";>
-    <!--
-      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.
-    -->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>standard-services-api-bundle</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>ssl-context-bundle</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <name>SSL Context Bundle</name>
-
-    <modules>
-        <module>ssl-context-service</module>
-        <module>nar</module>
-    </modules>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-mock</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.nifi</groupId>
-                <artifactId>nifi-processor-utils</artifactId>
-                <version>0.0.1-SNAPSHOT</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/ssl-context-bundle/ssl-context-service/pom.xml
----------------------------------------------------------------------
diff --git a/nar-bundles/ssl-context-bundle/ssl-context-service/pom.xml 
b/nar-bundles/ssl-context-bundle/ssl-context-service/pom.xml
deleted file mode 100644
index f667574..0000000
--- a/nar-bundles/ssl-context-bundle/ssl-context-service/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<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";>
-    <!--
-      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.
-    -->
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>ssl-context-bundle</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>ssl-context-service</artifactId>
-    <packaging>jar</packaging>
-
-    <name>SSL Context Controller Service</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>ssl-context-service-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-processor-utils</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-security-utils</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-mock</artifactId>
-        </dependency>
-    </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
----------------------------------------------------------------------
diff --git 
a/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
 
b/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
deleted file mode 100644
index d7aae16..0000000
--- 
a/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * 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.
- */
-package org.apache.nifi.ssl;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import javax.net.ssl.SSLContext;
-
-import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.components.ValidationContext;
-import org.apache.nifi.components.ValidationResult;
-import org.apache.nifi.components.Validator;
-import org.apache.nifi.controller.AbstractControllerService;
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.controller.annotation.OnConfigured;
-import org.apache.nifi.processor.exception.ProcessException;
-import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.reporting.InitializationException;
-import org.apache.nifi.security.util.CertificateUtils;
-import org.apache.nifi.security.util.KeystoreType;
-import org.apache.nifi.security.util.SslContextFactory;
-
-public class StandardSSLContextService extends AbstractControllerService 
implements SSLContextService {
-
-    public static final String STORE_TYPE_JKS = "JKS";
-    public static final String STORE_TYPE_PKCS12 = "PKCS12";
-
-    public static final PropertyDescriptor TRUSTSTORE = new 
PropertyDescriptor.Builder()
-            .name("Truststore Filename")
-            .description("The fully-qualified filename of the Truststore")
-            .defaultValue(null)
-            .addValidator(createFileExistsAndReadableValidator())
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor TRUSTSTORE_TYPE = new 
PropertyDescriptor.Builder()
-            .name("Truststore Type")
-            .description("The Type of the Truststore. Either JKS or PKCS12")
-            .allowableValues(STORE_TYPE_JKS, STORE_TYPE_PKCS12)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .defaultValue(STORE_TYPE_JKS)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor TRUSTSTORE_PASSWORD = new 
PropertyDescriptor.Builder()
-            .name("Truststore Password")
-            .description("The password for the Truststore")
-            .defaultValue(null)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(true)
-            .build();
-    public static final PropertyDescriptor KEYSTORE = new 
PropertyDescriptor.Builder()
-            .name("Keystore Filename")
-            .description("The fully-qualified filename of the Keystore")
-            .defaultValue(null)
-            .addValidator(createFileExistsAndReadableValidator())
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor KEYSTORE_TYPE = new 
PropertyDescriptor.Builder()
-            .name("Keystore Type")
-            .description("The Type of the Keystore")
-            .allowableValues(STORE_TYPE_JKS, STORE_TYPE_PKCS12)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .defaultValue(STORE_TYPE_JKS)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor KEYSTORE_PASSWORD = new 
PropertyDescriptor.Builder()
-            .name("Keystore Password")
-            .defaultValue(null)
-            .description("The password for the Keystore")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(true)
-            .build();
-
-    private static final List<PropertyDescriptor> properties;
-
-    static {
-        List<PropertyDescriptor> props = new ArrayList<>();
-        props.add(KEYSTORE);
-        props.add(KEYSTORE_PASSWORD);
-        props.add(KEYSTORE_TYPE);
-        props.add(TRUSTSTORE);
-        props.add(TRUSTSTORE_PASSWORD);
-        props.add(TRUSTSTORE_TYPE);
-        properties = Collections.unmodifiableList(props);
-    }
-    private ConfigurationContext configContext;
-
-    @OnConfigured
-    public void onConfigured(final ConfigurationContext context) throws 
InitializationException {
-        configContext = context;
-
-        final Collection<ValidationResult> results = new ArrayList<>();
-        results.addAll(validateStore(context.getProperties(), 
KeystoreValidationGroup.KEYSTORE));
-        results.addAll(validateStore(context.getProperties(), 
KeystoreValidationGroup.TRUSTSTORE));
-
-        if (!results.isEmpty()) {
-            final StringBuilder sb = new StringBuilder(this + " is not valid 
due to:");
-            for (final ValidationResult result : results) {
-                sb.append("\n").append(result.toString());
-            }
-            throw new InitializationException(sb.toString());
-        }
-
-        if (countNulls(context.getProperty(KEYSTORE).getValue(),
-                context.getProperty(KEYSTORE_PASSWORD).getValue(),
-                context.getProperty(KEYSTORE_TYPE).getValue(),
-                context.getProperty(TRUSTSTORE).getValue(),
-                context.getProperty(TRUSTSTORE_PASSWORD).getValue(),
-                context.getProperty(TRUSTSTORE_TYPE).getValue()) >= 4) {
-            throw new InitializationException(this + " does not have the 
KeyStore or the TrustStore populated");
-        }
-
-        // verify that the filename, password, and type match
-        createSSLContext(ClientAuth.REQUIRED);
-    }
-
-    private static Validator createFileExistsAndReadableValidator() {
-        return new Validator() {
-            // Not using the FILE_EXISTS_VALIDATOR because the default is to
-            // allow expression language
-            @Override
-            public ValidationResult validate(String subject, String input, 
ValidationContext context) {
-                final String substituted;
-                try {
-                    substituted = 
context.newPropertyValue(input).evaluateAttributeExpressions().getValue();
-                } catch (final Exception e) {
-                    return new ValidationResult.Builder()
-                            .subject(subject)
-                            .input(input)
-                            .valid(false)
-                            .explanation("Not a valid Expression Language 
value: " + e.getMessage())
-                            .build();
-                }
-
-                final File file = new File(substituted);
-                final boolean valid = file.exists() && file.canRead();
-                final String explanation = valid ? null : "File " + file + " 
does not exist or cannot be read";
-                return new ValidationResult.Builder()
-                        .subject(subject)
-                        .input(input)
-                        .valid(valid)
-                        .explanation(explanation)
-                        .build();
-            }
-        };
-    }
-
-    @Override
-    protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
-        return properties;
-    }
-
-    @Override
-    protected Collection<ValidationResult> customValidate(ValidationContext 
validationContext) {
-        final Collection<ValidationResult> results = new ArrayList<>();
-        results.addAll(validateStore(validationContext.getProperties(), 
KeystoreValidationGroup.KEYSTORE));
-        results.addAll(validateStore(validationContext.getProperties(), 
KeystoreValidationGroup.TRUSTSTORE));
-
-        if (countNulls(validationContext.getProperty(KEYSTORE).getValue(),
-                validationContext.getProperty(KEYSTORE_PASSWORD).getValue(),
-                validationContext.getProperty(KEYSTORE_TYPE).getValue(),
-                validationContext.getProperty(TRUSTSTORE).getValue(),
-                validationContext.getProperty(TRUSTSTORE_PASSWORD).getValue(),
-                validationContext.getProperty(TRUSTSTORE_TYPE).getValue())
-                >= 4) {
-            results.add(new ValidationResult.Builder()
-                    .subject(this.getClass().getSimpleName() + " : " + 
getIdentifier())
-                    .valid(false)
-                    .explanation("Does not have the KeyStore or the TrustStore 
populated")
-                    .build());
-        }
-        if (results.isEmpty()) {
-            // verify that the filename, password, and type match
-            try {
-                createSSLContext(ClientAuth.REQUIRED);
-            } catch (ProcessException e) {
-                results.add(new ValidationResult.Builder()
-                        .subject(getClass().getSimpleName() + " : " + 
getIdentifier())
-                        .valid(false)
-                        .explanation(e.getMessage())
-                        .build());
-            }
-        }
-        return results;
-    }
-
-    @Override
-    public SSLContext createSSLContext(final ClientAuth clientAuth) throws 
ProcessException {
-        try {
-            final String keystoreFile = 
configContext.getProperty(KEYSTORE).getValue();
-            if (keystoreFile == null) {
-                return SslContextFactory.createTrustSslContext(
-                        configContext.getProperty(TRUSTSTORE).getValue(),
-                        
configContext.getProperty(TRUSTSTORE_PASSWORD).getValue().toCharArray(),
-                        configContext.getProperty(TRUSTSTORE_TYPE).getValue());
-            }
-            final String truststoreFile = 
configContext.getProperty(TRUSTSTORE).getValue();
-            if (truststoreFile == null) {
-                return SslContextFactory.createSslContext(
-                        configContext.getProperty(KEYSTORE).getValue(),
-                        
configContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(),
-                        configContext.getProperty(KEYSTORE_TYPE).getValue());
-            }
-
-            return SslContextFactory.createSslContext(
-                    configContext.getProperty(KEYSTORE).getValue(),
-                    
configContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(),
-                    configContext.getProperty(KEYSTORE_TYPE).getValue(),
-                    configContext.getProperty(TRUSTSTORE).getValue(),
-                    
configContext.getProperty(TRUSTSTORE_PASSWORD).getValue().toCharArray(),
-                    configContext.getProperty(TRUSTSTORE_TYPE).getValue(),
-                    
org.apache.nifi.security.util.SslContextFactory.ClientAuth.valueOf(clientAuth.name()));
-        } catch (final Exception e) {
-            throw new ProcessException(e);
-        }
-    }
-
-    @Override
-    public String getTrustStoreFile() {
-        return configContext.getProperty(TRUSTSTORE).getValue();
-    }
-
-    @Override
-    public String getTrustStoreType() {
-        return configContext.getProperty(TRUSTSTORE_TYPE).getValue();
-    }
-
-    @Override
-    public String getTrustStorePassword() {
-        return configContext.getProperty(TRUSTSTORE_PASSWORD).getValue();
-    }
-
-    @Override
-    public boolean isTrustStoreConfigured() {
-        return getTrustStoreFile() != null && getTrustStorePassword() != null 
&& getTrustStoreType() != null;
-    }
-
-    @Override
-    public String getKeyStoreFile() {
-        return configContext.getProperty(KEYSTORE).getValue();
-    }
-
-    @Override
-    public String getKeyStoreType() {
-        return configContext.getProperty(KEYSTORE_TYPE).getValue();
-    }
-
-    @Override
-    public String getKeyStorePassword() {
-        return configContext.getProperty(KEYSTORE_PASSWORD).getValue();
-    }
-
-    @Override
-    public boolean isKeyStoreConfigured() {
-        return getKeyStoreFile() != null && getKeyStorePassword() != null && 
getKeyStoreType() != null;
-    }
-
-    private static Collection<ValidationResult> validateStore(final 
Map<PropertyDescriptor, String> properties,
-            final KeystoreValidationGroup keyStoreOrTrustStore) {
-        final Collection<ValidationResult> results = new ArrayList<>();
-
-        final String filename;
-        final String password;
-        final String type;
-
-        if (keyStoreOrTrustStore == KeystoreValidationGroup.KEYSTORE) {
-            filename = properties.get(KEYSTORE);
-            password = properties.get(KEYSTORE_PASSWORD);
-            type = properties.get(KEYSTORE_TYPE);
-        } else {
-            filename = properties.get(TRUSTSTORE);
-            password = properties.get(TRUSTSTORE_PASSWORD);
-            type = properties.get(TRUSTSTORE_TYPE);
-        }
-
-        final String keystoreDesc = (keyStoreOrTrustStore == 
KeystoreValidationGroup.KEYSTORE) ? "Keystore" : "Truststore";
-
-        final int nulls = countNulls(filename, password, type);
-        if (nulls != 3 && nulls != 0) {
-            results.add(new 
ValidationResult.Builder().valid(false).explanation("Must set either 0 or 3 
properties for " + keystoreDesc)
-                    .subject(keystoreDesc + " Properties").build());
-        } else if (nulls == 0) {
-            // all properties were filled in.
-            final File file = new File(filename);
-            if (!file.exists() || !file.canRead()) {
-                results.add(new ValidationResult.Builder()
-                        .valid(false)
-                        .subject(keystoreDesc + " Properties")
-                        .explanation("Cannot access file " + 
file.getAbsolutePath())
-                        .build());
-            } else {
-                try {
-                    final boolean storeValid = CertificateUtils
-                            .isStoreValid(file.toURI().toURL(), 
KeystoreType.valueOf(type), password.toCharArray());
-                    if (!storeValid) {
-                        results.add(new ValidationResult.Builder()
-                                .subject(keystoreDesc + " Properties")
-                                .valid(false)
-                                .explanation("Invalid KeyStore Password or 
Type specified for file " + filename)
-                                .build());
-                    }
-                } catch (MalformedURLException e) {
-                    results.add(new ValidationResult.Builder()
-                            .subject(keystoreDesc + " Properties")
-                            .valid(false)
-                            .explanation("Malformed URL from file: " + e)
-                            .build());
-                }
-            }
-        }
-
-        return results;
-    }
-
-    private static int countNulls(Object... objects) {
-        int count = 0;
-        for (final Object x : objects) {
-            if (x == null) {
-                count++;
-            }
-        }
-
-        return count;
-    }
-
-    public static enum KeystoreValidationGroup {
-
-        KEYSTORE, TRUSTSTORE
-    }
-
-    @Override
-    public String toString() {
-        return "SSLContextService[id=" + getIdentifier() + "]";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/19d4a150/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
----------------------------------------------------------------------
diff --git 
a/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
 
b/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
deleted file mode 100644
index b1b6124..0000000
--- 
a/nar-bundles/ssl-context-bundle/ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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.
-org.apache.nifi.ssl.StandardSSLContextService
\ No newline at end of file

Reply via email to