From 05f851b5f3bad5f2a30803f791f9cb2b9a27b8aa Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 1 Jun 2026 14:42:32 +0200 Subject: [PATCH 1/4] Remove a reference to SchemaContext SchemaContext is not used anymore -- replace it with reference to EffectiveModelContext. Change-Id: I32d6a47b311caf96ad2d2c94e1b7ea1f599be291 Signed-off-by: Robert Varga --- .../jsonrpc/binding/SchemaChangeAwareConverter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/binding-adapter/src/main/java/org/opendaylight/jsonrpc/binding/SchemaChangeAwareConverter.java b/binding-adapter/src/main/java/org/opendaylight/jsonrpc/binding/SchemaChangeAwareConverter.java index 212d1c61..3c9d37e6 100644 --- a/binding-adapter/src/main/java/org/opendaylight/jsonrpc/binding/SchemaChangeAwareConverter.java +++ b/binding-adapter/src/main/java/org/opendaylight/jsonrpc/binding/SchemaChangeAwareConverter.java @@ -15,10 +15,10 @@ import org.opendaylight.jsonrpc.dom.codec.JsonRpcCodecFactory; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; /** - * {@link Supplier} of {@link JsonRpcCodecFactory} that is up-to-date with changes in global {@link SchemaContext}. + * {@link Supplier} of {@link JsonRpcCodecFactory} that is up-to-date with changes in global + * {@link EffectiveModelContext}. * * @author Richard Kosegi * @since Aug 25, 2018 -- 2.34.1 From 3abf85c64090f87879fc537a6330d8923cbb1978 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 1 Jun 2026 14:52:05 +0200 Subject: [PATCH 2/4] Use YangParserFactory Switch to using YangParserFactory instead of low-level parser internals. Change-Id: I86570f3c8bead2017fa65dc85a6c208bef2e21b9 Signed-off-by: Robert Varga --- .../cluster/impl/ClusterDependencies.java | 6 ++-- .../provider/cluster/MountpointTest.java | 10 +++--- .../jsonrpc/impl/RemoteControlProvider.java | 6 ++-- .../model/CombinedSchemaContextProvider.java | 4 +-- .../GovernanceSchemaContextProvider.java | 32 ++++++++----------- .../InbandModelsSchemaContextProvider.java | 27 ++++++---------- .../provider/common/ProviderDependencies.java | 12 +++---- .../provider/single/JsonRPCProvider.java | 6 ++-- .../provider/single/JsonRPCProviderTest.java | 4 +-- .../opendaylight/jsonrpc/tool/test/Main.java | 4 ++- 10 files changed, 51 insertions(+), 60 deletions(-) diff --git a/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java b/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java index 9e09fc9d..4273add9 100644 --- a/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java +++ b/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java @@ -23,7 +23,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.cluster.provider.config.rev200708.Config; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** * Extension of {@link ProviderDependencies} that adds cluster related services and configuration. @@ -42,12 +42,12 @@ public class ClusterDependencies extends ProviderDependencies { @NonNull DOMMountPointService domMountPointService, @NonNull DOMDataBroker domDataBroker, @NonNull DOMSchemaService schemaService, @NonNull DOMNotificationPublishService domNotificationPublishService, @NonNull DOMRpcService domRpcService, - @NonNull YangXPathParserFactory yangXPathParserFactory, @NonNull ActorSystem actorSystem, + @NonNull YangParserFactory yangParserFactory, @NonNull ActorSystem actorSystem, @NonNull ClusterSingletonServiceProvider clusterSingletonServiceProvider, @NonNull GovernanceProvider governanceProvider, @NonNull RpcProviderService rpcProviderService, @Nullable Config config) { super(transportFactory, dataBroker, domMountPointService, domDataBroker, schemaService, - domNotificationPublishService, domRpcService, yangXPathParserFactory); + domNotificationPublishService, domRpcService, yangParserFactory); this.actorSystem = Objects.requireNonNull(actorSystem); this.clusterSingletonServiceProvider = Objects.requireNonNull(clusterSingletonServiceProvider); this.governanceProvider = Objects.requireNonNull(governanceProvider); diff --git a/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java b/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java index dddf3ad4..f75e5b5e 100644 --- a/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java +++ b/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java @@ -95,7 +95,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -134,8 +134,8 @@ public class MountpointTest { MockitoAnnotations.openMocks(this); clusterSingletonServiceProvider = new EOSClusterSingletonServiceProvider(new SimpleDOMEntityOwnershipService()); - final YangXPathParserFactory yangXPathParserFactory = ServiceLoader - .load(YangXPathParserFactory.class) + final YangParserFactory yangParserFactory = ServiceLoader + .load(YangParserFactory.class) .findFirst() .orElseThrow(); @@ -161,13 +161,13 @@ public class MountpointTest { final ClusterDependencies masterDeps = new ClusterDependencies(tf, masterTestCustomizer.getDataBroker(), masterTestCustomizer.getDOMMountPointService(), masterTestCustomizer.getDomBroker(), masterTestCustomizer.getSchemaService(), masterTestCustomizer.getDOMNotificationRouter(), - new RouterDOMRpcService(masterTestCustomizer.getDOMRpcRouter()), yangXPathParserFactory, + new RouterDOMRpcService(masterTestCustomizer.getDOMRpcRouter()), yangParserFactory, masterActorSystem, clusterSingletonServiceProvider, governanceProvider, rpcProviderService, null); final ClusterDependencies slaveDeps = new ClusterDependencies(tf, slaveTestCustomizer.getDataBroker(), slaveTestCustomizer.getDOMMountPointService(), slaveTestCustomizer.getDomBroker(), slaveTestCustomizer.getSchemaService(), slaveTestCustomizer.getDOMNotificationRouter(), - new RouterDOMRpcService(slaveTestCustomizer.getDOMRpcRouter()), yangXPathParserFactory, + new RouterDOMRpcService(slaveTestCustomizer.getDOMRpcRouter()), yangParserFactory, slaveActorSystem, mockClusterSingletonServiceProvider, governanceProvider, rpcProviderService, null); masterConverter = new JsonRpcCodecFactory(masterTestCustomizer.getSchemaService().getGlobalContext()); diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java index a0124f7b..0c546d2a 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java @@ -35,7 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.Config; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; @@ -61,14 +61,14 @@ public final class RemoteControlProvider private ResponderSession remoteControl; @Activate - public RemoteControlProvider(@Reference YangXPathParserFactory yangXPathParserFactory, + public RemoteControlProvider(@Reference YangParserFactory yangParserFactory, @Reference DataBroker dataBroker, @Reference DOMDataBroker domDataBroker, @Reference DOMMountPointService domMountPointService, @Reference DOMSchemaService schemaService, @Reference DOMRpcService domRpcService, @Reference DOMNotificationPublishService domNotificationPublishService, @Reference TransportFactory transportFactory) { this(new ProviderDependencies(transportFactory, dataBroker, domMountPointService, domDataBroker, schemaService, - domNotificationPublishService, domRpcService, yangXPathParserFactory)); + domNotificationPublishService, domRpcService, yangParserFactory)); } public RemoteControlProvider(@NonNull ProviderDependencies dependencies) { diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java index 6d40fa2f..dcc7ed7c 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java @@ -30,11 +30,11 @@ public class CombinedSchemaContextProvider implements SchemaContextProvider { private SchemaContextProvider getProvider(Peer peer) { if (Util.supportInbandModels(peer)) { return InbandModelsSchemaContextProvider.create(dependencies.getTransportFactory(), - dependencies.getYangXPathParserFactory()); + dependencies.getYangParserFactory()); } if (governanceProvider.get().isPresent()) { return new GovernanceSchemaContextProvider(governanceProvider.get().orElseThrow(), - dependencies.getYangXPathParserFactory()); + dependencies.getYangParserFactory()); } return new BuiltinSchemaContextProvider(dependencies.getSchemaService().getGlobalContext()); } diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java index a9a65984..908dd6bf 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java @@ -13,11 +13,10 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Queues; import com.google.common.io.CharSource; import java.io.IOException; import java.time.Duration; -import java.util.Deque; +import java.util.ArrayDeque; import java.util.HashSet; import java.util.Objects; import java.util.Optional; @@ -34,13 +33,11 @@ import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; import org.opendaylight.yangtools.yang.model.spi.source.SourceInfo; import org.opendaylight.yangtools.yang.model.spi.source.StringYangTextSource; +import org.opendaylight.yangtools.yang.parser.api.YangParser; +import org.opendaylight.yangtools.yang.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; -import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangIRSourceInfoExtractor; -import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; -import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,7 +52,7 @@ public class GovernanceSchemaContextProvider implements SchemaContextProvider { private static final Logger LOG = LoggerFactory.getLogger(GovernanceSchemaContextProvider.class); private final RemoteGovernance governance; private static final Duration CACHE_TTL = Duration.ofMinutes(10L); - private final YangXPathParserFactory xpathParserFactory; + private final YangParserFactory yangParserFactory; // cache to speed-up module import lookups private final LoadingCache> moduleImportCache = CacheBuilder.newBuilder() .expireAfterWrite(CACHE_TTL) @@ -88,9 +85,9 @@ public class GovernanceSchemaContextProvider implements SchemaContextProvider { }); public GovernanceSchemaContextProvider(@NonNull final RemoteGovernance governance, - @NonNull final YangXPathParserFactory xpathParserFactory) { + @NonNull final YangParserFactory yangParserFactory) { this.governance = Objects.requireNonNull(governance); - this.xpathParserFactory = Objects.requireNonNull(xpathParserFactory); + this.yangParserFactory = Objects.requireNonNull(yangParserFactory); } @SuppressWarnings("checkstyle:IllegalCatch") @@ -104,9 +101,9 @@ public class GovernanceSchemaContextProvider implements SchemaContextProvider { } @SuppressWarnings("checkstyle:IllegalCatch") - private EffectiveModelContext createInternal(Peer peer) throws ReactorException { - final BuildAction reactor = RFC7950Reactors.defaultReactorBuilder(xpathParserFactory).build().newBuild(); - final Deque toResolve = Queues.newArrayDeque(); + private EffectiveModelContext createInternal(Peer peer) throws YangParserException { + final var parser = yangParserFactory.createParser(); + final var toResolve = new ArrayDeque(); try { Optional.ofNullable(peer.getModules()) .orElse(Set.of()) @@ -147,14 +144,13 @@ public class GovernanceSchemaContextProvider implements SchemaContextProvider { LOG.trace("Assembling schema from following modules : {}", toResolve); toResolve.stream() .distinct() - .forEach(m -> addSourceToReactor(reactor, m.getModule(), sourceCache.getUnchecked(m))); - return reactor.buildEffective(); + .forEach(m -> addSourceToParser(parser, m.getModule(), sourceCache.getUnchecked(m))); + return parser.buildEffectiveModel(); } - private static void addSourceToReactor(BuildAction reactor, String name, String yangSource) { + private static void addSourceToParser(YangParser parser, String name, String yangSource) { try { - reactor.addSource(YangStatementStreamSource.create(new DelegatedYangTextSource( - new SourceIdentifier(name), CharSource.wrap(yangSource)))); + parser.addSource(new DelegatedYangTextSource(new SourceIdentifier(name), CharSource.wrap(yangSource))); } catch (YangSyntaxErrorException | IOException e) { throw new IllegalStateException("Unable to add source of '" + name + "' into reactor", e); } diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/InbandModelsSchemaContextProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/InbandModelsSchemaContextProvider.java index d12fbebd..acb4b209 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/InbandModelsSchemaContextProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/InbandModelsSchemaContextProvider.java @@ -19,11 +19,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.peer.RpcE import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; -import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; -import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; /** * {@link SchemaContextProvider} used for peers that provide required YANG modules by themselves. @@ -33,17 +30,17 @@ import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; */ public final class InbandModelsSchemaContextProvider implements SchemaContextProvider { private final TransportFactory transportFactory; - private final YangXPathParserFactory xpathParserFactory; + private final YangParserFactory yangParserFactory; public static InbandModelsSchemaContextProvider create(TransportFactory transportFactory, - YangXPathParserFactory xpathParserFactory) { - return new InbandModelsSchemaContextProvider(transportFactory, xpathParserFactory); + YangParserFactory yangParserFactory) { + return new InbandModelsSchemaContextProvider(transportFactory, yangParserFactory); } private InbandModelsSchemaContextProvider(final TransportFactory transportFactory, - YangXPathParserFactory xpathParserFactory) { + YangParserFactory yangParserFactory) { this.transportFactory = Objects.requireNonNull(transportFactory); - this.xpathParserFactory = Objects.requireNonNull(xpathParserFactory); + this.yangParserFactory = Objects.requireNonNull(yangParserFactory); } @Override @@ -60,20 +57,16 @@ public final class InbandModelsSchemaContextProvider implements SchemaContextPro try (InbandModelsService requester = transportFactory.endpointBuilder() .requester() .createProxy(InbandModelsService.class, enpodint.getEndpointUri().getValue())) { - final CrossSourceStatementReactor.BuildAction reactor = RFC7950Reactors - .defaultReactorBuilder(xpathParserFactory) - .build() - .newBuild(); - + final var parser = yangParserFactory.createParser(); requester.getModules().forEach(m -> { try { - reactor.addSource(YangStatementStreamSource.create(new DelegatedYangTextSource( - new SourceIdentifier(m.getName()), CharSource.wrap(m.getContent())))); + parser.addSource(new DelegatedYangTextSource( + new SourceIdentifier(m.getName()), CharSource.wrap(m.getContent()))); } catch (YangSyntaxErrorException | IOException e) { throw new IllegalStateException("Failed to add YANG source for " + m.getName(), e); } }); - return reactor.buildEffective(); + return parser.buildEffectiveModel(); } catch (URISyntaxException e) { throw new IllegalArgumentException("URI is invalid", e); } catch (Exception e) { diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java index f6c2149e..a0537b23 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java @@ -16,7 +16,7 @@ import org.opendaylight.mdsal.dom.api.DOMMountPointService; import org.opendaylight.mdsal.dom.api.DOMNotificationPublishService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** * Simple grouping of all required dependencies for easier propagation. @@ -32,13 +32,13 @@ public class ProviderDependencies { private final DOMSchemaService schemaService; private final DOMNotificationPublishService domNotificationPublishService; private final DOMRpcService domRpcService; - private final YangXPathParserFactory yangXPathParserFactory; + private final YangParserFactory yangParserFactory; public ProviderDependencies(@NonNull TransportFactory transportFactory, @NonNull DataBroker dataBroker, @NonNull DOMMountPointService domMountPointService, @NonNull DOMDataBroker domDataBroker, @NonNull DOMSchemaService schemaService, @NonNull DOMNotificationPublishService domNotificationPublishService, @NonNull DOMRpcService domRpcService, - @NonNull YangXPathParserFactory yangXPathParserFactory) { + @NonNull YangParserFactory yangParserFactory) { this.transportFactory = Objects.requireNonNull(transportFactory); this.dataBroker = Objects.requireNonNull(dataBroker); this.domMountPointService = Objects.requireNonNull(domMountPointService); @@ -46,7 +46,7 @@ public class ProviderDependencies { this.schemaService = Objects.requireNonNull(schemaService); this.domNotificationPublishService = Objects.requireNonNull(domNotificationPublishService); this.domRpcService = Objects.requireNonNull(domRpcService); - this.yangXPathParserFactory = Objects.requireNonNull(yangXPathParserFactory); + this.yangParserFactory = Objects.requireNonNull(yangParserFactory); } public TransportFactory getTransportFactory() { @@ -77,7 +77,7 @@ public class ProviderDependencies { return domRpcService; } - public YangXPathParserFactory getYangXPathParserFactory() { - return yangXPathParserFactory; + public YangParserFactory getYangParserFactory() { + return yangParserFactory; } } diff --git a/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java b/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java index 961f9ce1..2511b7b1 100644 --- a/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java +++ b/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java @@ -57,7 +57,7 @@ import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; @@ -82,14 +82,14 @@ public final class JsonRPCProvider implements AutoCloseable { private volatile boolean closed = false; @Activate - public JsonRPCProvider(@Reference YangXPathParserFactory yangXPathParserFactory, + public JsonRPCProvider(@Reference YangParserFactory yangParserFactory, @Reference DataBroker dataBroker, @Reference RpcProviderService rpcProviderService, @Reference DOMDataBroker domDataBroker, @Reference DOMMountPointService domMountPointService, @Reference DOMSchemaService schemaService, @Reference DOMRpcService domRpcService, @Reference DOMNotificationPublishService domNotificationPublishService, @Reference TransportFactory transportFactory, @Reference GovernanceProvider governance) { this(new ProviderDependencies(transportFactory, dataBroker, domMountPointService, domDataBroker, schemaService, - domNotificationPublishService, domRpcService, yangXPathParserFactory), governance); + domNotificationPublishService, domRpcService, yangParserFactory), governance); rpcReg = rpcProviderService.registerRpcImplementations( (ForceRefresh) this::forceRefresh, (ForceReload) this::forceReload); diff --git a/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java b/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java index fed46ab3..eb2eaaa5 100644 --- a/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java +++ b/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java @@ -58,7 +58,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.peer.RpcE import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.peer.RpcEndpointsKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathParserFactory; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** * Tests for {@link JsonRPCProvider}. @@ -92,7 +92,7 @@ public class JsonRPCProviderTest extends AbstractJsonRpcTest { getDataBroker(), getDOMMountPointService(), getDomBroker(), getSchemaService(), new RouterDOMPublishNotificationService(getDOMNotificationRouter()), new RouterDOMRpcService(getDOMRpcRouter()), - ServiceLoader.load(YangXPathParserFactory.class).findFirst().orElseThrow()); + ServiceLoader.load(YangParserFactory.class).findFirst().orElseThrow()); provider = new JsonRPCProvider(deps, () -> Optional.of(GOVERNANCE_MOCK)); logTestName("START"); } diff --git a/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java b/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java index 22355e76..6b5c7da8 100644 --- a/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java +++ b/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java @@ -22,6 +22,7 @@ import org.opendaylight.jsonrpc.bus.messagelib.TransportFactory; import org.opendaylight.jsonrpc.provider.common.GovernanceSchemaContextProvider; import org.opendaylight.jsonrpc.tool.test.Parameters.Options; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; +import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; import org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -56,7 +57,8 @@ public final class Main { LOG.info("Datastore modules : {}", modules); final DatastoreImpl datastore = DatastoreImpl.create(tf, opts.datastore, modules.stream().map(YangIdentifier::new).collect(Collectors.toSet()), - new GovernanceSchemaContextProvider(governance, new AntlrXPathParserFactory())); + new GovernanceSchemaContextProvider(governance, + new DefaultYangParserFactory(new AntlrXPathParserFactory()))); LOG.info("Started : {}", datastore); } if (opts.rpc != null) { -- 2.34.1 From 4038015d3753af34aa074c473fa53123323fe488 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 1 Jun 2026 13:49:00 +0200 Subject: [PATCH 3/4] Bump upstreams Adopt: - odlparent-14.3.1 - yangtools-15.0.2 - infrautils-7.1.12 - ietf-2.0.2 - mdsal-16.0.3 - controller-13.0.2 - aaa-0.23.2 - netconf-11.0.0 We are also adjusting for the change in YANG parser wiring, injecting the text-to-IR transformer. Change-Id: Ic723fba287c6e503d786ff5f7ed94d707e7d84c3 Signed-off-by: Robert Varga --- artifacts/pom.xml | 2 +- binding-adapter/pom.xml | 4 ---- bus/config/pom.xml | 2 +- dom-codec/pom.xml | 5 ++++ features/features-jsonrpc/pom.xml | 2 +- features/odl-jsonrpc-all/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/odl-jsonrpc-bus/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 ++-- features/odl-jsonrpc-cluster/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 ++-- features/odl-jsonrpc-provider/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/pom.xml | 2 +- karaf/pom.xml | 2 +- parent/pom.xml | 6 ++--- pom.xml | 2 +- provider/cluster/pom.xml | 6 +---- .../cluster/impl/ClusterDependencies.java | 7 +++--- .../provider/cluster/MountpointTest.java | 9 +++++-- provider/common/pom.xml | 2 +- .../jsonrpc/impl/RemoteControlProvider.java | 9 +++---- .../model/CombinedSchemaContextProvider.java | 4 ++-- .../GovernanceSchemaContextProvider.java | 24 ++++++++++--------- .../provider/common/ProviderDependencies.java | 9 ++++++- provider/pom.xml | 4 ---- provider/single/pom.xml | 4 ---- .../provider/single/JsonRPCProvider.java | 10 ++++---- .../provider/single/JsonRPCProviderTest.java | 4 +++- tools/test-tool/pom.xml | 4 ++++ .../jsonrpc/tool/test/GovernanceImpl.java | 15 ++++++++---- .../opendaylight/jsonrpc/tool/test/Main.java | 9 +++---- 32 files changed, 93 insertions(+), 74 deletions(-) diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 9df5c8ed..92648fe0 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.1.6 + 14.3.1 org.opendaylight.jsonrpc diff --git a/binding-adapter/pom.xml b/binding-adapter/pom.xml index 38056451..8a46dc27 100644 --- a/binding-adapter/pom.xml +++ b/binding-adapter/pom.xml @@ -37,10 +37,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.yangtools yang-parser-api - - org.opendaylight.yangtools - yang-parser-impl - org.opendaylight.yangtools yang-data-codec-gson diff --git a/bus/config/pom.xml b/bus/config/pom.xml index 4b7edddf..09ba9451 100644 --- a/bus/config/pom.xml +++ b/bus/config/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent bundle-parent - 14.1.6 + 14.3.1 diff --git a/dom-codec/pom.xml b/dom-codec/pom.xml index 5285f995..ac9ea82f 100644 --- a/dom-codec/pom.xml +++ b/dom-codec/pom.xml @@ -85,6 +85,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html mdsal-dom-inmemory-datastore test + + org.opendaylight.yangtools + dagger-yang-parser + test + org.opendaylight.yangtools binding-generator diff --git a/features/features-jsonrpc/pom.xml b/features/features-jsonrpc/pom.xml index 797580b5..916f14c1 100644 --- a/features/features-jsonrpc/pom.xml +++ b/features/features-jsonrpc/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent feature-repo-parent - 14.1.6 + 14.3.1 diff --git a/features/odl-jsonrpc-all/pom.xml b/features/odl-jsonrpc-all/pom.xml index ea94ee0c..3a89fea6 100644 --- a/features/odl-jsonrpc-all/pom.xml +++ b/features/odl-jsonrpc-all/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.1.6 + 14.3.1 diff --git a/features/odl-jsonrpc-all/src/main/feature/feature.xml b/features/odl-jsonrpc-all/src/main/feature/feature.xml index 63a1860d..582891d8 100644 --- a/features/odl-jsonrpc-all/src/main/feature/feature.xml +++ b/features/odl-jsonrpc-all/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-restconf-openapi + odl-restconf-openapi diff --git a/features/odl-jsonrpc-bus/pom.xml b/features/odl-jsonrpc-bus/pom.xml index e2baebbb..a64a6204 100644 --- a/features/odl-jsonrpc-bus/pom.xml +++ b/features/odl-jsonrpc-bus/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.1.6 + 14.3.1 diff --git a/features/odl-jsonrpc-bus/src/main/feature/feature.xml b/features/odl-jsonrpc-bus/src/main/feature/feature.xml index d17e41f0..2a878ce2 100644 --- a/features/odl-jsonrpc-bus/src/main/feature/feature.xml +++ b/features/odl-jsonrpc-bus/src/main/feature/feature.xml @@ -12,8 +12,8 @@ mvn:org.opendaylight.jsonrpc.bus/bus-config/${project.version}/cfg/config odl-netty-4 - odl-ietf-model-rfc6991 - odl-aaa-shiro + odl-ietf-model-rfc6991 + odl-aaa-shiro diff --git a/features/odl-jsonrpc-cluster/pom.xml b/features/odl-jsonrpc-cluster/pom.xml index bbc8fb78..5e32e38d 100644 --- a/features/odl-jsonrpc-cluster/pom.xml +++ b/features/odl-jsonrpc-cluster/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.1.6 + 14.3.1 diff --git a/features/odl-jsonrpc-cluster/src/main/feature/feature.xml b/features/odl-jsonrpc-cluster/src/main/feature/feature.xml index 0bfe8cd6..3fb8c841 100644 --- a/features/odl-jsonrpc-cluster/src/main/feature/feature.xml +++ b/features/odl-jsonrpc-cluster/src/main/feature/feature.xml @@ -8,8 +8,8 @@ --> - odl-mdsal-binding-dom-adapter - odl-restconf-openapi + odl-mdsal-binding-dom-adapter + odl-restconf-openapi diff --git a/features/odl-jsonrpc-provider/pom.xml b/features/odl-jsonrpc-provider/pom.xml index add00a49..28cde5f7 100644 --- a/features/odl-jsonrpc-provider/pom.xml +++ b/features/odl-jsonrpc-provider/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.1.6 + 14.3.1 diff --git a/features/odl-jsonrpc-provider/src/main/feature/feature.xml b/features/odl-jsonrpc-provider/src/main/feature/feature.xml index e75bccd4..1aea36db 100644 --- a/features/odl-jsonrpc-provider/src/main/feature/feature.xml +++ b/features/odl-jsonrpc-provider/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-mdsal-binding-dom-adapter + odl-mdsal-binding-dom-adapter diff --git a/features/pom.xml b/features/pom.xml index e7cd405b..7aaa29ea 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 14.1.6 + 14.3.1 org.opendaylight.jsonrpc diff --git a/karaf/pom.xml b/karaf/pom.xml index 5551bc1d..d1d2d7ae 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent karaf4-parent - 14.1.6 + 14.3.1 org.opendaylight.jsonrpc diff --git a/parent/pom.xml b/parent/pom.xml index 842fae7f..9e6218de 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 15.0.2 + 16.0.3 @@ -34,14 +34,14 @@ org.opendaylight.netconf netconf-artifacts - 10.0.2 + 11.0.0 pom import org.opendaylight.aaa aaa-artifacts - 0.22.3 + 0.23.2 pom import diff --git a/pom.xml b/pom.xml index de3fde05..e5b18bd9 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.1.6 + 14.3.1 org.opendaylight.jsonrpc diff --git a/provider/cluster/pom.xml b/provider/cluster/pom.xml index 11de83b5..ada18871 100644 --- a/provider/cluster/pom.xml +++ b/provider/cluster/pom.xml @@ -25,7 +25,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller bundle-parent - 12.0.3 + 13.0.2 pom import @@ -51,10 +51,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.yangtools yang-parser-api - - org.opendaylight.yangtools - yang-parser-impl - org.opendaylight.yangtools yang-data-codec-gson diff --git a/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java b/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java index 4273add9..c5e311c1 100644 --- a/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java +++ b/provider/cluster/src/main/java/org/opendaylight/jsonrpc/provider/cluster/impl/ClusterDependencies.java @@ -23,6 +23,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.cluster.provider.config.rev200708.Config; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** @@ -42,12 +43,12 @@ public class ClusterDependencies extends ProviderDependencies { @NonNull DOMMountPointService domMountPointService, @NonNull DOMDataBroker domDataBroker, @NonNull DOMSchemaService schemaService, @NonNull DOMNotificationPublishService domNotificationPublishService, @NonNull DOMRpcService domRpcService, - @NonNull YangParserFactory yangParserFactory, @NonNull ActorSystem actorSystem, - @NonNull ClusterSingletonServiceProvider clusterSingletonServiceProvider, + @NonNull YangParserFactory yangParserFactory, @NonNull YangTextToIRSourceTransformer yangTextToIR, + @NonNull ActorSystem actorSystem, @NonNull ClusterSingletonServiceProvider clusterSingletonServiceProvider, @NonNull GovernanceProvider governanceProvider, @NonNull RpcProviderService rpcProviderService, @Nullable Config config) { super(transportFactory, dataBroker, domMountPointService, domDataBroker, schemaService, - domNotificationPublishService, domRpcService, yangParserFactory); + domNotificationPublishService, domRpcService, yangParserFactory, yangTextToIR); this.actorSystem = Objects.requireNonNull(actorSystem); this.clusterSingletonServiceProvider = Objects.requireNonNull(clusterSingletonServiceProvider); this.governanceProvider = Objects.requireNonNull(governanceProvider); diff --git a/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java b/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java index f75e5b5e..00c13774 100644 --- a/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java +++ b/provider/cluster/src/test/java/org/opendaylight/jsonrpc/provider/cluster/MountpointTest.java @@ -95,6 +95,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -138,6 +139,10 @@ public class MountpointTest { .load(YangParserFactory.class) .findFirst() .orElseThrow(); + final YangTextToIRSourceTransformer yangTextToIR = ServiceLoader + .load(YangTextToIRSourceTransformer.class) + .findFirst() + .orElseThrow(); doReturn(mockSingletonRegistration).when(mockClusterSingletonServiceProvider) .registerClusterSingletonService(any()); @@ -161,13 +166,13 @@ public class MountpointTest { final ClusterDependencies masterDeps = new ClusterDependencies(tf, masterTestCustomizer.getDataBroker(), masterTestCustomizer.getDOMMountPointService(), masterTestCustomizer.getDomBroker(), masterTestCustomizer.getSchemaService(), masterTestCustomizer.getDOMNotificationRouter(), - new RouterDOMRpcService(masterTestCustomizer.getDOMRpcRouter()), yangParserFactory, + new RouterDOMRpcService(masterTestCustomizer.getDOMRpcRouter()), yangParserFactory, yangTextToIR, masterActorSystem, clusterSingletonServiceProvider, governanceProvider, rpcProviderService, null); final ClusterDependencies slaveDeps = new ClusterDependencies(tf, slaveTestCustomizer.getDataBroker(), slaveTestCustomizer.getDOMMountPointService(), slaveTestCustomizer.getDomBroker(), slaveTestCustomizer.getSchemaService(), slaveTestCustomizer.getDOMNotificationRouter(), - new RouterDOMRpcService(slaveTestCustomizer.getDOMRpcRouter()), yangParserFactory, + new RouterDOMRpcService(slaveTestCustomizer.getDOMRpcRouter()), yangParserFactory, yangTextToIR, slaveActorSystem, mockClusterSingletonServiceProvider, governanceProvider, rpcProviderService, null); masterConverter = new JsonRpcCodecFactory(masterTestCustomizer.getSchemaService().getGlobalContext()); diff --git a/provider/common/pom.xml b/provider/common/pom.xml index 048356a0..de2c5e67 100644 --- a/provider/common/pom.xml +++ b/provider/common/pom.xml @@ -24,7 +24,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal bnd-parent - 15.0.2 + 16.0.3 pom import diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java index 0c546d2a..7e5d6ce4 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/impl/RemoteControlProvider.java @@ -35,6 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.Config; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -62,13 +63,13 @@ public final class RemoteControlProvider @Activate public RemoteControlProvider(@Reference YangParserFactory yangParserFactory, - @Reference DataBroker dataBroker, @Reference DOMDataBroker domDataBroker, - @Reference DOMMountPointService domMountPointService, @Reference DOMSchemaService schemaService, - @Reference DOMRpcService domRpcService, + @Reference YangTextToIRSourceTransformer yangTextToIR, @Reference DataBroker dataBroker, + @Reference DOMDataBroker domDataBroker, @Reference DOMMountPointService domMountPointService, + @Reference DOMSchemaService schemaService, @Reference DOMRpcService domRpcService, @Reference DOMNotificationPublishService domNotificationPublishService, @Reference TransportFactory transportFactory) { this(new ProviderDependencies(transportFactory, dataBroker, domMountPointService, domDataBroker, schemaService, - domNotificationPublishService, domRpcService, yangParserFactory)); + domNotificationPublishService, domRpcService, yangParserFactory, yangTextToIR)); } public RemoteControlProvider(@NonNull ProviderDependencies dependencies) { diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java index dcc7ed7c..46d6a4df 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/model/CombinedSchemaContextProvider.java @@ -34,13 +34,13 @@ public class CombinedSchemaContextProvider implements SchemaContextProvider { } if (governanceProvider.get().isPresent()) { return new GovernanceSchemaContextProvider(governanceProvider.get().orElseThrow(), - dependencies.getYangParserFactory()); + dependencies.getYangParserFactory(), dependencies.getYangTextToIR()); } return new BuiltinSchemaContextProvider(dependencies.getSchemaService().getGlobalContext()); } @Override - public EffectiveModelContext createSchemaContext(@NonNull Peer peer) { + public EffectiveModelContext createSchemaContext(Peer peer) { Objects.requireNonNull(peer); return getProvider(peer).createSchemaContext(peer); } diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java index 908dd6bf..c7fe7363 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/GovernanceSchemaContextProvider.java @@ -7,8 +7,6 @@ */ package org.opendaylight.jsonrpc.provider.common; -import static org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer.transformText; - import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -31,13 +29,12 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.source.SourceDependency; import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.source.DelegatedYangTextSource; -import org.opendaylight.yangtools.yang.model.spi.source.SourceInfo; import org.opendaylight.yangtools.yang.model.spi.source.StringYangTextSource; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParser; import org.opendaylight.yangtools.yang.parser.api.YangParserException; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException; -import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangIRSourceInfoExtractor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,9 +47,12 @@ import org.slf4j.LoggerFactory; */ public class GovernanceSchemaContextProvider implements SchemaContextProvider { private static final Logger LOG = LoggerFactory.getLogger(GovernanceSchemaContextProvider.class); - private final RemoteGovernance governance; private static final Duration CACHE_TTL = Duration.ofMinutes(10L); + + private final RemoteGovernance governance; private final YangParserFactory yangParserFactory; + private final YangTextToIRSourceTransformer textToIR; + // cache to speed-up module import lookups private final LoadingCache> moduleImportCache = CacheBuilder.newBuilder() .expireAfterWrite(CACHE_TTL) @@ -62,11 +62,12 @@ public class GovernanceSchemaContextProvider implements SchemaContextProvider { LOG.trace("Resolving imports of module '{}'", key); final String content = sourceCache.getUnchecked(key); - final SourceInfo info = YangIRSourceInfoExtractor.forIR(transformText( - new StringYangTextSource(new SourceIdentifier(key.getModule()), content))); + final var sourceInfo = textToIR.transformSource( + new StringYangTextSource(new SourceIdentifier(key.getModule()), content)) + .extractSourceInfo(); return ImmutableSet.builder() - .addAll(info.imports()) - .addAll(info.includes()) + .addAll(sourceInfo.imports()) + .addAll(sourceInfo.includes()) .build(); } }); @@ -84,10 +85,11 @@ public class GovernanceSchemaContextProvider implements SchemaContextProvider { } }); - public GovernanceSchemaContextProvider(@NonNull final RemoteGovernance governance, - @NonNull final YangParserFactory yangParserFactory) { + public GovernanceSchemaContextProvider(final @NonNull RemoteGovernance governance, + final @NonNull YangParserFactory yangParserFactory, final @NonNull YangTextToIRSourceTransformer textToIR) { this.governance = Objects.requireNonNull(governance); this.yangParserFactory = Objects.requireNonNull(yangParserFactory); + this.textToIR = Objects.requireNonNull(textToIR); } @SuppressWarnings("checkstyle:IllegalCatch") diff --git a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java index a0537b23..5dfb1bb6 100644 --- a/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java +++ b/provider/common/src/main/java/org/opendaylight/jsonrpc/provider/common/ProviderDependencies.java @@ -16,6 +16,7 @@ import org.opendaylight.mdsal.dom.api.DOMMountPointService; import org.opendaylight.mdsal.dom.api.DOMNotificationPublishService; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.mdsal.dom.api.DOMSchemaService; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** @@ -33,12 +34,13 @@ public class ProviderDependencies { private final DOMNotificationPublishService domNotificationPublishService; private final DOMRpcService domRpcService; private final YangParserFactory yangParserFactory; + private final YangTextToIRSourceTransformer yangTextToIR; public ProviderDependencies(@NonNull TransportFactory transportFactory, @NonNull DataBroker dataBroker, @NonNull DOMMountPointService domMountPointService, @NonNull DOMDataBroker domDataBroker, @NonNull DOMSchemaService schemaService, @NonNull DOMNotificationPublishService domNotificationPublishService, @NonNull DOMRpcService domRpcService, - @NonNull YangParserFactory yangParserFactory) { + @NonNull YangParserFactory yangParserFactory, @NonNull YangTextToIRSourceTransformer yangTextToIR) { this.transportFactory = Objects.requireNonNull(transportFactory); this.dataBroker = Objects.requireNonNull(dataBroker); this.domMountPointService = Objects.requireNonNull(domMountPointService); @@ -47,6 +49,7 @@ public class ProviderDependencies { this.domNotificationPublishService = Objects.requireNonNull(domNotificationPublishService); this.domRpcService = Objects.requireNonNull(domRpcService); this.yangParserFactory = Objects.requireNonNull(yangParserFactory); + this.yangTextToIR = Objects.requireNonNull(yangTextToIR); } public TransportFactory getTransportFactory() { @@ -80,4 +83,8 @@ public class ProviderDependencies { public YangParserFactory getYangParserFactory() { return yangParserFactory; } + + public YangTextToIRSourceTransformer getYangTextToIR() { + return yangTextToIR; + } } diff --git a/provider/pom.xml b/provider/pom.xml index 5e1816c6..41612d2c 100644 --- a/provider/pom.xml +++ b/provider/pom.xml @@ -70,10 +70,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.yangtools yang-parser-api - - org.opendaylight.yangtools - yang-parser-impl - org.opendaylight.yangtools yang-data-codec-gson diff --git a/provider/single/pom.xml b/provider/single/pom.xml index 63c92338..c166b2f2 100644 --- a/provider/single/pom.xml +++ b/provider/single/pom.xml @@ -35,10 +35,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.yangtools yang-parser-api - - org.opendaylight.yangtools - yang-parser-impl - org.opendaylight.yangtools yang-data-codec-gson diff --git a/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java b/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java index 2511b7b1..7f603c27 100644 --- a/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java +++ b/provider/single/src/main/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProvider.java @@ -57,6 +57,7 @@ import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -83,13 +84,14 @@ public final class JsonRPCProvider implements AutoCloseable { @Activate public JsonRPCProvider(@Reference YangParserFactory yangParserFactory, - @Reference DataBroker dataBroker, @Reference RpcProviderService rpcProviderService, - @Reference DOMDataBroker domDataBroker, @Reference DOMMountPointService domMountPointService, - @Reference DOMSchemaService schemaService, @Reference DOMRpcService domRpcService, + @Reference YangTextToIRSourceTransformer yangTextToIR, @Reference DataBroker dataBroker, + @Reference RpcProviderService rpcProviderService, @Reference DOMDataBroker domDataBroker, + @Reference DOMMountPointService domMountPointService, @Reference DOMSchemaService schemaService, + @Reference DOMRpcService domRpcService, @Reference DOMNotificationPublishService domNotificationPublishService, @Reference TransportFactory transportFactory, @Reference GovernanceProvider governance) { this(new ProviderDependencies(transportFactory, dataBroker, domMountPointService, domDataBroker, schemaService, - domNotificationPublishService, domRpcService, yangParserFactory), governance); + domNotificationPublishService, domRpcService, yangParserFactory, yangTextToIR), governance); rpcReg = rpcProviderService.registerRpcImplementations( (ForceRefresh) this::forceRefresh, (ForceReload) this::forceReload); diff --git a/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java b/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java index eb2eaaa5..3959eaa6 100644 --- a/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java +++ b/provider/single/src/test/java/org/opendaylight/jsonrpc/provider/single/JsonRPCProviderTest.java @@ -58,6 +58,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.peer.RpcE import org.opendaylight.yang.gen.v1.urn.opendaylight.jsonrpc.rev161201.peer.RpcEndpointsKey; import org.opendaylight.yangtools.binding.DataObjectIdentifier; import org.opendaylight.yangtools.binding.util.BindingMap; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; /** @@ -92,7 +93,8 @@ public class JsonRPCProviderTest extends AbstractJsonRpcTest { getDataBroker(), getDOMMountPointService(), getDomBroker(), getSchemaService(), new RouterDOMPublishNotificationService(getDOMNotificationRouter()), new RouterDOMRpcService(getDOMRpcRouter()), - ServiceLoader.load(YangParserFactory.class).findFirst().orElseThrow()); + ServiceLoader.load(YangParserFactory.class).findFirst().orElseThrow(), + ServiceLoader.load(YangTextToIRSourceTransformer.class).findFirst().orElseThrow()); provider = new JsonRPCProvider(deps, () -> Optional.of(GOVERNANCE_MOCK)); logTestName("START"); } diff --git a/tools/test-tool/pom.xml b/tools/test-tool/pom.xml index e26eb5cb..8b722b46 100644 --- a/tools/test-tool/pom.xml +++ b/tools/test-tool/pom.xml @@ -51,6 +51,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html jsonrpc-test-model compile + + org.opendaylight.yangtools + dagger-yang-parser + diff --git a/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/GovernanceImpl.java b/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/GovernanceImpl.java index 418938cb..f4edea99 100644 --- a/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/GovernanceImpl.java +++ b/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/GovernanceImpl.java @@ -37,7 +37,7 @@ import org.opendaylight.jsonrpc.model.StoreOperationArgument; import org.opendaylight.yangtools.binding.meta.YangModuleInfo; import org.opendaylight.yangtools.binding.runtime.spi.BindingRuntimeHelpers; import org.opendaylight.yangtools.yang.model.spi.source.FileYangTextSource; -import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangIRSourceInfoExtractor; +import org.opendaylight.yangtools.yang.model.spi.source.YangTextToIRSourceTransformer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,21 +51,26 @@ final class GovernanceImpl implements RemoteGovernance { .build(new CacheLoader>() { @Override public Set load(Path file) throws Exception { - final var sourceInfo = YangIRSourceInfoExtractor.forYangText(new FileYangTextSource(file)); + final var sourceInfo = yangTextToIR.transformSource(new FileYangTextSource(file)) + .extractSourceInfo(); return Stream.concat(sourceInfo.imports().stream(), sourceInfo.includes().stream()) .map(m -> new ModuleInfo(m.name().getLocalName(), null)) .collect(Collectors.toSet()); } }); - private ResponderSession session; + private final YangTextToIRSourceTransformer yangTextToIR; private final Path yangDir; - GovernanceImpl(TransportFactory transportFactory, String endpoint, Path yangDir) throws URISyntaxException { + private ResponderSession session; + + GovernanceImpl(TransportFactory transportFactory, String endpoint, Path yangDir, + YangTextToIRSourceTransformer yangTextToIR) throws URISyntaxException { + this.yangDir = yangDir; + this.yangTextToIR = yangTextToIR; if (endpoint != null) { session = transportFactory.endpointBuilder().responder().create(endpoint, this); } - this.yangDir = yangDir; } @Override diff --git a/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java b/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java index 6b5c7da8..b10fe3be 100644 --- a/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java +++ b/tools/test-tool/src/main/java/org/opendaylight/jsonrpc/tool/test/Main.java @@ -22,8 +22,8 @@ import org.opendaylight.jsonrpc.bus.messagelib.TransportFactory; import org.opendaylight.jsonrpc.provider.common.GovernanceSchemaContextProvider; import org.opendaylight.jsonrpc.tool.test.Parameters.Options; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; -import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; -import org.opendaylight.yangtools.yang.xpath.impl.AntlrXPathParserFactory; +import org.opendaylight.yangtools.dagger.yang.parser.DaggerDefaultYangParserComponent; +import org.opendaylight.yangtools.yang.source.ir.dagger.YangIRSourceModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +45,8 @@ public final class Main { final Options opts = Parameters.createArgParser(args); final TransportFactory tf = new DefaultTransportFactory(); final Path yangDir = Path.of(opts.yangDirectory); - final GovernanceImpl governance = new GovernanceImpl(tf, opts.governance, yangDir); + final var yangTextToIR = YangIRSourceModule.provideTextToIR(); + final GovernanceImpl governance = new GovernanceImpl(tf, opts.governance, yangDir, yangTextToIR); LOG.info("Started : {}", governance); if (opts.datastore != null) { Preconditions.checkArgument(opts.datastoreModules != null, @@ -58,7 +59,7 @@ public final class Main { final DatastoreImpl datastore = DatastoreImpl.create(tf, opts.datastore, modules.stream().map(YangIdentifier::new).collect(Collectors.toSet()), new GovernanceSchemaContextProvider(governance, - new DefaultYangParserFactory(new AntlrXPathParserFactory()))); + DaggerDefaultYangParserComponent.create().parserFactory(), yangTextToIR)); LOG.info("Started : {}", datastore); } if (opts.rpc != null) { -- 2.34.1 From a8cc7752ba2553ea1784b24898fc2760d72aa08a Mon Sep 17 00:00:00 2001 From: jenkins-releng Date: Mon, 1 Jun 2026 15:51:39 +0000 Subject: [PATCH 4/4] Release Validate --- api/pom.xml | 2 +- artifacts/pom.xml | 2 +- binding-adapter/pom.xml | 2 +- bus/api/pom.xml | 2 +- bus/config/pom.xml | 2 +- bus/examples/binding-bridge/pom.xml | 2 +- bus/examples/inband-models/pom.xml | 2 +- bus/examples/pom.xml | 2 +- bus/jsonrpc/pom.xml | 2 +- bus/messagelib/pom.xml | 2 +- bus/pom.xml | 2 +- bus/spi/pom.xml | 2 +- bus/transport-http/pom.xml | 2 +- bus/transport-zmq/pom.xml | 2 +- dom-codec/pom.xml | 2 +- features/features-jsonrpc/pom.xml | 2 +- features/odl-jsonrpc-all/pom.xml | 2 +- features/odl-jsonrpc-bus/pom.xml | 2 +- features/odl-jsonrpc-cluster/pom.xml | 2 +- features/odl-jsonrpc-provider/pom.xml | 2 +- features/pom.xml | 2 +- karaf/pom.xml | 2 +- parent/pom.xml | 2 +- pom.xml | 2 +- provider/cluster/pom.xml | 2 +- provider/common/pom.xml | 2 +- provider/pom.xml | 2 +- provider/single/pom.xml | 2 +- security/aaa/pom.xml | 2 +- security/api/pom.xml | 2 +- security/noop/pom.xml | 2 +- security/pom.xml | 2 +- security/service/pom.xml | 2 +- test-model/pom.xml | 2 +- tools/parent/pom.xml | 2 +- tools/pom.xml | 2 +- tools/test-tool/pom.xml | 2 +- 37 files changed, 37 insertions(+), 37 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index faa48e3d..2065a002 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../parent jsonrpc-api diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 92648fe0..6d070a29 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-artifacts - 1.20.0-SNAPSHOT + 1.20.0 pom JSON-RPC :: Artifacts diff --git a/binding-adapter/pom.xml b/binding-adapter/pom.xml index 8a46dc27..cc4ef9c5 100644 --- a/binding-adapter/pom.xml +++ b/binding-adapter/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../parent diff --git a/bus/api/pom.xml b/bus/api/pom.xml index c751d101..47203337 100644 --- a/bus/api/pom.xml +++ b/bus/api/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.bus diff --git a/bus/config/pom.xml b/bus/config/pom.xml index 09ba9451..98d23ad2 100644 --- a/bus/config/pom.xml +++ b/bus/config/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.jsonrpc.bus bus-config - 1.20.0-SNAPSHOT + 1.20.0 JSON-RPC :: BUS :: Config Configuration files for JSONRPC bus jar diff --git a/bus/examples/binding-bridge/pom.xml b/bus/examples/binding-bridge/pom.xml index b69b7d2c..c54f87d9 100644 --- a/bus/examples/binding-bridge/pom.xml +++ b/bus/examples/binding-bridge/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../../parent org.opendaylight.jsonrpc.bus diff --git a/bus/examples/inband-models/pom.xml b/bus/examples/inband-models/pom.xml index 9c3a5336..6a714c9d 100644 --- a/bus/examples/inband-models/pom.xml +++ b/bus/examples/inband-models/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../../parent inband-models diff --git a/bus/examples/pom.xml b/bus/examples/pom.xml index 058d60a4..5f3ac5ff 100644 --- a/bus/examples/pom.xml +++ b/bus/examples/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-bus - 1.20.0-SNAPSHOT + 1.20.0 org.opendaylight.jsonrpc.bus examples diff --git a/bus/jsonrpc/pom.xml b/bus/jsonrpc/pom.xml index e626c582..9463bb36 100644 --- a/bus/jsonrpc/pom.xml +++ b/bus/jsonrpc/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.bus diff --git a/bus/messagelib/pom.xml b/bus/messagelib/pom.xml index adcc8c28..1086a22b 100644 --- a/bus/messagelib/pom.xml +++ b/bus/messagelib/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.bus diff --git a/bus/pom.xml b/bus/pom.xml index 2b653b21..3812307d 100644 --- a/bus/pom.xml +++ b/bus/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc - 1.20.0-SNAPSHOT + 1.20.0 jsonrpc-bus pom diff --git a/bus/spi/pom.xml b/bus/spi/pom.xml index 3c593ced..29899ead 100644 --- a/bus/spi/pom.xml +++ b/bus/spi/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.bus diff --git a/bus/transport-http/pom.xml b/bus/transport-http/pom.xml index 0c3814c3..2a41263f 100644 --- a/bus/transport-http/pom.xml +++ b/bus/transport-http/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.bus diff --git a/bus/transport-zmq/pom.xml b/bus/transport-zmq/pom.xml index 5ee1e3ee..45db2d4d 100644 --- a/bus/transport-zmq/pom.xml +++ b/bus/transport-zmq/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.bus diff --git a/dom-codec/pom.xml b/dom-codec/pom.xml index ac9ea82f..7a95a7f4 100644 --- a/dom-codec/pom.xml +++ b/dom-codec/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../parent diff --git a/features/features-jsonrpc/pom.xml b/features/features-jsonrpc/pom.xml index 916f14c1..f4da8982 100644 --- a/features/features-jsonrpc/pom.xml +++ b/features/features-jsonrpc/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc features-jsonrpc - 1.20.0-SNAPSHOT + 1.20.0 feature JSON-RPC :: Features :: repository diff --git a/features/odl-jsonrpc-all/pom.xml b/features/odl-jsonrpc-all/pom.xml index 3a89fea6..e6d5a185 100644 --- a/features/odl-jsonrpc-all/pom.xml +++ b/features/odl-jsonrpc-all/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc odl-jsonrpc-all - 1.20.0-SNAPSHOT + 1.20.0 feature JSON-RPC :: Feature :: all diff --git a/features/odl-jsonrpc-bus/pom.xml b/features/odl-jsonrpc-bus/pom.xml index a64a6204..7ba02979 100644 --- a/features/odl-jsonrpc-bus/pom.xml +++ b/features/odl-jsonrpc-bus/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc odl-jsonrpc-bus - 1.20.0-SNAPSHOT + 1.20.0 feature JSON-RPC :: Feature :: bus diff --git a/features/odl-jsonrpc-cluster/pom.xml b/features/odl-jsonrpc-cluster/pom.xml index 5e32e38d..85268449 100644 --- a/features/odl-jsonrpc-cluster/pom.xml +++ b/features/odl-jsonrpc-cluster/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc odl-jsonrpc-cluster - 1.20.0-SNAPSHOT + 1.20.0 feature JSON-RPC :: Feature :: Cluster diff --git a/features/odl-jsonrpc-provider/pom.xml b/features/odl-jsonrpc-provider/pom.xml index 28cde5f7..4ad2f825 100644 --- a/features/odl-jsonrpc-provider/pom.xml +++ b/features/odl-jsonrpc-provider/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc odl-jsonrpc-provider - 1.20.0-SNAPSHOT + 1.20.0 feature JSON-RPC :: Feature :: provider diff --git a/features/pom.xml b/features/pom.xml index 7aaa29ea..ef15371b 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -16,7 +16,7 @@ org.opendaylight.jsonrpc features-aggregator - 1.20.0-SNAPSHOT + 1.20.0 pom JSON-RPC :: Features :: Aggregator diff --git a/karaf/pom.xml b/karaf/pom.xml index d1d2d7ae..3e7743ad 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-karaf - 1.20.0-SNAPSHOT + 1.20.0 JSON-RPC :: Karaf pom diff --git a/parent/pom.xml b/parent/pom.xml index 9e6218de..28f65674 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -18,7 +18,7 @@ 4.0.0 org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 pom JSON-RPC :: Parent diff --git a/pom.xml b/pom.xml index e5b18bd9..d48a95ae 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc - 1.20.0-SNAPSHOT + 1.20.0 pom JSON-RPC :: POM diff --git a/provider/cluster/pom.xml b/provider/cluster/pom.xml index ada18871..f5800300 100644 --- a/provider/cluster/pom.xml +++ b/provider/cluster/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-provider - 1.20.0-SNAPSHOT + 1.20.0 .. diff --git a/provider/common/pom.xml b/provider/common/pom.xml index de2c5e67..dce5c88b 100644 --- a/provider/common/pom.xml +++ b/provider/common/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-provider - 1.20.0-SNAPSHOT + 1.20.0 .. diff --git a/provider/pom.xml b/provider/pom.xml index 41612d2c..cc4e00d4 100644 --- a/provider/pom.xml +++ b/provider/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../parent diff --git a/provider/single/pom.xml b/provider/single/pom.xml index c166b2f2..83755253 100644 --- a/provider/single/pom.xml +++ b/provider/single/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-provider - 1.20.0-SNAPSHOT + 1.20.0 .. diff --git a/security/aaa/pom.xml b/security/aaa/pom.xml index c0572b3e..95609c52 100644 --- a/security/aaa/pom.xml +++ b/security/aaa/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.security diff --git a/security/api/pom.xml b/security/api/pom.xml index 369e9e17..8856ba7d 100644 --- a/security/api/pom.xml +++ b/security/api/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.security diff --git a/security/noop/pom.xml b/security/noop/pom.xml index cf3be3c6..24c079e1 100644 --- a/security/noop/pom.xml +++ b/security/noop/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.security diff --git a/security/pom.xml b/security/pom.xml index 0c2ada45..c9a18473 100644 --- a/security/pom.xml +++ b/security/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc - 1.20.0-SNAPSHOT + 1.20.0 jsonrpc-security pom diff --git a/security/service/pom.xml b/security/service/pom.xml index 73f31276..ab7d0c12 100644 --- a/security/service/pom.xml +++ b/security/service/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent org.opendaylight.jsonrpc.security diff --git a/test-model/pom.xml b/test-model/pom.xml index 4208b032..993f0802 100644 --- a/test-model/pom.xml +++ b/test-model/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../parent jsonrpc-test-model diff --git a/tools/parent/pom.xml b/tools/parent/pom.xml index 7f4bec53..f499ad17 100644 --- a/tools/parent/pom.xml +++ b/tools/parent/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc-parent - 1.20.0-SNAPSHOT + 1.20.0 ../../parent tools-parent diff --git a/tools/pom.xml b/tools/pom.xml index 2d510af3..a9734f58 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc jsonrpc - 1.20.0-SNAPSHOT + 1.20.0 jsonrpc-tools pom diff --git a/tools/test-tool/pom.xml b/tools/test-tool/pom.xml index 8b722b46..579b8e1b 100644 --- a/tools/test-tool/pom.xml +++ b/tools/test-tool/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.jsonrpc tools-parent - 1.20.0-SNAPSHOT + 1.20.0 ../parent test-tool -- 2.34.1