X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fimpl%2Fconnect%2Fdom%2FDomToBindingRpcForwarder.java;h=9bff0e96091acbee48d28b022c5962e2dcdb238f;hp=ab6d56c15a5bdb696f5cb136965519206f40ef79;hb=159881b2b1c44301f740a6d20199df58eea04851;hpb=de3e413b633b7555ae8f3fe2ec163dbb7dda5da8 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java index ab6d56c15a..9bff0e9609 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java @@ -2,7 +2,11 @@ package org.opendaylight.controller.sal.binding.impl.connect.dom; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; - +import com.google.common.base.Function; +import com.google.common.collect.Collections2; +import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import java.lang.ref.WeakReference; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -12,42 +16,36 @@ import java.util.Map; import java.util.Set; import java.util.WeakHashMap; import java.util.concurrent.Callable; - import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; import org.opendaylight.controller.sal.binding.api.rpc.RpcRouter; import org.opendaylight.controller.sal.binding.impl.RpcProviderRegistryImpl; -import org.opendaylight.controller.sal.core.api.Broker; +import org.opendaylight.controller.sal.core.api.Broker.RoutedRpcRegistration; import org.opendaylight.controller.sal.core.api.RpcImplementation; import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; import org.opendaylight.yangtools.concepts.CompositeObjectRegistration; import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.binding.BaseIdentity; import org.opendaylight.yangtools.yang.binding.BindingMapping; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.RpcService; import org.opendaylight.yangtools.yang.binding.util.BindingReflections; -import org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Function; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { private final Logger LOG = LoggerFactory.getLogger(DomToBindingRpcForwarder.class); private final Set supportedRpcs; private final WeakReference> rpcServiceType; - private Set registrations; + private Set registrations; private final Map strategiesByQName = new HashMap<>(); private final WeakHashMap strategiesByMethod = new WeakHashMap<>(); private final RpcService proxy; @@ -58,15 +56,15 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { private final RpcProviderRegistry baRpcRegistry; private final RpcProviderRegistryImpl baRpcRegistryImpl; - private final Function, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier> toDOMInstanceIdentifier; + private final Function, YangInstanceIdentifier> toDOMInstanceIdentifier; private final static Method EQUALS_METHOD; static { try { EQUALS_METHOD = Object.class.getMethod("equals", Object.class); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (NoSuchMethodException | SecurityException e) { + throw new ExceptionInInitializerError(e); } } @@ -75,10 +73,9 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { this.rpcServiceType = new WeakReference>(service); this.supportedRpcs = mappingService.getRpcQNamesFor(service); - toDOMInstanceIdentifier = new Function, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier>() { - + this.toDOMInstanceIdentifier = new Function, YangInstanceIdentifier>() { @Override - public org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier apply(final InstanceIdentifier input) { + public YangInstanceIdentifier apply(final InstanceIdentifier input) { return mappingService.toDataDom(input); } }; @@ -94,7 +91,7 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { } /** - * Constructor for Routed RPC Forwareder. + * Constructor for Routed RPC Forwarder. * * @param service * @param context @@ -105,7 +102,7 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { final RpcProvisionRegistry biRpcRegistry, final RpcProviderRegistry baRpcRegistry, final RpcProviderRegistryImpl registryImpl) { this(service, mappingService, biRpcRegistry, baRpcRegistry,registryImpl); - final ImmutableSet.Builder registrationsBuilder = ImmutableSet.builder(); + final ImmutableSet.Builder registrationsBuilder = ImmutableSet.builder(); try { for (QName rpc : supportedRpcs) { registrationsBuilder.add(biRpcRegistry.addRoutedRpcImplementation(rpc, this)); @@ -162,9 +159,8 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { public void registerPaths(final Class context, final Class service, final Set> set) { QName ctx = BindingReflections.findQName(context); - for (org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path : FluentIterable.from(set).transform( - toDOMInstanceIdentifier)) { - for (org.opendaylight.controller.sal.core.api.Broker.RoutedRpcRegistration reg : registrations) { + for (YangInstanceIdentifier path : Collections2.transform(set, toDOMInstanceIdentifier)) { + for (RoutedRpcRegistration reg : registrations) { reg.registerPath(ctx, path); } } @@ -188,9 +184,8 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { public void removePaths(final Class context, final Class service, final Set> set) { QName ctx = BindingReflections.findQName(context); - for (org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path : FluentIterable.from(set).transform( - toDOMInstanceIdentifier)) { - for (org.opendaylight.controller.sal.core.api.Broker.RoutedRpcRegistration reg : registrations) { + for (YangInstanceIdentifier path : Collections2.transform(set, toDOMInstanceIdentifier)) { + for (RoutedRpcRegistration reg : registrations) { reg.unregisterPath(ctx, path); } }