From 5f55609cfda935a269e29e5bcdd477e11191d5c4 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 27 May 2015 17:00:07 +0200 Subject: [PATCH] Instantiate faster RpcServiceInvokers Now that we have the SchemaPath->Method mapping available and RpcServiceInvoker can instantiate efficient invokers based on the QName->Method mapping, switch over to them by creating an intermediate map. Change-Id: If5e17924d9deb494045965578cfcec6d321d04d2 Signed-off-by: Robert Varga (cherry picked from commit 0aedb207da64e63900e2dbc85ba2a030ea7800e4) --- .../binding/impl/BindingDOMRpcImplementationAdapter.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcImplementationAdapter.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcImplementationAdapter.java index c81cce5a4b..2023840e97 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcImplementationAdapter.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingDOMRpcImplementationAdapter.java @@ -14,7 +14,9 @@ import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.JdkFutureAdapters; import com.google.common.util.concurrent.ListenableFuture; import java.lang.reflect.Method; +import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; @@ -47,7 +49,12 @@ public class BindingDOMRpcImplementationAdapter implements DOMRpcImplementation this.invoker = SERVICE_INVOKERS.get(type, new Callable() { @Override public RpcServiceInvoker call() { - return RpcServiceInvoker.from(type); + final Map map = new HashMap<>(); + for (Entry e : localNameToMethod.entrySet()) { + map.put(e.getKey().getLastComponent(), e.getValue()); + } + + return RpcServiceInvoker.from(map); } }); } catch (ExecutionException e) { -- 2.36.6