+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.sal.compatibility
-
-import java.util.Arrays
-import java.util.Dictionary
-import java.util.Hashtable
-import org.apache.felix.dm.Component
-import org.opendaylight.controller.clustering.services.IClusterGlobalServices
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker
-import org.opendaylight.controller.sal.compatibility.adsal.DataPacketServiceAdapter
-import org.opendaylight.controller.sal.compatibility.topology.TopologyAdapter
-import org.opendaylight.controller.sal.compatibility.topology.TopologyProvider
-import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase
-import org.opendaylight.controller.sal.core.Node
-import org.opendaylight.controller.sal.core.NodeConnector
-import org.opendaylight.controller.sal.discovery.IDiscoveryService
-import org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService
-import org.opendaylight.controller.sal.flowprogrammer.IPluginOutFlowProgrammerService
-import org.opendaylight.controller.sal.inventory.IPluginInInventoryService
-import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService
-import org.opendaylight.controller.sal.packet.IPluginInDataPacketService
-import org.opendaylight.controller.sal.packet.IPluginOutDataPacketService
-import org.opendaylight.controller.sal.reader.IPluginInReadService
-import org.opendaylight.controller.sal.reader.IPluginOutReadService
-import org.opendaylight.controller.sal.topology.IPluginInTopologyService
-import org.opendaylight.controller.sal.topology.IPluginOutTopologyService
-import org.opendaylight.controller.sal.utils.GlobalConstants
-import org.opendaylight.controller.sal.utils.INodeConnectorFactory
-import org.opendaylight.controller.sal.utils.INodeFactory
-import org.osgi.framework.BundleContext
-
-import static org.opendaylight.controller.sal.compatibility.NodeMapping.*
-
-class ComponentActivator extends ComponentActivatorAbstractBase {
-
- private BundleContext context;
-
- @Property
- FlowProgrammerAdapter flow = new FlowProgrammerAdapter;
-
- @Property
- InventoryAndReadAdapter inventory = new InventoryAndReadAdapter;
-
- @Property
- DataPacketAdapter dataPacket = new DataPacketAdapter;
-
- @Property
- INodeFactory nodeFactory = new MDSalNodeFactory
-
- @Property
- INodeConnectorFactory nodeConnectorFactory = new MDSalNodeConnectorFactory
-
- @Property
- TopologyAdapter topology = new TopologyAdapter
-
- @Property
- TopologyProvider tpProvider = new TopologyProvider()
-
- @Property
- DataPacketServiceAdapter dataPacketService = new DataPacketServiceAdapter()
-
-
-
- override protected init() {
- Node.NodeIDType.registerIDType(MD_SAL_TYPE, String);
- NodeConnector.NodeConnectorIDType.registerIDType(MD_SAL_TYPE, String, MD_SAL_TYPE);
- }
-
- override start(BundleContext context) {
- super.start(context)
- this.context = context;
- }
-
- def setBroker(BindingAwareBroker broker) {
- broker.registerProvider(new SalCompatibilityProvider(this), context)
- }
-
-
- override protected getGlobalImplementations() {
- return Arrays.asList(this, flow, inventory, dataPacket, nodeFactory, nodeConnectorFactory,topology,tpProvider)
- }
-
- override protected configureGlobalInstance(Component c, Object imp) {
- configure(imp, c);
- }
-
- override protected getImplementations() {
- return Arrays.asList(dataPacketService)
- }
-
- override protected configureInstance(Component c, Object imp, String containerName) {
- instanceConfigure(imp, c, containerName);
- }
-
- private def dispatch configure(MDSalNodeFactory imp, Component it) {
- setInterface(INodeFactory.name, properties);
- }
-
- private def dispatch configure(MDSalNodeConnectorFactory imp, Component it) {
- setInterface(INodeConnectorFactory.name, properties);
- }
-
- private def dispatch configure(ComponentActivator imp, Component it) {
- add(
- createServiceDependency().setService(BindingAwareBroker) //
- .setCallbacks("setBroker", "setBroker") //
- .setRequired(true))
-
-
- }
-
- private def dispatch configure(DataPacketAdapter imp, Component it) {
- add(
- createServiceDependency() //
- .setService(IPluginOutDataPacketService) //
- .setCallbacks("setDataPacketPublisher", "setDataPacketPublisher") //
- .setRequired(false))
- }
-
- private def dispatch configure(FlowProgrammerAdapter imp, Component it) {
- setInterface(IPluginInFlowProgrammerService.name, properties)
- add(
- createServiceDependency() //
- .setService(IPluginOutFlowProgrammerService) //
- .setCallbacks("setFlowProgrammerPublisher", "setFlowProgrammerPublisher") //
- .setRequired(false))
-
- add(
- createServiceDependency() //
- .setService(IClusterGlobalServices) //
- .setCallbacks("setClusterGlobalServices", "unsetClusterGlobalServices") //
- .setRequired(false))
-
- }
-
- private def dispatch instanceConfigure(DataPacketServiceAdapter imp, Component it, String containerName) {
- setInterface(IPluginInDataPacketService.name, properties)
- }
-
- private def dispatch instanceConfigure(ComponentActivator imp, Component it, String containerName) {
- }
-
-
- private def dispatch configure(InventoryAndReadAdapter imp, Component it) {
- setInterface(Arrays.asList(IPluginInInventoryService.name, IPluginInReadService.name), properties)
- add(
- createServiceDependency() //
- .setService(IPluginOutReadService) //
- .setCallbacks("setReadPublisher", "unsetReadPublisher") //
- .setRequired(false))
- add(
- createServiceDependency() //
- .setService(IPluginOutInventoryService) //
- .setCallbacks("setInventoryPublisher", "unsetInventoryPublisher") //
- .setRequired(false))
- add(
- createServiceDependency() //
- .setService(IDiscoveryService) //
- .setCallbacks("setDiscoveryPublisher", "setDiscoveryPublisher") //
- .setRequired(false))
-
-
- }
-
- private def dispatch configure (TopologyAdapter imp, Component it) {
- setInterface(Arrays.asList(IPluginInTopologyService.name), properties)
- add(
- createServiceDependency() //
- .setService(IPluginOutTopologyService) //
- .setCallbacks("setTopologyPublisher", "setTopologyPublisher") //
- .setRequired(false))
- }
-
- private def dispatch configure (TopologyProvider imp, Component it) {
- add(
- createServiceDependency() //
- .setService(IPluginOutTopologyService) //
- .setCallbacks("setTopologyPublisher", "setTopologyPublisher") //
- .setRequired(false))
- }
-
- private def Dictionary<String, Object> properties() {
- val props = new Hashtable<String, Object>();
- props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString, MD_SAL_TYPE)
- props.put("protocolName", MD_SAL_TYPE);
- return props;
- }
-}