1 package org.opendaylight.controller.sal.compatibility.topology
3 import org.opendaylight.controller.sal.binding.api.data.DataProviderService
4 import org.opendaylight.controller.sal.topology.IPluginOutTopologyService
5 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology
6 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId
7 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology
8 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey
9 import org.opendaylight.yangtools.yang.binding.DataObject
10 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
11 import org.opendaylight.yangtools.concepts.Registration
12 import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler
13 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link
14 import org.slf4j.LoggerFactory
16 class TopologyProvider implements AutoCloseable{
17 static val LOG = LoggerFactory.getLogger(TopologyProvider);
18 TopologyCommitHandler commitHandler
21 IPluginOutTopologyService topologyPublisher;
24 DataProviderService dataService;
26 Registration<DataCommitHandler<InstanceIdentifier<? extends DataObject>,DataObject>> commitHandlerRegistration;
29 commitHandler = new TopologyCommitHandler(dataService)
30 commitHandler.setTopologyPublisher(topologyPublisher)
31 val InstanceIdentifier<? extends DataObject> path = InstanceIdentifier.builder(NetworkTopology)
32 .child(Topology,new TopologyKey(new TopologyId("flow:1")))
35 commitHandlerRegistration = dataService.registerCommitHandler(path,commitHandler);
36 LOG.info("TopologyProvider started")
39 override close() throws Exception {
40 commitHandlerRegistration.close
43 def setTopologyPublisher(IPluginOutTopologyService topologyPublisher) {
44 _topologyPublisher = topologyPublisher;
45 commitHandler.setTopologyPublisher(topologyPublisher);