第一个ODL Bundle程序
前面的例子是纯OSGi例子,它没有用到ODL的任何特性,仅仅是展示标准的OSGi程序的启动和停止的一个生命周期的过程。
ODL引入了一个新的包的管理框架kar,接下来的例子将会解释如何使用KAR来管理我们的APP。
同样的,我们使用MVN来生成基本的例子
mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeVersion=1.0.3-Lithium-SR3 -DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.release/ -DarchetypeCatalog=http://nexus.opendaylight.org/content/repositories/opendaylight.release/archetype-catalog.xml
Hello/
├── api
│ ├── pom.xml
│ └── src
│ └── main
│ └── yang
│ └── Hello.yang
├── artifacts
│ └── pom.xml
├── features
│ ├── pom.xml
│ └── src
│ └── main
│ └── features
│ └── features.xml
├── impl
│ ├── pom.xml
│ └── src
│ ├── main
│ │ ├── config
│ │ │ └── default-config.xml
│ │ ├── java
│ │ │ ├── com
│ │ │ │ └── crdc
│ │ │ │ └── impl
│ │ │ │ └── HelloProvider.java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── yang
│ │ │ └── gen
│ │ │ └── v1
│ │ │ └── urn
│ │ │ └── opendaylight
│ │ │ └── params
│ │ │ └── xml
│ │ │ └── ns
│ │ │ └── yang
│ │ │ └── Hello
│ │ │ └── impl
│ │ │ └── rev141210
│ │ │ ├── HelloModuleFactory.java
│ │ │ └── HelloModule.java
│ │ └── yang
│ │ └── Hello-impl.yang
│ └── test
│ └── java
│ ├── com
│ │ └── crdc
│ │ └── impl
│ │ └── HelloProviderTest.java
│ └── org
│ └── opendaylight
│ └── yang
│ └── gen
│ └── v1
│ └── urn
│ └── opendaylight
│ └── params
│ └── xml
│ └── ns
│ └── yang
│ └── Hello
│ └── impl
│ └── rev141210
│ ├── HelloModuleFactoryTest.java
│ └── HelloModuleTest.java
├── karaf
│ └── pom.xml
└── pom.xml