diff options
Diffstat (limited to 'framework/src/onos/tools/package/karaf-assembly')
-rwxr-xr-x | framework/src/onos/tools/package/karaf-assembly/onos-assembly.py | 80 | ||||
-rw-r--r-- | framework/src/onos/tools/package/karaf-assembly/pom.xml | 84 |
2 files changed, 0 insertions, 164 deletions
diff --git a/framework/src/onos/tools/package/karaf-assembly/onos-assembly.py b/framework/src/onos/tools/package/karaf-assembly/onos-assembly.py deleted file mode 100755 index 1e394bf6..00000000 --- a/framework/src/onos/tools/package/karaf-assembly/onos-assembly.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python -''' - Builds synthetic feature file that includes all core, provider, and application - features, so that we can pre-stage all bundles required to run ONOS off-line. -''' - -import os -import xml.etree.ElementTree as ET - -FEATURE_TAG = '{http://karaf.apache.org/xmlns/features/v1.2.0}feature' -STAGED_REPOS = 'target/staged-repos.xml' - -if 'ONOS_ROOT' in os.environ: - ONOS_ROOT = os.environ['ONOS_ROOT'] -else: - # fallback to working directory if ONOS_ROOT is not set - ONOS_ROOT = os.getcwd() - -def findFeatureFiles(path=ONOS_ROOT): - #only descend into target directories that have pom - for root, dirs, files in os.walk(path): - if 'pom.xml' not in files: - if 'target' in dirs: - #pruning target dir with no pom.xml - dirs.remove('target') - if '/target' in root: - if '/classes/' in root: - #filter out features.xml for maven-plugin - continue - for f in files: - if f.endswith('features.xml'): - yield os.path.join(root, f) - -def featuresFromFile(file): - features = [] - tree = ET.parse(file) - root = tree.getroot() - for feature in root.findall(FEATURE_TAG): - features.append(feature.attrib['name']) - return features - -if __name__ == '__main__': - outputTree = ET.Element('features') - uberFeature = ET.Element('feature', attrib={'name' : 'onos-uber-synthetic'}) - for file in findFeatureFiles(): - features = featuresFromFile(file) - if len(features) > 0: - ET.SubElement(outputTree, 'repository').text = 'file:%s' % file - for feature in features: - ET.SubElement(uberFeature, 'feature').text = feature - outputTree.append(uberFeature) - - outputFile = os.path.join(os.path.dirname(os.path.realpath(__file__)), STAGED_REPOS) - outputDir = os.path.dirname(outputFile) - if not os.path.exists(outputDir): - os.mkdir(outputDir) - ET.ElementTree(outputTree).write(outputFile) - - import sys - if '-d' in sys.argv: - # -------- TODO for debug only -------- - def indent(elem, level=0): - #function borrowed from: http://effbot.org/zone/element-lib.htm#prettyprint - i = "\n" + level*" " - if len(elem): - if not elem.text or not elem.text.strip(): - elem.text = i + " " - if not elem.tail or not elem.tail.strip(): - elem.tail = i - for elem in elem: - indent(elem, level+1) - if not elem.tail or not elem.tail.strip(): - elem.tail = i - else: - if level and (not elem.tail or not elem.tail.strip()): - elem.tail = i - - print 'Writing to file:', outputFile - indent(outputTree) - ET.dump(outputTree) diff --git a/framework/src/onos/tools/package/karaf-assembly/pom.xml b/framework/src/onos/tools/package/karaf-assembly/pom.xml deleted file mode 100644 index 4b47c0d1..00000000 --- a/framework/src/onos/tools/package/karaf-assembly/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?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-base</artifactId> - <version>1</version> - </parent> - - <groupId>org.onosproject</groupId> - <artifactId>onos-assembly</artifactId> - <version>1.0</version> - <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="python"> - <arg value="${basedir}/onos-assembly.py"/> - </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>onos-uber-synthetic</feature> - </features> - <repository>target/repo</repository> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - -</project> |