...
CCSDK is based on OpenDaylight and follows the recommended practices of that group. There are documented guidelines for karaf features, and another aspect is what OpenDaylight calls "component meta-features," in which several related features are grouped together to simplify their installation into karaf.
Inspecting the installer pom.xml file
Below is the annotated pom.xml file. It executes two maven phases: prepare-package and package. Maven executes the prepare-package phase before the package phase, although, in the pom.xml file, the prepare-package code appears after the prepare code. In the annotations, the sequence is indicated by number.
Building the features files for the repositories
The section of the Dockerfile that sets the environment variables for the features for the repositories is repeated here.
...
title | Features files for respositories |
---|
For example, these features implement NETCONF in OpenDaylight:
odl-netconf-api
odl-netconf-mapping-api
odl-netconf-util
odl-netconf-impl
odl-netconf-netty-util
odl-netconf-client
odl-netconf-monitoring
Rather than install each feature individually in the karaf client, one can use the component meta-feature "odl-netconf-all" and install all of the features with the single command "feature:install odl-netconf-all." Recall that the Dockerfile for ccsdk_odlsli_container set these environment variables:
ENV
...
CCSDK_SLI_CORE_REPO
...
mvn:org.onap.ccsdk.sli.core/ccsdk-sli-core-all/${ccsdk.sli.core.version}/xml/features
...
ENV
...
CCSDK_SLI_ADAPTORS_REPO
...
mvn:org.onap.ccsdk.sli.adaptors/ccsdk-sli-adaptors-all/${ccsdk.sli.adaptors.version}/xml/features
...
ENV
...
CCSDK_SLI_NORTHBOUND_REPO
...
mvn:org.onap.ccsdk.sli.northbound/ccsdk-sli-northbound-all/${ccsdk.sli.northbound.version}/xml/features
...
ENV
...
CCSDK_SLI_PLUGINS_REPO
...
mvn:org.onap.ccsdk.sli.plugins/ccsdk-sli-plugins-all/${ccsdk.sli.plugins.version}/xml/features
So CCSDK has created a component meta-feature for each of the SLI repositories, and we will encounter commands in the Maven pom.xml files and directory structures to implement them.
Inspecting the installer pom.xml file
Below is the annotated pom.xml file. It executes two maven phases: prepare-package and package. Maven executes the prepare-package phase before the package phase, although, in the pom.xml file, the prepare-package code appears after the prepare code. In the annotations, the sequence is indicated by number.
These variables enable all of the features in a repository to be installed using a single reference, e.g., <repository-name>-all.