X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fimpl%2Fconnect%2Fdom%2FBindingIndependentMountPointForwarder.java;fp=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fimpl%2Fconnect%2Fdom%2FBindingIndependentMountPointForwarder.java;h=0000000000000000000000000000000000000000;hb=b52d627667c8ce6475f4763bbac12b09740eb587;hp=7b94845e8cd7e20903fc38cf312985ec11c950f9;hpb=ab26d9cc92e2ab41016e473c469dfdef885ecf6c;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentMountPointForwarder.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentMountPointForwarder.java deleted file mode 100644 index 7b94845e8c..0000000000 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentMountPointForwarder.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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.binding.impl.connect.dom; - -import java.util.concurrent.ConcurrentMap; - -import org.opendaylight.controller.sal.binding.api.mount.MountProviderInstance; -import org.opendaylight.controller.sal.binding.api.mount.MountProviderService; -import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; -import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException; -import org.opendaylight.controller.sal.core.api.mount.MountProvisionInstance; -import org.opendaylight.controller.sal.core.api.mount.MountProvisionService; -import org.opendaylight.controller.sal.core.api.mount.MountProvisionService.MountProvisionListener; -import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -public class BindingIndependentMountPointForwarder { - - private MountProvisionService domMountService; - private MountProviderService baMountService; - private BindingIndependentMappingService mappingService; - - private final DomMountPointForwardingManager domForwardingManager = new DomMountPointForwardingManager(); - private final BindingMountPointForwardingManager bindingForwardingManager = new BindingMountPointForwardingManager(); - - private ConcurrentMap, BindingIndependentConnector> connectors; - private ConcurrentMap, org.opendaylight.yangtools.yang.data.api.InstanceIdentifier> forwarded; - private ListenerRegistration domListenerRegistration; - private ListenerRegistration baListenerRegistration; - - public MountProvisionService getDomMountService() { - return domMountService; - } - - public void setDomMountService(MountProvisionService domMountService) { - this.domMountService = domMountService; - } - - public void start() { - if(domMountService != null && baMountService != null) { - domListenerRegistration = domMountService.registerProvisionListener(domForwardingManager); - baListenerRegistration = baMountService.registerProvisionListener(bindingForwardingManager); - } - } - - private void tryToDeployConnector(InstanceIdentifier baPath, - org.opendaylight.yangtools.yang.data.api.InstanceIdentifier biPath) { - org.opendaylight.yangtools.yang.data.api.InstanceIdentifier previous = forwarded.putIfAbsent(baPath, biPath); - if(previous != null) { - return; - } - MountProviderInstance baMountPoint = baMountService.getMountPoint(baPath); - MountProvisionInstance domMountPoint = domMountService.getMountPoint(biPath); - BindingIndependentConnector connector = createForwarder(baPath, baMountPoint, domMountPoint); - connectors.put(baPath, connector); - connector.startDataForwarding(); - connector.startRpcForwarding(); - connector.startNotificationForwarding(); - } - - private BindingIndependentConnector createForwarder(InstanceIdentifier path, MountProviderInstance baMountPoint, - MountProvisionInstance domMountPoint) { - BindingIndependentConnector connector = new BindingIndependentConnector(); - - connector.setBindingDataService(baMountPoint); - connector.setBindingRpcRegistry(baMountPoint); - //connector.setBindingNotificationBroker(baMountPoint); - - connector.setDomDataService(domMountPoint); - connector.setDomRpcRegistry(domMountPoint); - //connector.setDomNotificationBroker(domMountPoint); - return connector; - } - - public synchronized void tryToDeployDomForwarder(org.opendaylight.yangtools.yang.data.api.InstanceIdentifier domPath) { - InstanceIdentifier baPath; - try { - baPath = mappingService.fromDataDom(domPath); - BindingIndependentConnector potentialConnector = connectors.get(baPath); - if(potentialConnector != null) { - return; - } - tryToDeployConnector(baPath,domPath); - } catch (DeserializationException e) { - - } - } - - public synchronized void tryToDeployBindingForwarder(InstanceIdentifier baPath) { - BindingIndependentConnector potentialConnector =connectors.get(baPath); - if(potentialConnector != null) { - return; - } - org.opendaylight.yangtools.yang.data.api.InstanceIdentifier domPath = mappingService.toDataDom(baPath); - tryToDeployConnector(baPath, domPath); - } - - public synchronized void undeployBindingForwarder(InstanceIdentifier baPath) { - // FIXME: Implement closeMountPoint - } - - public synchronized void undeployDomForwarder(org.opendaylight.yangtools.yang.data.api.InstanceIdentifier biPath) { - // FIXME: Implement closeMountPoint - } - - private class DomMountPointForwardingManager implements MountProvisionListener { - - @Override - public void onMountPointCreated(org.opendaylight.yangtools.yang.data.api.InstanceIdentifier path) { - tryToDeployDomForwarder(path); - } - - @Override - public void onMountPointRemoved(org.opendaylight.yangtools.yang.data.api.InstanceIdentifier path) { - undeployDomForwarder(path); - } - } - - private class BindingMountPointForwardingManager implements - org.opendaylight.controller.sal.binding.api.mount.MountProviderService.MountProvisionListener { - - @Override - public void onMountPointCreated(InstanceIdentifier path) { - tryToDeployBindingForwarder(path); - } - - @Override - public void onMountPointRemoved(InstanceIdentifier path) { - undeployBindingForwarder(path); - } - } -}