Creating and Installing a New Feature into SDN-R
Introduction
Example and guidline of creating the OSGi Feature for SDN-R with name helloworld.
HINT: This example is located in the sdnr sandbox and not in ONAP gerrit ccsdk/features repository
The SDN-R template structure has the elements
name | content |
---|---|
feature | OSGi xml feature and dependency |
installer | ZIP file containg mavenrepository content of helloworld feature for delivery to distribution ODL Karaf container. |
model | OSGi bundles export interface source files as java or yang source |
provider | OSGi bundles implementation source files as java or yang source |
Hello World
In the wiki page Creating an Instance of SDN-R (Casablanca) we saw how the docker container is constructed and how features are installed into OpenDaylight. We now discuss how to create and add a new feature to SDNR. As an example, we will create a Hello World feature in the ccsdk/features repository using the subdirectory sdnr/northbound. This is the initial file structure.
Helloworld is simpler than sliapi (a zip file is available) because code used in installations prior to Casablanca has been removed and the features directory has been simplified and renamed to feature. As we saw in Creating an Instance of SDN-R (Casablanca), feature/pom.xml creates a features.xml file and installer/pom.xml zips up the maven repository. We can then modify ccsdk/distribution/odlsli/src/maindocker/Dockerfile to include helloworld in the boot features, as shown here.
The final steps are to add helloworld to the dependencies in ccsdk/distributikon/odlsli/pom.xml and then rebuild the docker image.
As before, to rebuild, execute 'mvn --activate-profiles docker clean package' in ccsdk/distribution/odlsli.