From d6f47196e5510f895b3e2b3d00b46195d09f8fec Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 1 Oct 2018 18:50:17 +0200 Subject: [PATCH] Use a dedicated no-op listener class This saves a few bytes per session by not retaining anything but the listener implementation. Change-Id: I629c0bbd686ec734f36d8e8d307df3f1f733fa1c Signed-off-by: Robert Varga (cherry picked from commit cf5c624854874f3603b20d296233485b37b99abd) --- .../connect/netconf/sal/NetconfDeviceRpc.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java index 425d6852a5..cf3d2c3bd9 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java @@ -80,20 +80,28 @@ public final class NetconfDeviceRpc implements DOMRpcService { @Override public ListenerRegistration registerRpcListener( @Nonnull final T listener) { - listener.onRpcAvailable(Collections2.transform(schemaContext.getOperations(), input -> DOMRpcIdentifier.create(input.getPath()))); - return new ListenerRegistration() { - @Override - public void close() { - // NOOP, no rpcs appear and disappear in this implementation - } + return new NoOpListenerRegistration<>(listener); + } - @Override - public T getInstance() { - return listener; - } - }; + private static final class NoOpListenerRegistration + implements ListenerRegistration { + private final T listener; + + NoOpListenerRegistration(final T listener) { + this.listener = requireNonNull(listener); + } + + @Override + public T getInstance() { + return listener; + } + + @Override + public void close() { + // NOOP, no rpcs appear and disappear in this implementation + } } } -- 2.36.6