Add support to propagate ONOS log to Kafka with KafkaAppender in log4j2

- new OSGi Bundle to define extra imports for log4j2
- update OSGiWrapper to support fragment-host tag + bugfix
- add kafka-clients to onos-dependencies package
- add example of how to propagate log to Kafka via KafkaAppender
- bugfix to org.ops4j.pax.logging.cfg

Change-Id: I89992936101a48c6452082bf23c7133c20aa0b48
diff --git a/utils/osgiwrap/src/main/java/org/onlab/osgiwrap/OSGiWrapper.java b/utils/osgiwrap/src/main/java/org/onlab/osgiwrap/OSGiWrapper.java
index b57dab5..2bdc2b3 100644
--- a/utils/osgiwrap/src/main/java/org/onlab/osgiwrap/OSGiWrapper.java
+++ b/utils/osgiwrap/src/main/java/org/onlab/osgiwrap/OSGiWrapper.java
@@ -86,9 +86,11 @@
     private String bundleClasspath;
     private String karafCommands;
 
+    private String fragmentHost;
+
     // FIXME should consider using Commons CLI, etc.
     public static void main(String[] args) {
-        if (args.length < 14) {
+        if (args.length < 17) {
             System.err.println("Not enough args");
             System.exit(1);
         }
@@ -109,7 +111,8 @@
         String destdir = args[13];
         String bundleClasspath = args[14];
         String karafCommands = args[15];
-        String desc = Joiner.on(' ').join(Arrays.copyOfRange(args, 12, args.length));
+        String fragmentHost = args[16];
+        String desc = Joiner.on(' ').join(Arrays.copyOfRange(args, 17, args.length));
 
         OSGiWrapper wrapper = new OSGiWrapper(jar, output, cp,
                 name, group,
@@ -122,7 +125,8 @@
                 desc,
                 destdir,
                 bundleClasspath,
-                karafCommands);
+                karafCommands,
+                fragmentHost);
         wrapper.log(wrapper + "\n");
         if (!wrapper.execute()) {
             System.err.printf("Error generating %s\n", name);
@@ -147,7 +151,8 @@
                        String bundleDescription,
                        String destdir,
                        String bundleClasspath,
-                       String karafCommands) {
+                       String karafCommands,
+                       String fragmentHost) {
         this.inputJar = inputJar;
         this.classpath = Lists.newArrayList(classpath.split(":"));
         if (!this.classpath.contains(inputJar)) {
@@ -179,6 +184,8 @@
 
         this.bundleClasspath = bundleClasspath;
         this.karafCommands = karafCommands;
+
+        this.fragmentHost = fragmentHost;
     }
 
     private void setProperties(Analyzer analyzer) {
@@ -214,6 +221,8 @@
                     ",org.glassfish.jersey.servlet,org.jvnet.mimepull\n");
         }
         analyzer.setProperty("Karaf-Commands", karafCommands);
+
+        analyzer.setProperty(Analyzer.FRAGMENT_HOST, fragmentHost);
     }
 
     public boolean execute() {