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%2FDomToBindingRpcForwarder.java;h=6be5f2d481515c1dd0b6fb140ff63fdf2e9d019b;hb=9cd4e7995210f8381892004373acc71c8b3ae7af;hp=620290c9fa2593389ef1bbf0bc9473cc7126f6f2;hpb=7e1d2b4f9e138e9e31b7fa60d69c9d13bafc9728;p=controller.git 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 620290c9fa..6be5f2d481 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 @@ -8,6 +8,7 @@ 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; + import java.lang.ref.WeakReference; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -17,6 +18,7 @@ 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; @@ -25,14 +27,13 @@ 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.binding.BindingMapping; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; @@ -57,34 +58,34 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { private final RpcProviderRegistry baRpcRegistry; private final RpcProviderRegistryImpl baRpcRegistryImpl; - private final Function, org.opendaylight.yangtools.yang.data.api.InstanceIdentifier> toDOMInstanceIdentifier; + private final Function, org.opendaylight.yangtools.yang.data.api.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); } } public DomToBindingRpcForwarder(final Class service, final BindingIndependentMappingService mappingService, - final RpcProvisionRegistry biRpcRegistry, final RpcProviderRegistry baRpcRegistry) { + final RpcProvisionRegistry biRpcRegistry, final RpcProviderRegistry baRpcRegistry, final RpcProviderRegistryImpl registryImpl) { this.rpcServiceType = new WeakReference>(service); this.supportedRpcs = mappingService.getRpcQNamesFor(service); - toDOMInstanceIdentifier = new Function, org.opendaylight.yangtools.yang.data.api.InstanceIdentifier>() { + toDOMInstanceIdentifier = new Function, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier>() { @Override - public org.opendaylight.yangtools.yang.data.api.InstanceIdentifier apply(final InstanceIdentifier input) { + public org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier apply(final InstanceIdentifier input) { return mappingService.toDataDom(input); } }; this.biRpcRegistry = biRpcRegistry; this.baRpcRegistry = baRpcRegistry; - baRpcRegistryImpl = (RpcProviderRegistryImpl) baRpcRegistry; + this.baRpcRegistryImpl = registryImpl; Class cls = rpcServiceType.get(); ClassLoader clsLoader = cls.getClassLoader(); @@ -93,15 +94,16 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { } /** - * Constructor for Routed RPC Forwareder. + * Constructor for Routed RPC Forwarder. * * @param service * @param context + * @param registryImpl */ public DomToBindingRpcForwarder(final Class service, final Class context, final BindingIndependentMappingService mappingService, - final RpcProvisionRegistry biRpcRegistry, final RpcProviderRegistry baRpcRegistry) { - this(service, mappingService, biRpcRegistry, baRpcRegistry); + final RpcProvisionRegistry biRpcRegistry, final RpcProviderRegistry baRpcRegistry, final RpcProviderRegistryImpl registryImpl) { + this(service, mappingService, biRpcRegistry, baRpcRegistry,registryImpl); final ImmutableSet.Builder registrationsBuilder = ImmutableSet.builder(); try { @@ -160,7 +162,7 @@ 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.InstanceIdentifier path : FluentIterable.from(set).transform( + 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) { reg.registerPath(ctx, path); @@ -186,7 +188,7 @@ 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.InstanceIdentifier path : FluentIterable.from(set).transform( + 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) { reg.unregisterPath(ctx, path);