Thomas Vachuska
Committed by Gerrit Code Review

Preparing assembly of Karaf and ONOS artifacts for off-line deployments.

Change-Id: I113490bc6735f5372e33bb671ad5adec640b2e36
......@@ -39,7 +39,6 @@
<description>Open Network Operating System root project</description>
<modules>
<module>tools/package/maven-plugin</module>
<module>utils</module>
<module>core</module>
<module>web</module>
......@@ -55,6 +54,8 @@
<module>tools/package/archetypes</module>
<module>tools/package/branding</module>
<module>tools/package/karaf-assembly</module>
<module>tools/package/maven-plugin</module>
<module>tools/build/conf</module>
</modules>
......
......@@ -50,16 +50,21 @@ function build_stage_dir() {
$ONOS_ROOT/tools/package/bin/onos-client > bin/onos
chmod a+x bin/onos-service bin/onos
# Stage the ONOS bundles, but only those that match the version
mkdir -p $ONOS_STAGE/$KARAF_DIST/system/org/onosproject
find $M2_REPO/org/onosproject -type f -path "*/$ONOS_POM_VERSION/*" \
\( -name '*.jar' -o -name '*.pom' -o -name '*-features.xml' \) \
| grep -v -Ee '-tests.jar|-[0-9]{8}.[0-9]{6}-' \
| while read src; do
dst=$ONOS_STAGE/$KARAF_DIST/system/${src#$M2_REPO/*}
mkdir -p $(dirname $dst)
cp $src $dst
done
if [ -d $ONOS_ROOT/tools/package/karaf-assembly/target/repo ]; then
cp -r $ONOS_ROOT/tools/package/karaf-assembly/target/repo/* $ONOS_STAGE/$KARAF_DIST/system
else
# TODO: Deprecated so remove when confident staging works.
# Stage the ONOS bundles, but only those that match the version
mkdir -p $ONOS_STAGE/$KARAF_DIST/system/org/onosproject
find $M2_REPO/org/onosproject -type f -path "*/$ONOS_POM_VERSION/*" \
\( -name '*.jar' -o -name '*.pom' -o -name '*-features.xml' \) \
| grep -v -Ee '-tests.jar|-[0-9]{8}.[0-9]{6}-' \
| while read src; do
dst=$ONOS_STAGE/$KARAF_DIST/system/${src#$M2_REPO/*}
mkdir -p $(dirname $dst)
cp $src $dst
done
fi
# ONOS Patching ----------------------------------------------------------------
......
#!/bin/bash
# -----------------------------------------------------------------------------
# Assembles together all bundles required to run ONOS off-line.
# -----------------------------------------------------------------------------
mkdir -p target
features=target/features-list.xml
repos=target/staged-repos.xml
echo "<features>" > $repos
echo " <repository>mvn:org.onosproject/onos-features/1.4.0-SNAPSHOT/xml/features</repository>" >> $repos
# Find all app feature files
find $ONOS_ROOT -name '*-features.xml' | grep -v features-repo > $features
# Produce repository entry for each file
cat $features | while read feature; do
echo " <repository>file:$feature</repository>" >> $repos
done
# Create a synthetic feature that depends on all other ONOS features
echo " <feature name=\"foo\">" >> $repos
grep "feature name=" $ONOS_ROOT/features/features.xml | cut -d\" -f2 | while read f; do
echo " <feature>$f</feature>" >> $repos
done
cat $features | while read feature; do
grep "feature name=" $feature | cut -d\" -f2 | while read f; do
echo " <feature>$f</feature>" >> $repos
done
done
echo " </feature>" >> $repos
echo "</features>" >> $repos
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2014-2015 Open Networking Laboratory
~
~ Licensed 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.onosproject</groupId>
<artifactId>onos</artifactId>
<version>1.4.0-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<artifactId>onos-assembly</artifactId>
<packaging>pom</packaging>
<description>ONOS Apache Karaf assembly definitions</description>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<target>
<exec executable="bash">
<arg value="${basedir}/onos-assembly"/>
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>3.0.3</version>
<executions>
<execution>
<id>features-add-to-repo</id>
<phase>generate-resources</phase>
<goals>
<goal>features-add-to-repository</goal>
</goals>
<configuration>
<descriptors>
<descriptor>file:${basedir}/target/staged-repos.xml</descriptor>
</descriptors>
<features>
<feature>foo</feature>
</features>
<repository>target/repo</repository>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>