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