1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vi: set et smarttab sw=4 tabstop=4: -->
4 Necessary TODO: Put your copyright statement here
6 This program and the accompanying materials are made available under the
7 terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 and is available at http://www.eclipse.org/legal/epl-v10.html
10 <features name="odl-controller-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
12 xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
14 Necessary TODO: Please read the features guidelines:
15 https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Feature_Best_Practices
18 Necessary TODO: Add repo entries for the repositories of features you refer to
19 in this feature file but do not define here.
21 <repository>mvn:org.opendaylight.yangtools/features-yangtools/0.7.1-SNAPSHOT/xml/features</repository>
22 <repository>mvn:org.opendaylight.controller/features-mdsal/1.2.1-SNAPSHOT/xml/features</repository>
23 <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin/0.1.1-SNAPSHOT/xml/features</repository>
25 <feature name='odl-akka-all' version='${project.version}' description='OpenDaylight :: Akka :: All'>
28 List all of the user consumable features you define in this feature file here.
29 Generally you would *not* list individual bundles here, but only features defined in *this* file.
30 It is useful to list them in the same order they occur in the file.
33 <feature version='${project.version}'>odl-controller-provider</feature>
34 <feature version='${project.version}'>odl-controller-model</feature>
36 <feature version="${scala.version}">odl-akka-scala</feature>
37 <feature version="${akka.version}">odl-akka-system</feature>
38 <feature version="${akka.version}">odl-akka-clustering</feature>
39 <feature version='0.7'>odl-akka-leveldb</feature>
40 <feature version="${akka.version}">odl-akka-persistence</feature>
43 Necessary TODO: Define your features. It is useful to list then in order of dependency. So if A depends on B, list A first.
44 When naming your features please be mindful of the guidelines:
45 https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines
47 a) Prefixing names with 'odl-': https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Feature_Naming
48 b) Descriptions: https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Description
49 c) Avoid start-levels: https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Avoid_start-levels
51 It's also nice to list inside a feature, first the features it needs, then the bundles it needs, then the configfiles.
54 * Basic MD-SAL Provider
55 <feature name='odl-controller-provider' version='${project.version}' description='OpenDaylight :: controller :: Provider '>
56 <feature version='1.2.1-SNAPSHOT'>odl-mdsal-broker</feature>
57 <feature version='${project.version}'>odl-controller-model</feature>
58 <bundle>mvn:org.opendaylight.controller/controller-provider/${project.version}</bundle>
59 ... whatever other bundles you need
62 * Basic MD-SAL Model feature
63 <feature name='odl-controller-model' version='${project.version}' description='OpenDaylight :: controller :: Model'>
64 <feature version='0.7.1-SNAPSHOT'>odl-yangtools-binding</feature>
65 <feature version='0.7.1-SNAPSHOT'>odl-yangtools-models</feature>
66 <bundle>mvn:org.opendaylight.controller/controller-model/${project.version}</bundle>
67 ... whatever other bundles you need
70 * Config Subsystem example - the config file is your config subsystem configuration
71 <feature name='odl-controller-provider' version='${project.version}' description='OpenDaylight :: controller :: Provider'>
72 <feature version='1.2.1-SNAPSHOT'>odl-mdsal-broker</feature>
73 <bundle>mvn:org.opendaylight.controller/controller-provider/${project.version}</bundle>
74 <configfile finalname="etc/opendaylight/karaf/80-controller.xml">mvn:org.opendaylight.controller/controller-config/${project.version}/xml/config</configfile>
75 ... whatever other bundles you need
78 * Basic MD-SAL Provider that uses openflowplugin-flow-services (which brings along odl-mdsal-broker)
79 <feature name='odl-controller-provider' version='${project.version}' description='OpenDaylight :: controller :: Provider'>
80 <feature version='0.1.1-SNAPSHOT'>odl-openflowplugin-flow-services</feature>
81 <bundle>mvn:org.opendaylight.controller/controller-provider/${project.version}</bundle>
82 ... whatever other bundles you need
86 <feature name="odl-akka-scala" description="Scala Runtime for OpenDaylight" version="${scala.version}">
87 <bundle>mvn:org.scala-lang/scala-library/${scala.version}.${scala.micro.version}</bundle>
88 <bundle>mvn:org.scala-lang/scala-reflect/${scala.version}.${scala.micro.version}</bundle>
90 <feature name="odl-akka-system" description="Akka Actor Framework System Bundles" version="${akka.version}">
91 <feature version="${scala.version}">odl-akka-scala</feature>
92 <bundle>mvn:com.typesafe/config/${typesafe.config.version}</bundle>
93 <bundle>mvn:com.typesafe.akka/akka-actor_${scala.version}/${akka.version}</bundle>
94 <bundle>mvn:com.typesafe.akka/akka-slf4j_${scala.version}/${akka.version}</bundle>
95 <bundle>mvn:com.typesafe.akka/akka-osgi_${scala.version}/${akka.version}</bundle>
97 <feature name="odl-akka-clustering" description="Akka Clustering" version="${akka.version}">
98 <feature version="${akka.version}">odl-akka-system</feature>
99 <bundle>wrap:mvn:org.uncommons.maths/uncommons-maths/${uncommons.maths.version}</bundle>
100 <bundle>mvn:com.google.protobuf/protobuf-java/${protobuf.version}</bundle>
101 <bundle>mvn:io.netty/netty/3.8.0.Final</bundle>
102 <bundle>mvn:com.typesafe.akka/akka-remote_${scala.version}/${akka.version}</bundle>
103 <bundle>mvn:com.typesafe.akka/akka-cluster_${scala.version}/${akka.version}</bundle>
105 <feature name='odl-akka-leveldb' description='LevelDB' version='0.7'>
106 <bundle>wrap:mvn:org.iq80.leveldb/leveldb/${leveldb.version}</bundle>
107 <bundle>mvn:org.fusesource.leveldbjni/leveldbjni-all/${leveldbjni.version}</bundle>
109 <feature name='odl-akka-persistence' description='Akka Persistence' version="${akka.version}">
110 <feature version='0.7'>odl-akka-leveldb</feature>
111 <feature version="${akka.version}">odl-akka-system</feature>
112 <bundle>mvn:com.typesafe.akka/akka-persistence-experimental_${scala.version}/${akka.version}</bundle>
113 <bundle>wrap:mvn:com.google.protobuf/protobuf-java/${protobuf.version}$overwrite=merge&DynamicImport-Package=org.opendaylight.controller.protobuff.messages.*;org.opendaylight.controller.cluster.raft.protobuff.client.messages.*</bundle>
115 <!-- Optional TODO: Remove TODO Comments -->