Deprecate RpcService 61/102661/16
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 13 Oct 2022 09:17:50 +0000 (11:17 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 24 Nov 2022 17:59:14 +0000 (18:59 +0100)
We have single-RPC generated interfaces, which are easier to use than
the RpcService-based roll-up. This patch deprecates all RPC interfaces
pending their removal.

JIRA: MDSAL-778
Change-Id: Iac537de518725173f21369ab0e04fb44fb0506b7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
29 files changed:
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/RpcConsumerRegistry.java
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/RpcProviderService.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcAdapterRegistration.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcProviderServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingRpcAdapterRegistration.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/CurrentAdapterSerializer.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LegacyDOMRpcImplementationAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/AbstractMappedRpcInvoker.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/LocalNameRpcServiceInvoker.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/QNameRpcServiceInvoker.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/RpcMethodInvoker.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/RpcServiceInvoker.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/osgi/OSGiRpcConsumerRegistry.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/osgi/OSGiRpcProviderService.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcAdapterRegistrationTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingRpcAdapterRegistrationTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LegacyDOMRpcImplementationAdapterTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapterTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/AbstractMappedRpcInvokerTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/LocalNameRpcServiceInvokerTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/QNameRpcServiceInvokerTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/RpcMethodInvokerTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/invoke/RpcServiceInvokerTest.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/RpcServiceGenerator.java
binding/mdsal-binding-model-ri/src/main/java/org/opendaylight/mdsal/binding/model/ri/BindingTypes.java
binding/mdsal-binding-spec-util/src/main/java/org/opendaylight/mdsal/binding/spec/naming/BindingMapping.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/RpcService.java

index 4b9d5a683859294a59e3297965e255d7a64190c4..8dca81db9d561d66eff646464eabd170b62341a5 100644 (file)
@@ -66,7 +66,9 @@ public interface RpcConsumerRegistry extends BindingService {
      * @param serviceInterface the interface of the RPC Service. Typically this is an interface
      *        generated from a YANG model.
      * @return the proxy for the requested RPC service. This method never returns null.
+     * @deprecated Use {@link #getRpc(Class)} instead.
      */
+    @Deprecated(since = "11.0.0", forRemoval = true)
     <S extends RpcService> @NonNull S getRpcService(@NonNull Class<S> serviceInterface);
 
     /**
index 477a96615105b5a01ede4d919cc19ed58a5495c0..8108a14c622fb0bb15e29874bfd9ef6545cf03d4 100644 (file)
@@ -30,7 +30,10 @@ public interface RpcProviderService extends BindingService {
      * @param implementation implementation object
      * @return An {@link ObjectRegistration} controlling unregistration
      * @throws NullPointerException if any argument is {@code null}
+     * @deprecated Use {@link #registerRpcImplementation(Rpc)} or
+     *             {@link #registerRpcImplementations(ClassToInstanceMap)} instead.
      */
+    @Deprecated(since = "11.0.0", forRemoval = true)
     <R extends RpcService, I extends R> @NonNull ObjectRegistration<I> registerRpcImplementation(Class<R> type,
         I implementation);
 
@@ -44,7 +47,10 @@ public interface RpcProviderService extends BindingService {
      * @param paths Datastore paths to service
      * @return An {@link ObjectRegistration} controlling unregistration
      * @throws NullPointerException if any argument is {@code null}
+     * @deprecated Use {@link #registerRpcImplementation(Rpc, Set)} or
+     *             {@link #registerRpcImplementations(ClassToInstanceMap, Set)} instead.
      */
+    @Deprecated(since = "11.0.0", forRemoval = true)
     <R extends RpcService, I extends R> @NonNull ObjectRegistration<I> registerRpcImplementation(Class<R> type,
         I implementation, Set<InstanceIdentifier<?>> paths);
 
index 3f08e58147f0e346915e751cf44c799ae618f329..973d76642c3ee14ab11e60bb32952af44ff70d91 100644 (file)
@@ -11,8 +11,8 @@ import org.opendaylight.mdsal.dom.api.DOMRpcImplementationRegistration;
 import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 class BindingDOMRpcAdapterRegistration<T extends RpcService> extends AbstractObjectRegistration<T> {
-
     private final DOMRpcImplementationRegistration<?> reg;
 
     BindingDOMRpcAdapterRegistration(T instance, DOMRpcImplementationRegistration<?> reg) {
index c4263ee4e8cfee4acca56ea0d8d528f6779725a1..1cbaa454c114ccba858f9c458c82784d079af5e5 100644 (file)
@@ -39,12 +39,14 @@ public class BindingDOMRpcProviderServiceAdapter extends AbstractBindingAdapter<
     }
 
     @Override
+    @Deprecated
     public <R extends RpcService, I extends R> ObjectRegistration<I> registerRpcImplementation(final Class<R> type,
             final I implementation) {
         return register(currentSerializer(), type, implementation, GLOBAL);
     }
 
     @Override
+    @Deprecated
     public <R extends RpcService, I extends R> ObjectRegistration<I> registerRpcImplementation(final Class<R> type,
             final I implementation, final Set<InstanceIdentifier<?>> paths) {
         final var serializer = currentSerializer();
@@ -105,6 +107,7 @@ public class BindingDOMRpcProviderServiceAdapter extends AbstractBindingAdapter<
         return getDelegate().registerRpcImplementations(builder.build());
     }
 
+    @Deprecated
     private <S extends RpcService, T extends S> ObjectRegistration<T> register(
             final CurrentAdapterSerializer serializer, final Class<S> type, final T implementation,
             final Collection<YangInstanceIdentifier> rpcContextPaths) {
index f1d741e9bd8608bf7363af33dd11573f2c8bc5ee..ed5af7ffeb2b68853b0566f6e4c3764852e96cfb 100644 (file)
@@ -38,6 +38,7 @@ public final class BindingDOMRpcServiceAdapter
     }
 
     @Override
+    @Deprecated
     public <T extends RpcService> T getRpcService(final Class<T> rpcService) {
         return rpcService.cast(getAdapter(requireNonNull(rpcService)).facade());
     }
index 3d02212df50f1890b22a19f95aa2f0e879c8caa2..ceb64d8996149decba4d587942cb1a5cc2323710 100644 (file)
@@ -11,8 +11,8 @@ import org.opendaylight.mdsal.dom.api.DOMRpcImplementationRegistration;
 import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 class BindingRpcAdapterRegistration<T extends RpcService> extends AbstractObjectRegistration<T> {
-
     private final DOMRpcImplementationRegistration<?> reg;
 
     BindingRpcAdapterRegistration(T instance, DOMRpcImplementationRegistration<?> reg) {
index 2814b350e477ef4e3bb9bad2b0d66261c1d70769..45fd7a39ab3d401cbf896feaf1ea55552541aef4 100644 (file)
@@ -171,6 +171,7 @@ public final class CurrentAdapterSerializer extends ForwardingBindingDOMCodecSer
         return Map.entry(stack, lastNamespace);
     }
 
+    @Deprecated(since = "11.0.0", forRemoval = true)
     // FIXME: This should be probably part of Binding Runtime context
     ImmutableBiMap<Method, QName> getRpcMethodToQName(final Class<? extends RpcService> key) {
         final Module module = getModule(key);
@@ -200,6 +201,7 @@ public final class CurrentAdapterSerializer extends ForwardingBindingDOMCodecSer
                 + "full BindingRuntimeContext available in trace log", modeledClass, moduleName));
     }
 
+    @Deprecated(since = "11.0.0", forRemoval = true)
     private Method findRpcMethod(final Class<? extends RpcService> key, final RpcDefinition rpcDef)
             throws NoSuchMethodException {
         final var rpcName = rpcDef.getQName();
index 5ca0929f20c3c4bc12133a717d0c492c33130f19..1e90b646e95dd080667203d0d23f0ea0b44c7d85 100644 (file)
@@ -29,6 +29,7 @@ import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 final class LegacyDOMRpcImplementationAdapter extends AbstractDOMRpcImplementationAdapter {
     private static final Cache<Class<?>, RpcServiceInvoker> SERVICE_INVOKERS = CacheBuilder.newBuilder().weakKeys()
             .build();
index 75f98611fecb6228762f9bc6cf4d665b61576197..92bebb884201fc9a8207fb44120e40525558ba0a 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.binding.RpcInput;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.model.api.stmt.RpcEffectiveStatement;
 
+@Deprecated
 final class RpcServiceAdapter extends AbstractRpcAdapter {
     private final ImmutableMap<Method, RpcInvocationStrategy> rpcNames;
 
index 78b6f994356b5778ad3ed80da0c7770046bd3f0a..00d33582c1458a1dc46074455b272701d9575c3c 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 abstract class AbstractMappedRpcInvoker<T> extends RpcServiceInvoker {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractMappedRpcInvoker.class);
 
index 0f1322a7e7aeec33cf7924c8d52a09b7f9e25279..75bffac192fb995e4cc7d4111ab32055fd3181ee 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Map.Entry;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 final class LocalNameRpcServiceInvoker extends AbstractMappedRpcInvoker<String> {
     private final QNameModule module;
 
index 5fd5a2336df9549d30bca188201694abc3d5bbb7..51df73c8de7c66ece1931d27b94ca3cdbb3adb51 100644 (file)
@@ -11,6 +11,7 @@ import java.lang.reflect.Method;
 import java.util.Map;
 import org.opendaylight.yangtools.yang.common.QName;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 final class QNameRpcServiceInvoker extends AbstractMappedRpcInvoker<QName> {
     private QNameRpcServiceInvoker(final Map<QName, Method> qnameToMethod) {
         super(qnameToMethod);
index 8aee04df25e456d75a3c156f34000d8442dc2e80..a66348e9465e065428b7b06a05b6427953763a5f 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 final class RpcMethodInvoker {
     private static final MethodType INVOCATION_SIGNATURE = MethodType.methodType(ListenableFuture.class,
         RpcService.class, DataObject.class);
index 002dc95b1ca76ed17abf3d6c24100256a1e9a63e..3b84e930db4dfcc5eeeb715d234c9bf8afa0a752 100644 (file)
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
  * RPC Service invoker provides common invocation interface for any subtype of {@link RpcService} via
  * {@link #invokeRpc(RpcService, QName, DataObject)} method.
  */
+@Deprecated(since = "11.0.0", forRemoval = true)
 public abstract class RpcServiceInvoker {
     private static final Logger LOG = LoggerFactory.getLogger(RpcServiceInvoker.class);
 
index 2a41454d9fa95e3339ac23ac4086472b4c218ad7..f2c006f4c92176d0c5ef10c681c5352468afc4cc 100644 (file)
@@ -33,6 +33,7 @@ public final class OSGiRpcConsumerRegistry extends AbstractAdaptedService<RpcCon
     }
 
     @Override
+    @Deprecated
     public <T extends RpcService> T getRpcService(final Class<T> serviceInterface) {
         return delegate().getRpcService(serviceInterface);
     }
index 8ad1d21fab6ecf65aa03fa9bbeb4bbe99d5a9f39..d1f6880944c070afa7d5c0653b36208a61ee49ba 100644 (file)
@@ -33,12 +33,14 @@ public final class OSGiRpcProviderService extends AbstractAdaptedService<RpcProv
     }
 
     @Override
+    @Deprecated
     public <R extends RpcService, I extends R> ObjectRegistration<I> registerRpcImplementation(final Class<R> type,
             final I implementation) {
         return delegate().registerRpcImplementation(type, implementation);
     }
 
     @Override
+    @Deprecated
     public <R extends RpcService, I extends R> ObjectRegistration<I> registerRpcImplementation(final Class<R> type,
             final I implementation, final Set<InstanceIdentifier<?>> paths) {
         return delegate().registerRpcImplementation(type, implementation, paths);
index 221a7019649b994068d54c3e284c519ebe411539..05b5ef261c28cb5aec64418374213e40596ed480 100644 (file)
@@ -14,8 +14,8 @@ import org.junit.Test;
 import org.opendaylight.mdsal.dom.api.DOMRpcImplementationRegistration;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class BindingDOMRpcAdapterRegistrationTest {
-
     @Test
     public void removeRegistration() {
         final DOMRpcImplementationRegistration<?> registration = mock(DOMRpcImplementationRegistration.class);
index f8f6d9b0577a25f3f17df16e4aa8893caa8f77c2..fd661904f400b9e7bd7ace93e00c26fd1799f8ae 100644 (file)
@@ -15,6 +15,7 @@ import org.junit.Test;
 import org.opendaylight.mdsal.dom.api.DOMRpcImplementationRegistration;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class BindingRpcAdapterRegistrationTest {
     @Test
     public void removeRegistrationTest() throws Exception {
index 1506c90b39a24483ec2d80bba6aa9f03371e2067..62bf308523955fa0a82d62e8aa925ed1a49d573b 100644 (file)
@@ -19,6 +19,8 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
+
 public class LegacyDOMRpcImplementationAdapterTest {
     @Test
     public void basicTest() throws Exception {
index b1dbdcd6e07c30045af5342fd86cbafc2ec15f04..e834d6e2311d312b599bb27c41b79e13cf72ff22 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.rpc.routing.rev140701.RoutedSimpleRouteInputBuilder;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class RpcServiceAdapterTest {
 
     @SuppressWarnings("checkstyle:IllegalThrows")
index 4a6201af831b88d890bbf6e5c239aa5734631bc3..99ae45bff7eb96b3d2d2b2580d153ca7c436123d 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.common.QName;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class AbstractMappedRpcInvokerTest {
     @Test
     public void invokeRpcTest() throws Exception {
index 19c2970b5bbf3ca04e7d4e0529f704c6f4aa0a52..7b63d1f8c2763f0c8ee73f292056a842f1433ddf 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class LocalNameRpcServiceInvokerTest {
 
     private static RpcServiceInvoker rpcServiceInvoker;
index b15cf65d67dd82b87947b91b8bdab026a09a7724..61dce76e86e65d46da03f61dff308fb11550bae8 100644 (file)
@@ -16,8 +16,8 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.common.QName;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class QNameRpcServiceInvokerTest {
-
     @Test
     public void instanceForTest() throws Exception {
         assertNotNull(QNameRpcServiceInvoker.instanceFor(ImmutableMap.of()));
index c2fd324d4f514736fbe59711638bd3c6d2acb398..c2a5a60bc802ddf1f4f777d085db1b87424e0b7e 100644 (file)
@@ -18,6 +18,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class RpcMethodInvokerTest {
     private static final TestImplClassWithInput TEST_IMPL_CLASS = new TestImplClassWithInput();
 
index 1464983bd96382317b0e1ec23f519aa21d4fd7cd..4eab89ee25cb485656b69d58c743e6d060519f08 100644 (file)
@@ -17,6 +17,7 @@ import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
+@Deprecated(since = "11.0.0", forRemoval = true)
 public class RpcServiceInvokerTest {
     @Test
     public void fromTest() throws Exception {
index 87497dbec0fbb779bc3e9ff97a52ed6f3c09e012..a80bd7d7f00cbc1bab6e540a23420aea66c8717f 100644 (file)
@@ -28,6 +28,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RpcEffectiveStatement;
  * Aggregate service for top-level {@code rpc} statements for a particular module.
  */
 // FIXME: eventually remove this generator
+@Deprecated(since = "11.0.0", forRemoval = true)
 final class RpcServiceGenerator extends AbstractImplicitGenerator {
     private static final JavaTypeName CHECK_RETURN_VALUE_ANNOTATION =
         // Do not refer to annotation class, as it may not be available at runtime
index bf29aecee3c131410be1bf3e4dc064627bc43b51..881a5c7e1331a934a563326e68ebae47b4ae3766 100644 (file)
@@ -64,6 +64,7 @@ public final class BindingTypes {
     public static final ConcreteType QNAME = typeForClass(QName.class);
     public static final ConcreteType RPC_INPUT = typeForClass(RpcInput.class);
     public static final ConcreteType RPC_OUTPUT = typeForClass(RpcOutput.class);
+    @Deprecated(since = "11.0.0", forRemoval = true)
     public static final ConcreteType RPC_SERVICE = typeForClass(RpcService.class);
     public static final ConcreteType SCALAR_TYPE_OBJECT = typeForClass(ScalarTypeObject.class);
     public static final ConcreteType BITS_TYPE_OBJECT = typeForClass(BitsTypeObject.class);
index 9c2c90536382dfcfd2cb4b4fbf1481c6ea86c3ba..0591b7fd7fffd3d2d8ffd3c181a62ae6afff9caa 100644 (file)
@@ -59,6 +59,7 @@ public final class BindingMapping {
         "record");
 
     public static final @NonNull String DATA_ROOT_SUFFIX = "Data";
+    @Deprecated(since = "11.0.0", forRemoval = true)
     public static final @NonNull String RPC_SERVICE_SUFFIX = "Service";
     @Deprecated(since = "10.0.3", forRemoval = true)
     public static final @NonNull String NOTIFICATION_LISTENER_SUFFIX = "Listener";
index d5e1d6b57b2de4a8b9b1f269a9f05aca4cf44075..835f4e9d938c7767cd14c63a41f1b276fc77b74e 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.binding;
 /**
  * Marker interface for tagging generated YANG Modules.
  */
+@Deprecated(since = "11.0.0", forRemoval = true)
 public interface RpcService {
 
 }