1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vi: set et smarttab sw=4 tabstop=4: -->
4 Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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.0-SNAPSHOT/xml/features</repository>
22 <repository>mvn:org.opendaylight.controller/features-mdsal/1.2.0-SNAPSHOT/xml/features</repository>
23 <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin/0.1.0-SNAPSHOT/xml/features</repository>
25 <repository>mvn:org.opendaylight.controller/features-mdsal/${mdsal.version}/xml/features</repository>
26 <repository>mvn:org.opendaylight.yangtools/features-yangtools/${yangtools.version}/xml/features</repository>
27 <repository>mvn:org.opendaylight.controller/features-netconf/${netconf.version}/xml/features</repository>
28 <!-- FIXME: This introduces cycle between projects, which makes version updates
29 harder. Should be moved to different.
31 <repository>mvn:org.opendaylight.aaa/features-aaa/${aaa.version}/xml/features</repository>
32 <feature name='odl-netconf-connector-all' version='${project.version}' description='OpenDaylight :: Netconf Connector :: All'>
35 List all of the user consumable features you define in this feature file here.
36 Generally you would *not* list individual bundles here, but only features defined in *this* file.
37 It is useful to list them in the same order they occur in the file.
40 <feature version='${project.version}'>odl-controller-provider</feature>
41 <feature version='${project.version}'>odl-controller-model</feature>
43 <feature version='${project.version}'>odl-netconf-connector</feature>
44 <feature version='${project.version}'>odl-netconf-connector-ssh</feature>
49 Necessary TODO: Define your features. It is useful to list then in order of dependency. So if A depends on B, list A first.
50 When naming your features please be mindful of the guidelines:
51 https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines
53 a) Prefixing names with 'odl-': https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Feature_Naming
54 b) Descriptions: https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Description
55 c) Avoid start-levels: https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Avoid_start-levels
57 It's also nice to list inside a feature, first the features it needs, then the bundles it needs, then the configfiles.
60 * Basic MD-SAL Provider
61 <feature name='odl-controller-provider' version='${project.version}' description='OpenDaylight :: controller :: Provider '>
62 <feature version='1.2.0-SNAPSHOT'>odl-mdsal-broker</feature>
63 <feature version='${project.version}'>odl-controller-model</feature>
64 <bundle>mvn:org.opendaylight.controller/controller-provider/${project.version}</bundle>
65 ... whatever other bundles you need
68 * Basic MD-SAL Model feature
69 <feature name='odl-controller-model' version='${project.version}' description='OpenDaylight :: controller :: Model'>
70 <feature version='0.7.0-SNAPSHOT'>odl-yangtools-binding</feature>
71 <feature version='0.7.0-SNAPSHOT'>odl-yangtools-models</feature>
72 <bundle>mvn:org.opendaylight.controller/controller-model/${project.version}</bundle>
73 ... whatever other bundles you need
76 * Config Subsystem example - the config file is your config subsystem configuration
77 <feature name='odl-controller-provider' version='${project.version}' description='OpenDaylight :: controller :: Provider'>
78 <feature version='1.2.0-SNAPSHOT'>odl-mdsal-broker</feature>
79 <bundle>mvn:org.opendaylight.controller/controller-provider/${project.version}</bundle>
80 <configfile finalname="etc/opendaylight/karaf/80-controller.xml">mvn:org.opendaylight.controller/controller-config/${project.version}/xml/config</configfile>
81 ... whatever other bundles you need
84 * Basic MD-SAL Provider that uses openflowplugin-flow-services (which brings along odl-mdsal-broker)
85 <feature name='odl-controller-provider' version='${project.version}' description='OpenDaylight :: controller :: Provider'>
86 <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services</feature>
87 <bundle>mvn:org.opendaylight.controller/controller-provider/${project.version}</bundle>
88 ... whatever other bundles you need
92 <feature name='odl-netconf-connector' version='${project.version}' description="OpenDaylight :: Netconf Connector :: Netconf Connector">
93 <feature version='${project.version}'>odl-mdsal-broker</feature>
94 <feature version='${netconf.version}'>odl-netconf-client</feature>
95 <feature version='${yangtools.version}'>odl-yangtools-models</feature>
96 <bundle>mvn:org.opendaylight.controller/sal-netconf-connector/${project.version}</bundle>
97 <bundle>mvn:org.opendaylight.controller.model/model-inventory/${project.version}</bundle>
98 <bundle>mvn:org.opendaylight.controller/netconf-config-dispatcher/${config.version}</bundle>
99 <configfile finalname='${config.configfile.directory}/${config.netconf.client.configfile}'>mvn:org.opendaylight.controller/netconf-config/${netconf.version}/xml/config</configfile>
101 <feature name='odl-netconf-connector-ssh' version='${project.version}' description="OpenDaylight :: Netconf Connector :: Netconf Connector + Netconf SSH Server + loopback connection configuration">
102 <feature version='${netconf.version}'>odl-netconf-ssh</feature>
103 <feature version='${project.version}'>odl-netconf-connector</feature>
104 <configfile finalname="${config.configfile.directory}/${config.netconf.connector.configfile}">mvn:org.opendaylight.controller/netconf-connector-config/${netconf.version}/xml/config</configfile>
106 <feature name='odl-netconf-ssh' version='${netconf.version}' description="OpenDaylight :: Netconf Connector :: SSH">
107 <feature version='${netconf.version}'>odl-netconf-tcp</feature>
108 <feature version='${config.version}'>odl-config-netty</feature>
109 <!-- FIXME: This introduces cycle between projects, which makes version updates
110 harder. Should be moved to different.
112 <feature version='${aaa.version}'>odl-aaa-netconf-plugin</feature>
113 <bundle>mvn:org.opendaylight.controller/netconf-ssh/${netconf.version}</bundle>
115 <feature name='odl-netconf-tcp' version='${netconf.version}' description="OpenDaylight :: Netconf Connector :: TCP">
116 <feature version='${netconf.version}'>odl-netconf-impl</feature>
117 <feature version='${config.version}'>odl-config-netty</feature>
118 <bundle>mvn:org.opendaylight.controller/netconf-tcp/${netconf.version}</bundle>
121 <feature name='odl-message-bus' version='${project.version}'>
122 <feature version='${project.version}'>odl-netconf-connector</feature>
123 <feature version='${project.version}'>odl-mdsal-broker</feature>
124 <bundle>mvn:org.opendaylight.controller/messagebus-api/${project.version}</bundle>
125 <bundle>mvn:org.opendaylight.controller/messagebus-spi/${project.version}</bundle>
126 <bundle>mvn:org.opendaylight.controller/messagebus-impl/${project.version}</bundle>
127 <configfile finalname="${config.configfile.directory}/05-message-bus.xml">mvn:org.opendaylight.controller/messagebus-config/${project.version}/xml/config</configfile>
129 <!-- Optional TODO: Remove TODO Comments -->