Converting builtin applications to be delivered in a self-contained manner via OAR files.

Change-Id: I5b7c6939aacc263248868fac2e0f69124c5f3609
diff --git a/tools/test/bin/onos-setup-karaf b/tools/test/bin/onos-setup-karaf
index 930fdf7..56102cb 100755
--- a/tools/test/bin/onos-setup-karaf
+++ b/tools/test/bin/onos-setup-karaf
@@ -56,7 +56,7 @@
 
 if ! grep -q ",onos-api," $KARAF_ROOT/etc/org.apache.karaf.features.cfg; then
     # Patch the Apache Karaf distribution file to load default ONOS boot features
-    export BOOT_FEATURES="webconsole,onos-api,onos-core,onos-cli,onos-rest,onos-gui,onos-openflow"
+    export BOOT_FEATURES="webconsole,onos-api,onos-core,onos-cli,onos-rest,onos-gui"
     echo "Adding ONOS boot features $BOOT_FEATURES..."
     perl -pi.old -e "s|^(featuresBoot=.*)|\1,$BOOT_FEATURES|" \
         $KARAF_ROOT/etc/org.apache.karaf.features.cfg
@@ -89,19 +89,11 @@
 perl -pi.old -e "s/192.168.56/$SUBNET/" $KARAF_ROOT/etc/hazelcast.xml
 perl -pi.old -e "s/        <name>onos</        <name>$IP</" $KARAF_ROOT/etc/hazelcast.xml
 
-
 echo "Staging builtin apps..."
 rm -fr $STAGE/apps
-mkdir -p $STAGE/apps
-find $ONOS_ROOT -name 'app.xml' | egrep -v '/src/test/|/target/|org\.foo\.' | \
-    xargs grep 'name=' | sed 's/<app name="//g;s/".*//g' | while read line; do
-        appxml=${line%:*}
-        app=${line#*:}
-        mkdir $STAGE/apps/$app
-        cp $appxml $STAGE/apps/$app/app.xml
-    done
+onos-stage-apps $STAGE/apps $KARAF_ROOT/system
 
 echo "Customizing apps to be auto-activated..."
-for app in $(echo $ONOS_APPS | tr ',' ' '); do
+for app in $(echo ${ONOS_APPS:-openflow} | tr ',' ' '); do
     touch $STAGE/apps/org.onosproject.$app/active
 done
diff --git a/tools/test/bin/onos-stage-apps b/tools/test/bin/onos-stage-apps
new file mode 100755
index 0000000..4c2c230
--- /dev/null
+++ b/tools/test/bin/onos-stage-apps
@@ -0,0 +1,29 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Stages builtin ONOS apps into the specified directory for packaging.
+# -----------------------------------------------------------------------------
+
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. $ONOS_ROOT/tools/build/envDefaults
+
+export APPS=${1:-/tmp/apps}
+export KARAF_M2=${2:-/tmp/karaf/system}
+export AUX=$APPS/aux
+
+# Bail on any errors
+set -e
+
+mkdir -p $APPS $KARAF_M2
+rm -fr $AUX
+
+find $M2_REPO/org/onosproject/ -name "*.oar" -path "*/${ONOS_POM_VERSION}/*" | while read line; do
+    mkdir -p $AUX && cd $AUX
+    cp $line $AUX
+    jar -xf $AUX/*.oar
+    name=$(grep "name=" $AUX/app.xml | sed 's/<app name="//g;s/".*//g')
+    mkdir -p $APPS/$name
+    cp $AUX/app.xml $APPS/$name/app.xml
+    cp $AUX/*.oar $APPS/$name/$name.oar
+    cp -rf $AUX/m2/* $KARAF_M2
+    rm -fr $AUX
+done