Re-enabled TLS netty

created netty specific feature separate from third-party-base
refactored boot features to ensure proper boot sequence for netty, sshd, and core-net
moved http codec to netty feature

Change-Id: Ie6e0ce14fba71603086b7cfe62e1c90a77fd18f2
Co-authored-by: Ray Milkey <ray@opennetworking.org>
diff --git a/tools/package/etc/org.apache.karaf.features.cfg b/tools/package/etc/org.apache.karaf.features.cfg
index 9a6061c..75112a8 100644
--- a/tools/package/etc/org.apache.karaf.features.cfg
+++ b/tools/package/etc/org.apache.karaf.features.cfg
@@ -30,34 +30,38 @@
 
 #
 # Comma separated list of features to install at startup
+# Groups of features within parens are brought up in parallel
+# Groups of features are brought up sequentially
+# Features without a paren group are assigned to an implicit paren group that ends when the next paren is found
 #
 featuresBoot = \
-    instance/4.2.1, \
-    package/4.2.1, \
-    log/4.2.1, \
-    ssh/4.2.1, \
-    framework/4.2.1, \
-    system/4.2.1, \
-    eventadmin/4.2.1, \
-    feature/4.2.1, \
-    shell/4.2.1, \
-    management/4.2.1, \
-    service/4.2.1, \
-    jaas/4.2.1, \
-    deployer/4.2.1, \
-    diagnostic/4.2.1, \
+    (instance/4.2.1, \
+     package/4.2.1, \
+     log/4.2.1, \
+     framework/4.2.1, \
+     system/4.2.1, \
+     eventadmin/4.2.1, \
+     feature/4.2.1, \
+     shell/4.2.1, \
+     management/4.2.1, \
+     service/4.2.1, \
+     jaas/4.2.1, \
+     deployer/4.2.1, \
+     diagnostic/4.2.1), \
     (wrap/2.5.4), \
-    bundle/4.2.1, \
-    config/4.2.1, \
-    kar/4.2.1, \
-    webconsole/4.2.1, \
-    scr/4.2.1, \
-    war/4.2.1, \
-    onos-api/$ONOS_VERSION, \
-    onos-core/$ONOS_VERSION, \
-    onos-cli/$ONOS_VERSION, \
-    onos-rest/$ONOS_VERSION, \
-    onos-gui/$ONOS_VERSION
+    (bundle/4.2.1, \
+     config/4.2.1, \
+     kar/4.2.1, \
+     webconsole/4.2.1, \
+     scr/4.2.1, \
+     war/4.2.1), \
+    (onos-netty/$ONOS_VERSION), \
+    (onos-api/$ONOS_VERSION, \
+     onos-core/$ONOS_VERSION, \
+     onos-cli/$ONOS_VERSION, \
+     ssh/4.2.1, \
+     onos-rest/$ONOS_VERSION, \
+     onos-gui/$ONOS_VERSION)
 
 
 #
diff --git a/tools/package/features/BUILD b/tools/package/features/BUILD
index 7d31d25..a0c9186 100644
--- a/tools/package/features/BUILD
+++ b/tools/package/features/BUILD
@@ -8,6 +8,27 @@
 )
 
 osgi_feature(
+    name = "onos-netty",
+    description = "ONOS Netty dependencies",
+    included_bundles = [
+        "@io_netty_netty//jar",
+        "@io_netty_netty_common//jar",
+        "@io_netty_netty_buffer//jar",
+        "@io_netty_netty_handler//jar",
+        "@io_netty_netty_tcnative_boringssl//jar",
+        "@io_netty_netty_codec//jar",
+        "@io_netty_netty_codec_http//jar",
+        "@io_netty_netty_codec_http2//jar",
+        "@io_netty_netty_transport//jar",
+        "@io_netty_netty_transport_native_epoll//jar",
+        "@io_netty_netty_transport_native_unix_common//jar",
+        "@io_netty_netty_resolver//jar",
+    ],
+    required_features = [],
+    visibility = ["//visibility:public"],
+)
+
+osgi_feature(
     name = "onos-thirdparty-base",
     description = "ONOS 3rd party dependencies",
     included_bundles = ATOMIX + [
@@ -17,15 +38,6 @@
         "@commons_codec//jar",
         "@commons_configuration//jar",
         "@com_google_guava_guava//jar",
-        "@io_netty_netty//jar",
-        "@io_netty_netty_common//jar",
-        "@io_netty_netty_buffer//jar",
-        "@io_netty_netty_transport//jar",
-        "@io_netty_netty_handler//jar",
-        "@io_netty_netty_codec//jar",
-        "@io_netty_netty_transport_native_epoll//jar",
-        "@io_netty_netty_transport_native_unix_common//jar",
-        "@io_netty_netty_resolver//jar",
         "@commons_pool//jar",
         "@commons_math3//jar",
         "@joda_time//jar",
@@ -53,7 +65,7 @@
         "@org_osgi_util_function//jar",
         "@org_osgi_util_promise//jar",
     ],
-    required_features = [],
+    required_features = ["onos-netty"],
     visibility = ["//visibility:public"],
 )