Move BP xml files to standard OSGI-INF/blueprint
[netconf.git] / restconf / restconf-nb-rfc8040 / src / main / resources / OSGI-INF / blueprint / restconf-bp.xml
diff --git a/restconf/restconf-nb-rfc8040/src/main/resources/OSGI-INF/blueprint/restconf-bp.xml b/restconf/restconf-nb-rfc8040/src/main/resources/OSGI-INF/blueprint/restconf-bp.xml
new file mode 100644 (file)
index 0000000..758a0ed
--- /dev/null
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 Pantheon technologies s.r.o. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
+           xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.4.0"
+           odl:use-default-for-reference-types="true">
+
+  <!-- Restconf providers -->
+  <!--
+    This cfg file defines the type of the DOMDataBroker service to use. 'default' indicates to use
+    the default DOMDataBroker provided by MD-SAL. This setting is useful for providing a custom
+    DOMDataBroker implementation that does, e.g., validation or additional security checking on
+    top of the default DOMDataBroker.
+  -->
+  <cm:property-placeholder persistent-id="org.opendaylight.restconf.databroker"
+        placeholder-prefix = "@{" placeholder-suffix = "}" update-strategy="reload">
+    <cm:default-properties>
+      <cm:property name="databroker-service-type" value="default"/>
+    </cm:default-properties>
+  </cm:property-placeholder>
+
+  <reference id="domRpcService" interface="org.opendaylight.mdsal.dom.api.DOMRpcService"/>
+  <reference id="domMountPointService" interface="org.opendaylight.mdsal.dom.api.DOMMountPointService"/>
+  <reference id="domNotificationService" interface="org.opendaylight.mdsal.dom.api.DOMNotificationService"/>
+  <reference id="domDataBroker" interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"
+          ext:filter="(type=@{databroker-service-type})"/>
+  <reference id="domSchemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService"/>
+
+  <bean id="transactionChainHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler"
+          destroy-method="close">
+    <argument ref="domDataBroker"/>
+  </bean>
+
+  <bean id="schemaContextHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler"
+      factory-method="newInstance" init-method="init" destroy-method="close">
+    <argument ref="transactionChainHandler"/>
+    <argument ref="domSchemaService"/>
+  </bean>
+
+  <bean id="mountPointServiceHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.DOMMountPointServiceHandler"
+      factory-method="newInstance">
+    <argument ref="domMountPointService"/>
+  </bean>
+
+  <bean id="dataBrokerHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.DOMDataBrokerHandler">
+    <argument ref="domDataBroker"/>
+  </bean>
+
+  <bean id="rpcServiceHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.RpcServiceHandler">
+    <argument ref="domRpcService"/>
+  </bean>
+
+  <bean id="notificationServiceHandler" class="org.opendaylight.restconf.nb.rfc8040.handlers.NotificationServiceHandler">
+    <argument ref="domNotificationService"/>
+  </bean>
+
+  <bean id="servicesWrapper" class="org.opendaylight.restconf.nb.rfc8040.services.wrapper.ServicesWrapper"
+      factory-method="newInstance">
+    <argument ref="schemaContextHandler"/>
+    <argument ref="mountPointServiceHandler"/>
+    <argument ref="transactionChainHandler"/>
+    <argument ref="dataBrokerHandler"/>
+    <argument ref="rpcServiceHandler"/>
+    <argument ref="notificationServiceHandler"/>
+    <argument ref="domSchemaService"/>
+  </bean>
+
+  <bean id="restconfApplication" class="org.opendaylight.restconf.nb.rfc8040.RestconfApplication">
+    <argument ref="schemaContextHandler"/>
+    <argument ref="mountPointServiceHandler"/>
+    <argument ref="servicesWrapper"/>
+  </bean>
+
+  <!-- JSONRestconfService -->
+  <bean id="jsonRestconfService"
+      class="org.opendaylight.restconf.nb.rfc8040.rests.services.impl.JSONRestconfServiceRfc8040Impl"
+      destroy-method="close">
+    <argument ref="servicesWrapper"/>
+    <argument ref="mountPointServiceHandler"/>
+    <argument ref="schemaContextHandler"/>
+  </bean>
+
+  <service ref="jsonRestconfService" odl:type="rfc8040"
+      interface="org.opendaylight.restconf.nb.rfc8040.rests.services.api.JSONRestconfService" />
+
+  <!-- Web app registration -->
+
+  <reference id="customFilterAdapterConfig"
+      interface="org.opendaylight.aaa.filterchain.configuration.CustomFilterAdapterConfiguration"/>
+
+  <reference id="webServer" interface="org.opendaylight.aaa.web.WebServer" />
+
+  <reference id="webContextSecurer" interface="org.opendaylight.aaa.web.WebContextSecurer" />
+
+  <reference id="servletSupport" interface="org.opendaylight.aaa.web.servlet.ServletSupport" />
+
+  <bean id="webInitializer" class="org.opendaylight.restconf.nb.rfc8040.web.WebInitializer"
+          destroy-method="close">
+    <argument ref="webServer"/>
+    <argument ref="webContextSecurer"/>
+    <argument ref="servletSupport"/>
+    <argument ref="restconfApplication"/>
+    <argument ref="customFilterAdapterConfig"/>
+  </bean>
+
+</blueprint>