From fd692c20d9dc48529aa7d545397f1b009d3bd479 Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Fri, 21 Jul 2017 15:26:10 +0200 Subject: HONEYCOMB-362: bump ODL dependencies to Carbon Change-Id: I63fa239e34178ab03c4eecd421bf19d80303d30e Signed-off-by: Marek Gradzki --- .../netconf/NetconfMdsalMapperProvider.java | 19 ++++++--- .../netconf/NetconfMonitoringMapperProvider.java | 49 ++++------------------ .../netconf/NetconfNotificationMapperProvider.java | 47 +++++---------------- 3 files changed, 33 insertions(+), 82 deletions(-) (limited to 'infra/northbound/netconf') diff --git a/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java b/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java index 4f0c00655..bb9264684 100644 --- a/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java +++ b/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfMdsalMapperProvider.java @@ -16,14 +16,18 @@ package io.fd.honeycomb.northbound.netconf; +import static io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG; + import com.google.inject.Inject; +import com.google.inject.name.Named; import io.fd.honeycomb.binding.init.ProviderTrait; -import org.opendaylight.controller.sal.core.api.Broker; +import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; import org.opendaylight.controller.sal.core.api.model.SchemaService; +import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener; import org.opendaylight.netconf.mdsal.connector.MdsalNetconfOperationServiceFactory; -import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext; public final class NetconfMdsalMapperProvider extends ProviderTrait { @@ -34,14 +38,17 @@ public final class NetconfMdsalMapperProvider extends ProviderTrait { private static final Logger LOG = LoggerFactory.getLogger(NetconfMonitoringMapperProvider.class); @Inject @Named(NetconfModule.HONEYCOMB_NETCONF) - private BindingAwareBroker bindingAwareBroker; + private DataBroker dataBroker; @Inject private NetconfOperationServiceFactoryListener aggregator; @Inject @@ -44,40 +42,11 @@ public final class NetconfMonitoringMapperProvider extends ProviderTrait monitoringWriterCls = Class.forName( - "org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.MonitoringToMdsalWriter"); - Constructor declaredConstructor = - monitoringWriterCls.getDeclaredConstructor(NetconfMonitoringService.class); - declaredConstructor.setAccessible(true); - final BindingAwareProvider writer = (BindingAwareProvider) declaredConstructor.newInstance(monitoringService); - bindingAwareBroker.registerProvider(writer); - - final Class moduleClass = Class.forName( - "org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.NetconfMdsalMonitoringMapperModule"); - final Class monitoringMapperCls = Class.forName( - "org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.NetconfMdsalMonitoringMapperModule$MdsalMonitoringMapper"); - declaredConstructor = - monitoringMapperCls.getDeclaredConstructor(NetconfMonitoringService.class); - declaredConstructor.setAccessible(true); - final NetconfOperationService mdSalMonitoringMapper = - (NetconfOperationService) declaredConstructor.newInstance(monitoringService); + LOG.trace("Initializing MonitoringToMdsalWriter"); + final MonitoringToMdsalWriter writer = new MonitoringToMdsalWriter(monitoringService, dataBroker); + writer.start(); - final Class monitoringMpperFactory = Class.forName( - "org.opendaylight.controller.config.yang.netconf.mdsal.monitoring.NetconfMdsalMonitoringMapperModule$MdSalMonitoringMapperFactory"); - declaredConstructor = - monitoringMpperFactory.getDeclaredConstructor(NetconfOperationService.class, moduleClass, monitoringWriterCls); - declaredConstructor.setAccessible(true); - // The second argument is null, it should be the parent cfg-subsystem module class instance, that we dont have - // it's used only during close so dont close the factory using its close() method - final NetconfOperationServiceFactory mdSalMonitoringMapperFactory = - (NetconfOperationServiceFactory) declaredConstructor.newInstance(mdSalMonitoringMapper, null, writer); - aggregator.onAddNetconfOperationServiceFactory(mdSalMonitoringMapperFactory); - return mdSalMonitoringMapperFactory; - } catch (final ReflectiveOperationException e) { - final String msg = "Unable to instantiate operation service factory using reflection"; - LOG.error(msg, e); - throw new IllegalStateException(msg, e); - } + LOG.trace("Providing MdsalMonitoringMapperFactory"); + return new MdsalMonitoringMapperFactory(aggregator, monitoringService, writer); } } diff --git a/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java b/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java index b2155fac1..d097e3419 100644 --- a/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java +++ b/infra/northbound/netconf/src/main/java/io/fd/honeycomb/northbound/netconf/NetconfNotificationMapperProvider.java @@ -19,22 +19,18 @@ package io.fd.honeycomb.northbound.netconf; import com.google.inject.Inject; import com.google.inject.name.Named; import io.fd.honeycomb.binding.init.ProviderTrait; -import java.lang.reflect.Constructor; +import org.opendaylight.controller.config.yang.netconf.mdsal.notification.CapabilityChangeNotificationProducer; +import org.opendaylight.controller.config.yang.netconf.mdsal.notification.NotificationToMdsalWriter; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.controller.sal.binding.api.BindingAwareProvider; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener; import org.opendaylight.netconf.mdsal.notification.NetconfNotificationOperationServiceFactory; -import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration; import org.opendaylight.netconf.notifications.NetconfNotificationCollector; import org.opendaylight.netconf.notifications.NetconfNotificationRegistry; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities; -import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,38 +57,17 @@ public class NetconfNotificationMapperProvider extends ProviderTrait notificationWriter = Class.forName( - "org.opendaylight.controller.config.yang.netconf.mdsal.notification.NotificationToMdsalWriter"); - Constructor declaredConstructor = - notificationWriter.getDeclaredConstructor(NetconfNotificationCollector.class); - declaredConstructor.setAccessible(true); - final BindingAwareProvider writer = - (BindingAwareProvider) declaredConstructor.newInstance(notificationCollector); - bindingAwareBroker.registerProvider(writer); + LOG.trace("Initializing NotificationToMdsalWriter"); + final NotificationToMdsalWriter writer = new NotificationToMdsalWriter(notificationCollector, dataBroker); + writer.start(); - final Class notifPublisherCls = Class.forName( - "org.opendaylight.controller.config.yang.netconf.mdsal.notification.CapabilityChangeNotificationProducer"); - declaredConstructor = - notifPublisherCls.getDeclaredConstructor(BaseNotificationPublisherRegistration.class); - declaredConstructor.setAccessible(true); - final DataTreeChangeListener publisher = - (DataTreeChangeListener) declaredConstructor.newInstance( - notificationCollector.registerBaseNotificationPublisher()); - - ListenerRegistration> capabilityChangeListenerRegistration = dataBroker - .registerDataTreeChangeListener( - new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, capabilitiesIdentifier), - publisher); - NetconfNotificationOperationServiceFactory netconfNotificationOperationServiceFactory = - new NetconfNotificationOperationServiceFactory(notificationRegistry); - aggregator.onAddNetconfOperationServiceFactory(netconfNotificationOperationServiceFactory); + LOG.trace("Initializing CapabilityChangeNotificationProducer"); + final DataTreeChangeListener publisher = + new CapabilityChangeNotificationProducer(notificationCollector, dataBroker); + LOG.trace("Providing NetconfNotificationOperationServiceFactory"); + NetconfNotificationOperationServiceFactory netconfNotificationOperationServiceFactory = + new NetconfNotificationOperationServiceFactory(notificationRegistry, aggregator); return netconfNotificationOperationServiceFactory; - } catch (final ReflectiveOperationException e) { - final String msg = "Unable to instantiate notification mapper using reflection"; - LOG.error(msg, e); - throw new IllegalStateException(msg, e); - } } } -- cgit 1.2.3-korg