*/
package org.opendaylight.transportpce.inventory;
+import javax.sql.DataSource;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
import org.opendaylight.transportpce.inventory.listener.ClliNetworkChangeListener;
import org.opendaylight.transportpce.inventory.listener.DeviceConfigListener;
import org.opendaylight.transportpce.inventory.listener.DeviceListener;
import org.opendaylight.transportpce.inventory.listener.OverlayNetworkChangeListener;
import org.opendaylight.transportpce.inventory.listener.UnderlayNetworkChangeListener;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* {@link ListenerProvider} registers {@link DataTreeChangeListener} for each network layer.
*/
+@Component
public class ListenerProvider {
private static final Logger LOG = LoggerFactory.getLogger(ListenerProvider.class);
- private final DataBroker dataBroker;
- private final OverlayNetworkChangeListener overlayNetworkListener;
- private final UnderlayNetworkChangeListener underlayNetworkListener;
- private final ClliNetworkChangeListener clliNetworkChangeListener;
- private final DeviceListener deviceListener;
- private final DeviceConfigListener deviceConfigListener;
-
/**
* Constructor invoked by blueprint injects all dependencies.
*
* @param dataBroker dataBroker
- * @param overlayNetworkListener overlay-network Listener
- * @param underlayNetworkListener underlay-network Listener
- * @param clliNetworkChangeListener clli Network change Listener
- * @param deviceListener device listener
- * @param deviceConfigListener device config listener
+ * @param dataSource dataSource
+ * @param deviceTransactionManager deviceTransactionManager
*/
- public ListenerProvider(DataBroker dataBroker, OverlayNetworkChangeListener overlayNetworkListener,
- UnderlayNetworkChangeListener underlayNetworkListener, ClliNetworkChangeListener clliNetworkChangeListener,
- DeviceListener deviceListener, DeviceConfigListener deviceConfigListener) {
-
- this.dataBroker = dataBroker;
- this.overlayNetworkListener = overlayNetworkListener;
- this.underlayNetworkListener = underlayNetworkListener;
- this.clliNetworkChangeListener = clliNetworkChangeListener;
- this.deviceListener = deviceListener;
- this.deviceConfigListener = deviceConfigListener;
- }
+ @Activate
+ public ListenerProvider(@Reference DataBroker dataBroker,
+ @Reference DataSource dataSource,
+ @Reference DeviceTransactionManager deviceTransactionManager) {
- /**
- * Invoked by blueprint, registers the listeners.
- */
- public void initialize() {
LOG.debug("Registering listeners...");
+ OverlayNetworkChangeListener overlayNetworkListener = new OverlayNetworkChangeListener();
dataBroker.registerDataTreeChangeListener(
DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.OVERLAY_NETWORK_II),
overlayNetworkListener);
LOG.info("Overlay network change listener was successfully registered");
+ UnderlayNetworkChangeListener underlayNetworkListener = new UnderlayNetworkChangeListener();
dataBroker.registerDataTreeChangeListener(
DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.UNDERLAY_NETWORK_II),
underlayNetworkListener);
LOG.info("Underlay network change listener was successfully registered");
+ ClliNetworkChangeListener clliNetworkChangeListener = new ClliNetworkChangeListener();
dataBroker.registerDataTreeChangeListener(
DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.CLLI_NETWORK_II),
clliNetworkChangeListener);
LOG.info("CLLI network change listener was successfully registered");
+ INode121 inode121 = new INode121(dataSource, deviceTransactionManager);
+ INode inode = new INode(dataSource, inode121);
+ DeviceInventory deviceInventory = new DeviceInventory(dataSource, inode);
+ DeviceListener deviceListener = new DeviceListener(deviceInventory);
dataBroker.registerDataTreeChangeListener(
DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), deviceListener);
LOG.info("Device change listener was successfully registered");
+ DeviceConfigListener deviceConfigListener = new DeviceConfigListener(deviceInventory);
dataBroker.registerDataTreeChangeListener(
DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), deviceConfigListener);
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!-- Copyright © 2016 Orange 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">
-
- <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
- <reference id="dataSource" interface="javax.sql.DataSource"/>
- <reference id="deviceTransactionManager"
- interface="org.opendaylight.transportpce.common.device.DeviceTransactionManager"/>
-
- <bean id="deviceInventory" class="org.opendaylight.transportpce.inventory.DeviceInventory">
- <argument ref="dataSource"/>
- <argument ref="iNodeImpl"/>
- <argument ref="deviceTransactionManager"/>
- </bean>
-
- <bean id="iNode121" class="org.opendaylight.transportpce.inventory.INode121">
- <argument ref="dataSource"/>
- <argument ref="deviceTransactionManager"/>
- </bean>
-
- <bean id="iNodeImpl" class="org.opendaylight.transportpce.inventory.INode">
- <argument ref="dataSource"/>
- <argument ref="deviceTransactionManager"/>
- <argument ref="iNode121"/>
-
- </bean>
-
- <bean id="overlayNetworkChangeListener"
- class="org.opendaylight.transportpce.inventory.listener.OverlayNetworkChangeListener"/>
- <bean id="underlayNetworkChangeListener"
- class="org.opendaylight.transportpce.inventory.listener.UnderlayNetworkChangeListener"/>
- <bean id="clliNetworkChangeListener"
- class="org.opendaylight.transportpce.inventory.listener.ClliNetworkChangeListener"/>
-
- <bean id="deviceListener" class="org.opendaylight.transportpce.inventory.listener.DeviceListener">
- <argument ref="deviceInventory"/>
- </bean>
-
- <bean id="deviceConfigListener" class="org.opendaylight.transportpce.inventory.listener.DeviceConfigListener">
- <argument ref="deviceInventory"/>
- </bean>
-
- <bean id="listenerProvider" class="org.opendaylight.transportpce.inventory.ListenerProvider"
- init-method="initialize">
- <argument ref="dataBroker"/>
- <argument ref="overlayNetworkChangeListener"/>
- <argument ref="underlayNetworkChangeListener"/>
- <argument ref="clliNetworkChangeListener"/>
- <argument ref="deviceListener"/>
- <argument ref="deviceConfigListener"/>
- </bean>
-
-</blueprint>