X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=transportpce.git;a=blobdiff_plain;f=lighty%2Fsrc%2Fmain%2Fjava%2Fio%2Flighty%2Fcontrollers%2Ftpce%2Fmodule%2FTransportPCEImpl.java;h=f977f15d3470a90722a1f4fa23ef26b7e4249052;hp=cf64773cda0188cd1e8ce8c8dc483b2dcfdbbcb0;hb=49a7298494b14c83bb5ac0a33abb5bf1340b6f13;hpb=e795881fbad5afa5838b6ca05426e4066ad58f8b diff --git a/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java b/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java index cf64773cd..f977f15d3 100644 --- a/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java +++ b/lighty/src/main/java/io/lighty/controllers/tpce/module/TransportPCEImpl.java @@ -5,194 +5,337 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at https://www.eclipse.org/legal/epl-v10.html */ - package io.lighty.controllers.tpce.module; import io.lighty.core.controller.api.AbstractLightyModule; import io.lighty.core.controller.api.LightyServices; +import java.util.Arrays; +import java.util.List; +import org.opendaylight.transportpce.common.crossconnect.CrossConnect; import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl; import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl121; import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl221; import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl; -import org.opendaylight.transportpce.common.fixedflex.FixedFlexImpl; +import org.opendaylight.transportpce.common.mapping.MappingUtils; import org.opendaylight.transportpce.common.mapping.MappingUtilsImpl; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.mapping.PortMappingImpl; import org.opendaylight.transportpce.common.mapping.PortMappingVersion121; import org.opendaylight.transportpce.common.mapping.PortMappingVersion221; +import org.opendaylight.transportpce.common.mapping.PortMappingVersion710; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; +import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.common.network.RequestProcessor; +import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl121; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl221; +import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl710; +import org.opendaylight.transportpce.nbinotifications.impl.NbiNotificationsProvider; import org.opendaylight.transportpce.networkmodel.NetConfTopologyListener; import org.opendaylight.transportpce.networkmodel.NetworkModelProvider; import org.opendaylight.transportpce.networkmodel.NetworkUtilsImpl; import org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery; +import org.opendaylight.transportpce.networkmodel.listeners.PortMappingListener; +import org.opendaylight.transportpce.networkmodel.service.FrequenciesService; +import org.opendaylight.transportpce.networkmodel.service.FrequenciesServiceImpl; +import org.opendaylight.transportpce.networkmodel.service.NetworkModelService; import org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl; -import org.opendaylight.transportpce.networkmodel.util.OpenRoadmFactory; -import org.opendaylight.transportpce.networkmodel.util.OpenRoadmTopology22; import org.opendaylight.transportpce.olm.OlmPowerServiceRpcImpl; import org.opendaylight.transportpce.olm.OlmProvider; import org.opendaylight.transportpce.olm.power.PowerMgmt; import org.opendaylight.transportpce.olm.power.PowerMgmtImpl; +import org.opendaylight.transportpce.olm.service.OlmPowerService; import org.opendaylight.transportpce.olm.service.OlmPowerServiceImpl; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumer; +import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl; import org.opendaylight.transportpce.pce.impl.PceProvider; +import org.opendaylight.transportpce.pce.service.PathComputationService; import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl; -import org.opendaylight.transportpce.renderer.NetworkModelWavelengthServiceImpl; import org.opendaylight.transportpce.renderer.RendererProvider; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221; +import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710; import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory; +// Adding OTN interface +import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221; +import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererService; import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererServiceImpl; +import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererService; +// Add OTN +import org.opendaylight.transportpce.renderer.provisiondevice.OtnDeviceRendererServiceImpl; +import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperationsImpl; import org.opendaylight.transportpce.renderer.rpcs.DeviceRendererRPCImpl; +import org.opendaylight.transportpce.servicehandler.impl.ServicehandlerImpl; import org.opendaylight.transportpce.servicehandler.impl.ServicehandlerProvider; +import org.opendaylight.transportpce.servicehandler.listeners.NetworkModelListenerImpl; +import org.opendaylight.transportpce.servicehandler.listeners.PceListenerImpl; +import org.opendaylight.transportpce.servicehandler.listeners.RendererListenerImpl; +import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations; +import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperationsImpl; +import org.opendaylight.transportpce.tapi.impl.TapiProvider; +import org.opendaylight.transportpce.tapi.utils.TapiListener; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev170818.TransportpceNetworkutilsService; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.TransportpceOlmService; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.OrgOpenroadmServiceService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class TransportPCEImpl extends AbstractLightyModule implements TransportPCE { +public class TransportPCEImpl extends AbstractLightyModule implements TransportPCE { private static final Logger LOG = LoggerFactory.getLogger(TransportPCEImpl.class); - private static final long MaxDurationToSubmitTransaction = 1500; - - // common beans + private static final long MAX_DURATION_TO_SUBMIT_TRANSACTION = 1500; + // transaction beans + // cannot use interface for DeviceTransactionManagerImpl + // because implementation has additional public methods ... private final DeviceTransactionManagerImpl deviceTransactionManager; - private final MappingUtilsImpl mappingUtils; - private final OpenRoadmInterfacesImpl121 openRoadmInterfacesImpl121; - private final OpenRoadmInterfacesImpl221 openRoadmInterfacesImpl221; - private final OpenRoadmInterfacesImpl openRoadmInterfaces; - private final PortMappingVersion221 portMappingVersion221; - private final RequestProcessor requestProcessor; - private final NetworkTransactionImpl networkTransaction; - private final PortMappingVersion121 portMappingVersion121; - private final PortMappingImpl portMapping; - private final CrossConnectImpl121 crossConnectImpl121; - private final CrossConnectImpl221 crossConnectImpl221; - private final CrossConnectImpl crossConnect; - private final FixedFlexImpl fixedFlex; - + private final NetworkTransactionService networkTransaction; // pce beans - private final PathComputationServiceImpl pathComputationService; private final PceProvider pceProvider; - // network model beans - private final OpenRoadmTopology22 openRoadmTopology22; - private final OpenRoadmFactory openRoadmFactory; - private final R2RLinkDiscovery linkDiscoveryImpl; - private final NetworkUtilsImpl networkutilsServiceImpl; - private final NetworkModelServiceImpl networkModelService; - private final NetConfTopologyListener netConfTopologyListener; private final NetworkModelProvider networkModelProvider; - // OLM beans - private final PowerMgmt powerMgmt; - private final OlmPowerServiceImpl olmPowerService; private final OlmProvider olmProvider; - private final OlmPowerServiceRpcImpl olmPowerServiceRpc; - // renderer beans - private final OpenRoadmInterface121 openRoadmInterface121; - private final OpenRoadmInterface221 openRoadmInterface22; - private final OpenRoadmInterfaceFactory openRoadmInterfaceFactory; - private final DeviceRendererServiceImpl deviceRendererService; - private final DeviceRendererRPCImpl deviceRendererRPC; - private final NetworkModelWavelengthServiceImpl networkModelWavelengthService; - private final RendererServiceOperationsImpl rendererServiceOperations; private final RendererProvider rendererProvider; - + // T-api + private final TapiProvider tapiProvider; // service-handler beans private final ServicehandlerProvider servicehandlerProvider; + // nbi-notifications beans + private NbiNotificationsProvider nbiNotificationsProvider; + /** + * List of publisher topics. + */ + private final List publisherTopicList = + Arrays.asList("PceListener", "ServiceHandlerOperations", "ServiceHandler", "RendererListener"); - public TransportPCEImpl(LightyServices lightyServices) { - LOG.info("Creating common beans ..."); - deviceTransactionManager = new DeviceTransactionManagerImpl(lightyServices.getControllerBindingMountPointService(), MaxDurationToSubmitTransaction); - mappingUtils = new MappingUtilsImpl(lightyServices.getControllerBindingPingPongDataBroker()); - openRoadmInterfacesImpl121 = new OpenRoadmInterfacesImpl121(deviceTransactionManager); - openRoadmInterfacesImpl221 = new OpenRoadmInterfacesImpl221(deviceTransactionManager); - openRoadmInterfaces = new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils, openRoadmInterfacesImpl121, openRoadmInterfacesImpl221); - portMappingVersion221 = new PortMappingVersion221(lightyServices.getControllerBindingPingPongDataBroker(), deviceTransactionManager, openRoadmInterfaces); - requestProcessor = new RequestProcessor(lightyServices.getControllerBindingPingPongDataBroker()); + public TransportPCEImpl(LightyServices lightyServices, boolean activateNbiNotification) { + LOG.info("Initializing transaction providers ..."); + deviceTransactionManager = new DeviceTransactionManagerImpl(lightyServices.getBindingMountPointService(), + MAX_DURATION_TO_SUBMIT_TRANSACTION); + RequestProcessor requestProcessor = new RequestProcessor(lightyServices.getBindingDataBroker()); networkTransaction = new NetworkTransactionImpl(requestProcessor); - portMappingVersion121 = new PortMappingVersion121(lightyServices.getControllerBindingPingPongDataBroker(), deviceTransactionManager, openRoadmInterfaces); - portMapping = new PortMappingImpl(lightyServices.getControllerBindingPingPongDataBroker(), portMappingVersion221, portMappingVersion121); - crossConnectImpl121 = new CrossConnectImpl121(deviceTransactionManager); - crossConnectImpl221 = new CrossConnectImpl221(deviceTransactionManager); - crossConnect = new CrossConnectImpl(deviceTransactionManager, mappingUtils, crossConnectImpl121, crossConnectImpl221); - fixedFlex = new FixedFlexImpl(); - - LOG.info("Creating PCE beans ..."); - pathComputationService = new PathComputationServiceImpl(networkTransaction, lightyServices.getControllerBindingNotificationPublishService()); - pceProvider = new PceProvider(lightyServices.getControllerRpcProviderRegistry(), pathComputationService); LOG.info("Creating network-model beans ..."); - openRoadmTopology22 = new OpenRoadmTopology22(networkTransaction, deviceTransactionManager); - openRoadmFactory = new OpenRoadmFactory(mappingUtils, openRoadmTopology22); - linkDiscoveryImpl = new R2RLinkDiscovery(lightyServices.getControllerBindingPingPongDataBroker(), deviceTransactionManager, openRoadmFactory, networkTransaction); - networkutilsServiceImpl = new NetworkUtilsImpl(lightyServices.getControllerBindingPingPongDataBroker(), openRoadmFactory); - networkModelService = new NetworkModelServiceImpl(networkTransaction, linkDiscoveryImpl, deviceTransactionManager, openRoadmFactory, portMapping); - netConfTopologyListener = new NetConfTopologyListener(networkModelService, lightyServices.getControllerBindingPingPongDataBroker(), deviceTransactionManager); - networkModelProvider = new NetworkModelProvider(networkTransaction, lightyServices.getControllerBindingPingPongDataBroker(), lightyServices.getControllerRpcProviderRegistry(), networkutilsServiceImpl, netConfTopologyListener, openRoadmFactory); + R2RLinkDiscovery linkDiscoveryImpl = new R2RLinkDiscovery(lightyServices.getBindingDataBroker(), + deviceTransactionManager, networkTransaction); + TransportpceNetworkutilsService networkutilsServiceImpl = new NetworkUtilsImpl( + lightyServices.getBindingDataBroker()); + MappingUtils mappingUtils = new MappingUtilsImpl(lightyServices.getBindingDataBroker()); + OpenRoadmInterfaces openRoadmInterfaces = initOpenRoadmInterfaces(mappingUtils); + PortMapping portMapping = initPortMapping(lightyServices, openRoadmInterfaces); + NetworkModelService networkModelService = new NetworkModelServiceImpl(networkTransaction, linkDiscoveryImpl, + portMapping, lightyServices.getBindingNotificationPublishService()); + FrequenciesService networkModelWavelengthService = + new FrequenciesServiceImpl(lightyServices.getBindingDataBroker()); + NetConfTopologyListener netConfTopologyListener = new NetConfTopologyListener(networkModelService, + lightyServices.getBindingDataBroker(), deviceTransactionManager, portMapping); + PortMappingListener portMappingListener = new PortMappingListener(networkModelService); + networkModelProvider = new NetworkModelProvider(networkTransaction, lightyServices.getBindingDataBroker(), + lightyServices.getRpcProviderService(), networkutilsServiceImpl, netConfTopologyListener, + lightyServices.getNotificationService(), networkModelWavelengthService, portMappingListener); + + LOG.info("Creating PCE beans ..."); + // TODO: pass those parameters through command line + GnpyConsumer gnpyConsumer = new GnpyConsumerImpl("http://127.0.0.1:8008", + "gnpy", "gnpy", lightyServices.getAdapterContext().currentSerializer()); + PathComputationService pathComputationService = new PathComputationServiceImpl( + networkTransaction, + lightyServices.getBindingNotificationPublishService(), + gnpyConsumer, + portMapping + ); + pceProvider = new PceProvider(lightyServices.getRpcProviderService(), pathComputationService); LOG.info("Creating OLM beans ..."); - powerMgmt = new PowerMgmtImpl(lightyServices.getControllerBindingPingPongDataBroker(), openRoadmInterfaces, crossConnect, deviceTransactionManager); - olmPowerService = new OlmPowerServiceImpl(lightyServices.getControllerBindingPingPongDataBroker(), powerMgmt, deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces); - olmProvider = new OlmProvider(lightyServices.getControllerRpcProviderRegistry(), olmPowerService); - olmPowerServiceRpc = new OlmPowerServiceRpcImpl(olmPowerService); + CrossConnect crossConnect = initCrossConnect(mappingUtils); + PowerMgmt powerMgmt = new PowerMgmtImpl(lightyServices.getBindingDataBroker(), openRoadmInterfaces, + crossConnect, deviceTransactionManager); + OlmPowerService olmPowerService = new OlmPowerServiceImpl(lightyServices.getBindingDataBroker(), powerMgmt, + deviceTransactionManager, portMapping, mappingUtils, openRoadmInterfaces); + olmProvider = new OlmProvider(lightyServices.getRpcProviderService(), olmPowerService); + TransportpceOlmService olmPowerServiceRpc = new OlmPowerServiceRpcImpl(olmPowerService); LOG.info("Creating renderer beans ..."); - openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces); - openRoadmInterface22 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces, fixedFlex); - openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(mappingUtils, openRoadmInterface121, openRoadmInterface22); - deviceRendererService = new DeviceRendererServiceImpl(lightyServices.getControllerBindingPingPongDataBroker(), deviceTransactionManager, openRoadmInterfaceFactory, openRoadmInterfaces, crossConnect, portMapping); - deviceRendererRPC = new DeviceRendererRPCImpl(deviceRendererService); - networkModelWavelengthService = new NetworkModelWavelengthServiceImpl(lightyServices.getControllerBindingPingPongDataBroker()); - rendererServiceOperations = new RendererServiceOperationsImpl(deviceRendererService, olmPowerServiceRpc, lightyServices.getControllerBindingPingPongDataBroker(), networkModelWavelengthService, lightyServices.getControllerBindingNotificationPublishService()); - rendererProvider = new RendererProvider(lightyServices.getControllerRpcProviderRegistry(), deviceRendererRPC, rendererServiceOperations); + OpenRoadmInterfaceFactory openRoadmInterfaceFactory = initOpenRoadmFactory(mappingUtils, openRoadmInterfaces, + portMapping); + DeviceRendererService deviceRendererService = new DeviceRendererServiceImpl( + lightyServices.getBindingDataBroker(), deviceTransactionManager, openRoadmInterfaceFactory, + openRoadmInterfaces, crossConnect, portMapping, networkModelService); + OtnDeviceRendererService otnDeviceRendererService = new OtnDeviceRendererServiceImpl(openRoadmInterfaceFactory, + crossConnect, openRoadmInterfaces, deviceTransactionManager, networkModelService); + rendererProvider = initRenderer(lightyServices, olmPowerServiceRpc, deviceRendererService, + otnDeviceRendererService); LOG.info("Creating service-handler beans ..."); - servicehandlerProvider = new ServicehandlerProvider(lightyServices.getControllerBindingPingPongDataBroker(), lightyServices.getControllerRpcProviderRegistry(), lightyServices.getControllerBindingNotificationService(), - pathComputationService, rendererServiceOperations, networkModelWavelengthService, lightyServices.getControllerBindingNotificationPublishService()); - + RendererServiceOperations rendererServiceOperations = new RendererServiceOperationsImpl(deviceRendererService, + otnDeviceRendererService, olmPowerServiceRpc, lightyServices.getBindingDataBroker(), + lightyServices.getBindingNotificationPublishService()); + ServiceDataStoreOperations serviceDataStoreOperations = new ServiceDataStoreOperationsImpl( + lightyServices.getBindingDataBroker()); + RendererListenerImpl rendererListenerImpl = new RendererListenerImpl(pathComputationService, + lightyServices.getBindingNotificationPublishService()); + PceListenerImpl pceListenerImpl = new PceListenerImpl(rendererServiceOperations, pathComputationService, + lightyServices.getBindingNotificationPublishService(), serviceDataStoreOperations); + NetworkModelListenerImpl networkModelListenerImpl = new NetworkModelListenerImpl( + lightyServices.getBindingNotificationPublishService(), serviceDataStoreOperations); + ServicehandlerImpl servicehandler = new ServicehandlerImpl(lightyServices.getBindingDataBroker(), + pathComputationService, rendererServiceOperations, lightyServices.getBindingNotificationPublishService(), + pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, serviceDataStoreOperations, "N/A"); + servicehandlerProvider = new ServicehandlerProvider(lightyServices.getBindingDataBroker(), + lightyServices.getRpcProviderService(), lightyServices.getNotificationService(), + serviceDataStoreOperations, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, + servicehandler); + tapiProvider = initTapi(lightyServices, servicehandler); + if (activateNbiNotification) { + LOG.info("Creating nbi-notifications beans ..."); + nbiNotificationsProvider = new NbiNotificationsProvider( + publisherTopicList, null, null, lightyServices.getRpcProviderService(), + lightyServices.getNotificationService(), lightyServices.getAdapterContext().currentSerializer()); + } } @Override protected boolean initProcedure() { - LOG.info("Initializing common beans ..."); - LOG.info("Initializing PCE beans ..."); - pathComputationService.init(); + LOG.info("Initializing PCE provider ..."); pceProvider.init(); - LOG.info("Initializing network-model beans ..."); + LOG.info("Initializing network-model provider ..."); networkModelProvider.init(); - LOG.info("Initializing OLM beans ..."); - olmPowerService.init(); + LOG.info("Initializing OLM provider ..."); olmProvider.init(); - LOG.info("Initializing renderer beans ..."); + LOG.info("Initializing renderer provider ..."); rendererProvider.init(); - LOG.info("Initializing service-handler beans ..."); + LOG.info("Initializing service-handler provider ..."); servicehandlerProvider.init(); + LOG.info("Initializing tapi provider ..."); + tapiProvider.init(); + if(nbiNotificationsProvider != null) { + LOG.info("Initializing nbi-notifications provider ..."); + nbiNotificationsProvider.init(); + } LOG.info("Init done."); return true; } @Override protected boolean stopProcedure() { - LOG.info("Shutting down service-handler beans ..."); + nbiNotificationsProvider.close(); + LOG.info("Shutting down nbi-notifications provider ..."); + tapiProvider.close(); + LOG.info("Shutting down service-handler provider ..."); servicehandlerProvider.close(); - LOG.info("Shutting down renderer beans ..."); + LOG.info("Shutting down renderer provider ..."); rendererProvider.close(); - LOG.info("Shutting down OLM beans ..."); + LOG.info("Shutting down OLM provider ..."); olmProvider.close(); - olmPowerService.close(); - LOG.info("Shutting down network-model beans ..."); + LOG.info("Shutting down network-model provider ..."); networkModelProvider.close(); - LOG.info("Shutting down PCE beans ..."); - pathComputationService.close(); + LOG.info("Shutting down PCE provider ..."); pceProvider.close(); - LOG.info("Shutting down common beans ..."); + LOG.info("Shutting down transaction providers ..."); networkTransaction.close(); deviceTransactionManager.preDestroy(); LOG.info("Shutdown done."); return true; } + /** + * Init tapi provider beans. + * + * @param lightyServices LightyServices + * @param rendererServiceOperations RendererServiceOperations + * @return TapiProvider instance + */ + private TapiProvider initTapi(LightyServices lightyServices, OrgOpenroadmServiceService servicehandler) { + return new TapiProvider(lightyServices.getBindingDataBroker(), lightyServices.getRpcProviderService(), + servicehandler, new TapiListener()); + } + + /** + * Init renderer provider beans. + * + * @param lightyServices LightyServices + * @param olmPowerServiceRpc TransportpceOlmService + * @param deviceRendererService DeviceRendererService + * @param otnDeviceRendererService OtnDeviceRendererService + * @return RendererProvider instance + */ + private RendererProvider initRenderer(LightyServices lightyServices, TransportpceOlmService olmPowerServiceRpc, + DeviceRendererService deviceRendererService, OtnDeviceRendererService otnDeviceRendererService) { + DeviceRendererRPCImpl deviceRendererRPC = new DeviceRendererRPCImpl(deviceRendererService, + otnDeviceRendererService); + RendererServiceOperationsImpl rendererServiceOperations = new RendererServiceOperationsImpl( + deviceRendererService, otnDeviceRendererService, olmPowerServiceRpc, + lightyServices.getBindingDataBroker(), lightyServices.getBindingNotificationPublishService()); + return new RendererProvider(lightyServices.getRpcProviderService(), deviceRendererRPC, + rendererServiceOperations); + } + + /** + * Init OpenRoadmInterfaceFactory. + * + * @param mappingUtils MappingUtils + * @param openRoadmInterfaces OpenRoadmInterfaces + * @param portMapping PortMapping + * @return OpenRoadmInterfaceFactory instance + */ + private OpenRoadmInterfaceFactory initOpenRoadmFactory(MappingUtils mappingUtils, + OpenRoadmInterfaces openRoadmInterfaces, PortMapping portMapping) { + OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces); + OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces); + OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces); + OpenRoadmOtnInterface221 openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping, + openRoadmInterfaces); + return new OpenRoadmInterfaceFactory(mappingUtils, openRoadmInterface121, openRoadmInterface221, + openRoadmInterface710, openRoadmOtnInterface221); + } + + /** + * Init PortMapping. + * + * @param lightyServices LightyServices + * @param openRoadmInterfaces OpenRoadmInterfaces + * @return PortMapping instance + */ + private PortMapping initPortMapping(LightyServices lightyServices, OpenRoadmInterfaces openRoadmInterfaces) { + PortMappingVersion710 portMappingVersion710 = new PortMappingVersion710(lightyServices.getBindingDataBroker(), + deviceTransactionManager, openRoadmInterfaces); + PortMappingVersion221 portMappingVersion221 = new PortMappingVersion221(lightyServices.getBindingDataBroker(), + deviceTransactionManager, openRoadmInterfaces); + PortMappingVersion121 portMappingVersion121 = new PortMappingVersion121(lightyServices.getBindingDataBroker(), + deviceTransactionManager, openRoadmInterfaces); + return new PortMappingImpl(lightyServices.getBindingDataBroker(), portMappingVersion710, + portMappingVersion221, portMappingVersion121); + } + + /** + * Init OpenRoadmInterfaces. + * + * @param mappingUtils MappingUtils + * @return OpenRoadmInterfaces instance + */ + private OpenRoadmInterfaces initOpenRoadmInterfaces(MappingUtils mappingUtils) { + OpenRoadmInterfacesImpl121 openRoadmInterfacesImpl121 = new OpenRoadmInterfacesImpl121( + deviceTransactionManager); + OpenRoadmInterfacesImpl221 openRoadmInterfacesImpl221 = new OpenRoadmInterfacesImpl221( + deviceTransactionManager); + OpenRoadmInterfacesImpl710 openRoadmInterfacesImpl710 = new OpenRoadmInterfacesImpl710( + deviceTransactionManager); + return new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils, openRoadmInterfacesImpl121, + openRoadmInterfacesImpl221, openRoadmInterfacesImpl710); + } + + /** + * Init CrossConnect. + * + * @param mappingUtils MappingUtils + * @return CrossConnect instance + */ + private CrossConnect initCrossConnect(MappingUtils mappingUtils) { + CrossConnectImpl121 crossConnectImpl121 = new CrossConnectImpl121(deviceTransactionManager); + CrossConnectImpl221 crossConnectImpl221 = new CrossConnectImpl221(deviceTransactionManager); + return new CrossConnectImpl(deviceTransactionManager, mappingUtils, crossConnectImpl121, crossConnectImpl221); + } }