This section describes some aspects of troubleshooting ONOS, with respect to its multi-bundle/OSGi aspects.

Bundle Internals

As mentioned in ONOS : An Overview, ONOS is a multi-module project managed as OSGi bundles by Karaf. 

Each bundle is represented by a Maven project with its own POM file, and each project may implement zero or more services. The bundles describe dependencies via:

Notably, both prohibit circular references, and the POM file hierarchy, the cross-linking of projects not indicated to be dependencies.

Symptoms and Causes

The following result in failed dependency resolution and builds, and/or the failure to load modules at runtime: 

We focus on the first two, as these are more common as programmatic errors.