====== MD-SAL Tutorial ======
Virtual box
Virtual box image ubuntu_14.04_odl_dev.qcow
RAM 3Gb, HDD 200G LVM
User: odldev; pwd: odldev
Java 7
Maven 3.3.3
The process to get start with developing an ODL controller is documented in a series of steps.
Resulting status of each step was committed to git branch with step_name, e.g., step0. Use "git branch -a" to see all committed step and "git checkout branch_name" to switch to each step. "git diff" is also useful to see what exactly has been changed.
====== Step0: Generate Simple MD-SAL Project from Maven Archetype ======
This step generates necessary modules to start developing ODL controller. Following are summary of what has been done in this step.
* Change to working directory and generate project from archetype
mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller \
-DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ \
-DarchetypeCatalog=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml -DappName=MMA
* Execute generate module to complete the generation.
* Generate karaf distribution module from archetype
mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller \
-DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ \
-DarchetypeCatalog=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml
====== Step1: Restructure Project Directory ======
Make more structured maven project to avoid inconsistent dependency in modules.
* Create parent pom module
* Change parent declaration in other modules: model, provider, distribution-karaf
====== Step 2: Start New Controller Module ======
* Clone and adapt provider module
* Rename yang module configuration file and module_name the file
* Rename initial xml file and update pom.xml
* Remove old classes in org.opendaylight.controller namespace
* Update features module
* Update distribution module