Remove CachedYangTextSchemaSource 52/110352/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Feb 2024 10:52:06 +0000 (11:52 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Feb 2024 10:55:39 +0000 (11:55 +0100)
There is no point in having this subclass -- just use plain
StringYangTextSource instead.

JIRA: NETCONF-840
Change-Id: I8e0a39391323726d50f0c9c769dc4bfba1a9461c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
apps/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfNodeHandler.java
plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/CachedYangTextSource.java [deleted file]
plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/LibrarySchemaSourceProvider.java
plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/MonitoringSchemaSourceProvider.java
plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/impl/DefaultDeviceNetconfSchemaProvider.java
plugins/netconf-client-mdsal/src/test/java/org/opendaylight/netconf/client/mdsal/LibrarySchemaYangSourceProviderTest.java

index de77e29a2f399e4171dd2cde63842fa8b1b12b0f..4b897d2b2100bcc3a279ea94145c747a07d355d8 100644 (file)
@@ -356,7 +356,7 @@ public final class NetconfNodeHandler extends AbstractRegistration implements Re
                 final var registry = resources.registry();
                 for (var entry : schemas.getAvailableModels().entrySet()) {
                     registrations.add(registry.registerSchemaSource(new LibrarySchemaSourceProvider(
-                        remoteDeviceId, schemas.getAvailableModels()),
+                        schemas.getAvailableModels()),
                         PotentialSchemaSource.create(entry.getKey(), YangTextSource.class,
                             PotentialSchemaSource.Costs.REMOTE_IO.getValue())));
                 }
diff --git a/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/CachedYangTextSource.java b/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/CachedYangTextSource.java
deleted file mode 100644 (file)
index 4956713..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2023 PANTHEON.tech, s.r.o. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.netconf.client.mdsal;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.base.MoreObjects;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
-import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
-import org.opendaylight.yangtools.yang.model.spi.source.StringYangTextSource;
-
-/**
- * A {@link YangTextSource} cached from a remote service.
- */
-@NonNullByDefault
-public final class CachedYangTextSource extends StringYangTextSource {
-    private final RemoteDeviceId deviceId;
-
-    public CachedYangTextSource(final RemoteDeviceId deviceId, final SourceIdentifier sourceId, final String content,
-            final @Nullable String symbolicName) {
-        super(sourceId, content, symbolicName);
-        this.deviceId = requireNonNull(deviceId);
-    }
-
-    public RemoteDeviceId deviceId() {
-        return deviceId;
-    }
-
-    @Override
-    protected MoreObjects.ToStringHelper addToStringAttributes(final MoreObjects.ToStringHelper toStringHelper) {
-        return super.addToStringAttributes(toStringHelper.add("deviceId", deviceId));
-    }
-}
index 85e3716e3ac10522beae329b14562ac50af72aab..e4d5f94c6bbdedbbb1a6142c87e4b5672525e54a 100644 (file)
@@ -17,11 +17,11 @@ import java.io.IOException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.Map;
-import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
 import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
 import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider;
+import org.opendaylight.yangtools.yang.model.spi.source.StringYangTextSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,10 +33,8 @@ public final class LibrarySchemaSourceProvider implements SchemaSourceProvider<Y
     private static final Logger LOG = LoggerFactory.getLogger(LibrarySchemaSourceProvider.class);
 
     private final ImmutableMap<SourceIdentifier, URL> availableSources;
-    private final RemoteDeviceId id;
 
-    public LibrarySchemaSourceProvider(final RemoteDeviceId id, final Map<SourceIdentifier, URL> availableSources) {
-        this.id = requireNonNull(id);
+    public LibrarySchemaSourceProvider(final Map<SourceIdentifier, URL> availableSources) {
         this.availableSources = ImmutableMap.copyOf(availableSources);
     }
 
@@ -54,7 +52,7 @@ public final class LibrarySchemaSourceProvider implements SchemaSourceProvider<Y
                 "Unable to download remote schema for " + sourceIdentifier + " from " + url, e));
         }
 
-        final var yangSource = new CachedYangTextSource(id, sourceIdentifier,
+        final var yangSource = new StringYangTextSource(sourceIdentifier,
             new String(schemaContent, StandardCharsets.UTF_8), url.toString());
         LOG.debug("Source {} downloaded from a yang library's url {}", sourceIdentifier, url);
         return Futures.immediateFuture(yangSource);
index 6ca3b000bf25223a0b7a4cc8e4208615c862e407..b1a1182e6fda12f3206c295c0901582a51becaa7 100644 (file)
@@ -32,6 +32,7 @@ import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
 import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider;
+import org.opendaylight.yangtools.yang.model.spi.source.StringYangTextSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Element;
@@ -104,7 +105,7 @@ public final class MonitoringSchemaSourceProvider implements SchemaSourceProvide
                             id + ": Unexpected response to get-schema, schema not present in message for: "
                                 + sourceIdentifier));
                     LOG.debug("{}: YANG Schema successfully retrieved for {}:{}", id, moduleName, revision);
-                    return new CachedYangTextSource(id, sourceIdentifier, schemaString, null);
+                    return new StringYangTextSource(sourceIdentifier, schemaString);
                 }
 
                 LOG.warn("{}: YANG schema was not successfully retrieved for {}. Errors: {}", id, sourceIdentifier,
index a65aaba4b940e0000ea1719fe0a7867719d333c0..d9ba9c9e722620c56b336f3a1df65b0a1d68c6aa 100644 (file)
@@ -100,7 +100,7 @@ public final class DefaultDeviceNetconfSchemaProvider implements DeviceNetconfSc
 
             // FIXME: this instanceof check is quite bad
             final var sourceProvider = availableSchemas instanceof LibraryModulesSchemas libraryModule
-                ? new LibrarySchemaSourceProvider(deviceId, libraryModule.getAvailableModels())
+                ? new LibrarySchemaSourceProvider(libraryModule.getAvailableModels())
                     : new MonitoringSchemaSourceProvider(deviceId, deviceRpc);
             return new DeviceSources(requiredSources, providedSources, sourceProvider);
         }, MoreExecutors.directExecutor());
index 4e380bb862279ebf50f01517d0a07c3d175d6197..f8f855f997483555955ed943714a3af986df7959 100644 (file)
@@ -12,20 +12,17 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
-import java.net.InetSocketAddress;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import org.junit.jupiter.api.Test;
-import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
 import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
 
 public class LibrarySchemaYangSourceProviderTest {
     private final SourceIdentifier workingSid = new SourceIdentifier("abc");
     private final LibrarySchemaSourceProvider yangLibrarySchemaYangSourceProvider = new LibrarySchemaSourceProvider(
-        new RemoteDeviceId("id", new InetSocketAddress("localhost", 22)),
         Map.of(workingSid, LibrarySchemaYangSourceProviderTest.class.getResource("/schemas/config-test-rpc.yang")));
 
     @Test
@@ -38,7 +35,7 @@ public class LibrarySchemaYangSourceProviderTest {
     void testGetSourceFailure() throws InterruptedException, MalformedURLException {
         final var sourceIdentifierURLMap = Map.of(workingSid, new URL("http://non-existing-entity.yang"));
         final var failingYangLibrarySchemaYangSourceProvider = new LibrarySchemaSourceProvider(
-            new RemoteDeviceId("id", new InetSocketAddress("localhost", 22)), sourceIdentifierURLMap);
+            sourceIdentifierURLMap);
 
         final var future = failingYangLibrarySchemaYangSourceProvider.getSource(workingSid);
         final var ex = assertThrows(ExecutionException.class, () -> future.get());