yangtools.git
2 years agoAdd YangInstanceIdentifierWriter 50/99550/14
Robert Varga [Tue, 1 Feb 2022 17:14:32 +0000 (18:14 +0100)]
Add YangInstanceIdentifierWriter

Add a utility that allows us to emit a number of enter events
into a NormalizedNodeStreamWriter, so we dont have to create
the whole normalized node structure prior to writing into the
stream.

This allows us to ditch InstanceIdTo*Nodes classes, as the creation
of NormalizedNode structure can easily be performed through streaming
events.

JIRA: YANGTOOLS-1392
Change-Id: Iea17a27559573d523cc17683e56b41faafa54f31
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd FormattingNormalizedNodeStreamWriter 53/100053/2
Robert Varga [Wed, 9 Mar 2022 19:58:07 +0000 (20:58 +0100)]
Add FormattingNormalizedNodeStreamWriter

We will need some sort of quick validation for
YangInstanceIdentifierWriter and Strings seem to be convenient. Expose a
FormattingNormalizedNodeStreamWriter for other users as well.

Change-Id: I2383b4e206f593f0b6568e31fa0c6b829b7dd3f1
JIRA: YANGTOOLS-1392
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFixup OpenConfigRegexpPosixStatement definition 18/100018/2
Robert Varga [Wed, 9 Mar 2022 09:30:44 +0000 (10:30 +0100)]
Fixup OpenConfigRegexpPosixStatement definition

We should be using Empty instead of Void.

Change-Id: I1dcd442ca20053e2fa3e3214cc240e5b68d28dbc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoExpose SchemaValidationFailedException 10/100010/1
Robert Varga [Wed, 9 Mar 2022 06:28:25 +0000 (07:28 +0100)]
Expose SchemaValidationFailedException

This exception is used by downstreams, make sure they gen access to it.

Change-Id: Idc62321e197483469b7dfe0bcc0618f962297b98
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoExport org.opendaylight.yangtools.yang.data.tree.impl.di 06/100006/1
Robert Varga [Tue, 8 Mar 2022 18:45:01 +0000 (19:45 +0100)]
Export org.opendaylight.yangtools.yang.data.tree.impl.di

Downstreams are not ready for us shutting down access to this package
in OSGi world. Make sure it is exported.

Change-Id: Iadce73e45f622a7bb496ba29643f4f84baff9150
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove AugmentationSchemaNode.getOriginalDefinition() 96/97896/6
Robert Varga [Fri, 15 Oct 2021 08:13:16 +0000 (10:13 +0200)]
Remove AugmentationSchemaNode.getOriginalDefinition()

There is only one user of this method and it is able to cope with
it being gone. Remove it along with parser methods it needs to work.

JIRA: YANGTOOLS-1379
Change-Id: I3d0ef9378975b140ff5c9dc61eab3fa77a4dfdcd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 10.0.0 67/99767/14
Robert Varga [Tue, 15 Feb 2022 20:54:54 +0000 (21:54 +0100)]
Bump odlparent to 10.0.0

Adopt odlparent-10, addressing a few issues flushed out.

Change-Id: I1b9f2500548ab6193e660cbef04ccaf9a0649679
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRename {Data,Schema}TreeAwareEffectiveStatement.Namespace 34/99934/2
Robert Varga [Wed, 2 Mar 2022 13:43:48 +0000 (14:43 +0100)]
Rename {Data,Schema}TreeAwareEffectiveStatement.Namespace

These two namespaces are related and are often used together, yet their
naming gets into way. Rename them to {Data,Schema}TreeNamespace and
adjust users.

Change-Id: I1978bb31cb19856ba10006f0c891f8c16c694292
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove EffectiveAugmentationSchema.create() 32/99932/2
Robert Varga [Wed, 2 Mar 2022 11:30:57 +0000 (12:30 +0100)]
Remove EffectiveAugmentationSchema.create()

This is a simple class, there is no need to have a static method, just
a constructor suffices.

Change-Id: I0eeff5c1f5dbcefe6f0b356323762cb2a3152b9f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoTolerate children not being present 30/99930/4
Robert Varga [Wed, 2 Mar 2022 08:15:03 +0000 (09:15 +0100)]
Tolerate children not being present

Augment's children are subject to deviations at augment target, hence
we need to check for their presence. Also add some sorely-missing
documentation as to what this class actually does.

JIRA: YANGTOOLS-1404
Change-Id: I98cce6b2a8bff74658a16553f93eb8049dd038b7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMark StmtContextUtils.isInExtensionBody() FIXME 29/99929/1
Robert Varga [Wed, 2 Mar 2022 00:00:19 +0000 (01:00 +0100)]
Mark StmtContextUtils.isInExtensionBody() FIXME

This methods dates back as far as April 2015, and probably does things
we do not really want to do. Drop a FIXME for a follow-up.

Change-Id: I3372171606ecb26b742de3fa772ece65df4b693b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix {Data,Schema}TreeAwareEffectiveStatement.Namespace 26/99926/4
Robert Varga [Tue, 1 Mar 2022 22:44:24 +0000 (23:44 +0100)]
Fix {Data,Schema}TreeAwareEffectiveStatement.Namespace

These two namespaces should not be generic, but rather specialized
to the corresponding wildcard statement. This fixes a number of
usability issues where type inference would not work correctly.

Change-Id: I0b4a2461df58265ae2db795c0c81e2b4e5972e41
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix AugmentEffectiveStatement javadoc 24/99924/1
Robert Varga [Tue, 1 Mar 2022 20:42:12 +0000 (21:42 +0100)]
Fix AugmentEffectiveStatement javadoc

We have leading + signs here, remove them.

Change-Id: Iff1c28e7b6fce061bbe10b1c50fedd21c3cfb71d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoTolerate null return from execution 18/99918/1
Robert Varga [Tue, 1 Mar 2022 12:06:05 +0000 (13:06 +0100)]
Tolerate null return from execution

We have inconsistent handling of null, fix that up.

Change-Id: I3357162f85fb41dc2ea94bd1819f6731d53b8c77
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix eclipse warnings 16/99916/1
Robert Varga [Tue, 1 Mar 2022 10:30:29 +0000 (11:30 +0100)]
Fix eclipse warnings

We have a warning about nullability mismatch, fix that through local
variable type inference.

Change-Id: Id0512b52b42ae04e2ffa311fb6ca3e0406c9776c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove unneeded constant 86/99886/1
Robert Varga [Mon, 28 Feb 2022 21:59:22 +0000 (22:59 +0100)]
Remove unneeded constant

We do not need the Splitter anymore, remove it.

Change-Id: I6715a730540457d244b5859a3ddafd0f527c640e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix javadoc warnings in ImmutableOffsetMap 71/99871/2
Robert Varga [Fri, 25 Feb 2022 07:22:54 +0000 (08:22 +0100)]
Fix javadoc warnings in ImmutableOffsetMap

We have undocumented K/V parameters, fix that.

Change-Id: I2dee30f7ed0cf0ad9d8124f6bd3029a15bc52156
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix javadoc warnings in ExecutorServiceUtil 70/99870/2
Robert Varga [Fri, 25 Feb 2022 07:21:12 +0000 (08:21 +0100)]
Fix javadoc warnings in ExecutorServiceUtil

A few undocumented parameters, fix that.

Change-Id: I35d48729869196eaed472eaf3d16e759ad3fbfdc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix javadoc warnings in DurationStatisticsTracker 69/99869/2
Robert Varga [Fri, 25 Feb 2022 07:18:48 +0000 (08:18 +0100)]
Fix javadoc warnings in DurationStatisticsTracker

There are a number of missing @return directives, add them.

Change-Id: I6965b4ec9e8ca01cc9192fa067cce0edcc84cd2e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix spotbugs issues in yang-parser-spi 00/88500/11
Robert Varga [Thu, 17 Feb 2022 11:16:36 +0000 (12:16 +0100)]
Fix spotbugs issues in yang-parser-spi

SpotBugs is correctly pointing out that we could in theory end
up with a null dereference here. Make sure we verifyNotNull() it
and produce a correct message.

Change-Id: Ib4097986c3e329046be273a4992a7b7112951c5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix InstanceIdentifier.getAncestor() implementations 94/88494/9
Robert Varga [Wed, 18 Mar 2020 14:10:37 +0000 (15:10 +0100)]
Fix InstanceIdentifier.getAncestor() implementations

SpotBugs is touchy about nulls here, all of which are guaranteed
to work out due to verification logic -- but that is not quite
obvious. Fix this up by adding explicit verifies -- which do not
hurn that much.

Change-Id: I92a120c9f8d4fced2bf3e8a859772cf6d41798df
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAugmentEffectiveStatement should be SchemaTreeAware 80/99780/3
Robert Varga [Wed, 16 Feb 2022 22:27:07 +0000 (23:27 +0100)]
AugmentEffectiveStatement should be SchemaTreeAware

Design of downstream users' classes is somewhat hampered by
AugmentEffectiveStatement not exposing the fact it roots schema tree
addressable components. Fix that and eliminate AbstractDataNodeContainer
as it is no longer needed.

JIRA: YANGTOOLS-1400
Change-Id: I8c34d64e61efbf18780975718d017d12284763d4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSimplify Abstract{Declared,Undeclareds}EffectiveStatement 79/99779/2
Robert Varga [Wed, 16 Feb 2022 22:10:13 +0000 (23:10 +0100)]
Simplify Abstract{Declared,Undeclareds}EffectiveStatement

We have a superfluous argument of the EffectiveStatement representation.
Remove it to simplify user verbosity.

Change-Id: I203431817313b8325a3599b29cffb85af7a11c4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove YangNames annotations a bit 73/99773/2
Robert Varga [Wed, 16 Feb 2022 08:42:06 +0000 (09:42 +0100)]
Improve YangNames annotations a bit

We guarantee a @NonNull return and have a well-defined behaviour
on null arguments.

Change-Id: I42532863520529c07b026176acf05c8000626f48
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAlign odlparent version 69/99769/1
Robert Varga [Tue, 15 Feb 2022 22:13:47 +0000 (23:13 +0100)]
Align odlparent version

bnd-parent is a new addition and we missed a version bump here. Fix
that.

Change-Id: Icdf022e2bae88d694962cff76b0fdbcb6f741b53
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoVerify exclusion consistency 68/99768/1
Robert Varga [Tue, 15 Feb 2022 21:57:15 +0000 (22:57 +0100)]
Verify exclusion consistency

SpotBugs warns on null here, make sure to add verifyNotNull(). Also
used import static for Verify and Preconditions methods.

Change-Id: I807ab197b60d8df2cd8a95541f83cbef8020661b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoVerify map lookups 66/99766/1
Robert Varga [Tue, 15 Feb 2022 21:36:56 +0000 (22:36 +0100)]
Verify map lookups

SpotBugs is pointing out a number of unsafe lookups which could (in
theory) lead to a NPE. In reality they cannot, as they are pre-filled.
Add verifyNotNull() guards to keep SpotBugs happy.

Change-Id: I7d342709aba03fd51d0a27c1676cba8a89fc5374
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup docs dependencies 65/99765/1
Robert Varga [Tue, 15 Feb 2022 21:15:23 +0000 (22:15 +0100)]
Cleanup docs dependencies

Use broken-out annotations instead of osgi.{annotation,cmpn}.

Change-Id: I5946c90eae29de072534fcc611b6c18e8be6475d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo no use osgi.cmpn 64/99764/1
Robert Varga [Tue, 15 Feb 2022 20:59:38 +0000 (21:59 +0100)]
Do no use osgi.cmpn

org.osgi.service.component.annotations provides a properly-broken out
annotations, use those instead of the entire compendium.

Change-Id: Idba9b56a392843bc65543b430829a25d7d629979
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd OrderedByAwareEffectiveStatement 01/99701/3
Robert Varga [Fri, 11 Feb 2022 22:16:07 +0000 (23:16 +0100)]
Add OrderedByAwareEffectiveStatement

Add OrderedByAwareEffectiveStatement and UserOrderedAware interfaces to
capture inquiries about how child data nodes are to be ordered.

JIRA: YANGTOOLS-1399
Change-Id: I52e4da6bc86593730f7927e8b5435dd9a80e4677
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoPush out NormalizedNodeContainer.body() specializations 96/99696/1
Robert Varga [Fri, 11 Feb 2022 16:01:33 +0000 (17:01 +0100)]
Push out NormalizedNodeContainer.body() specializations

We do not have the prerequisites needed to specialize body()
specification, push the FIXMEs out to the next release.

Change-Id: I47ac366215ec6ae72bb6d15039d302b93913c658
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUpdate SystemLeafSetNode documentation 95/99695/1
Robert Varga [Fri, 11 Feb 2022 15:55:24 +0000 (16:55 +0100)]
Update SystemLeafSetNode documentation

The previous refactor failed to update the documentation to reflect
the difference from UserLeafSetNode. Fix that.

Change-Id: I46f749f6a88833c8cd893a22b194fc416138fdac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAddress XPath unicode range TODO 66/99666/2
Robert Varga [Tue, 8 Feb 2022 19:29:23 +0000 (20:29 +0100)]
Address XPath unicode range TODO

This is a port of
https://github.com/antlr/grammars-v4/commit/3edc28b7a1f1ff4a40ef1ebb8c14bb28848d34bf
addressing a leftover omission.

Change-Id: Ic5460c1ec2dd4865fb25f858f107da89e0be284b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove unneeded dependency declaration 60/99660/1
Robert Varga [Tue, 8 Feb 2022 17:13:05 +0000 (18:13 +0100)]
Remove unneeded dependency declaration

bnd-parent is pulling in all the interesting OSGi annotations, hence we
do not need to declare them.

Change-Id: I8561949f039b6fd6ec7e6e12014734c25f097624
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not depend on osgi.annotation 59/99659/2
Robert Varga [Tue, 8 Feb 2022 17:07:41 +0000 (18:07 +0100)]
Do not depend on osgi.annotation

We are using split-out OSGi bundles, make sure our dependencies are
correct.

Change-Id: Iddec9156698f26919c45dabe98d27e16c9480d3c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not export yang.parser.rfc7950.{namespace,stmt} 58/99658/2
Robert Varga [Tue, 8 Feb 2022 15:53:00 +0000 (16:53 +0100)]
Do not export yang.parser.rfc7950.{namespace,stmt}

These packages are not used anywhere in ODL proper, do not export them
to further isolate implementation internals.

Change-Id: Ic3a224eea07a49703fff9668ecb7b35e02b78611
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove yang-parser-antlr 57/99657/3
Robert Varga [Tue, 8 Feb 2022 15:36:01 +0000 (16:36 +0100)]
Remove yang-parser-antlr

The antlr grammar is an implementation-internal detail which we broke
out to keep spotbugs happy. It turns out we can keep it happy with a
simple suppression.

Move the grammar and eliminate its artifact, making things a bit
smoother.

JIRA: YANGTOOLS-1395
Change-Id: If6ea5b3f7940423361f115e3f807c7a3ed7b1f67
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove yang-xpath-antlr 56/99656/3
Robert Varga [Tue, 8 Feb 2022 15:13:49 +0000 (16:13 +0100)]
Remove yang-xpath-antlr

The antlr grammar is an implementation-internal detail which we broke
out to keep spotbugs happy. It turns out we can keep it happy with a
simple suppression.

Move the grammar and eliminate its artifact, making things a bit
smoother.

JIRA: YANGTOOLS-1395
Change-Id: I3632549f9039a28866895ffaa7ffd7d9774c06a1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate yang-xpath-impl to bnd-parent 55/99655/1
Robert Varga [Tue, 8 Feb 2022 15:06:21 +0000 (16:06 +0100)]
Migrate yang-xpath-impl to bnd-parent

bnd-parent is a more modern replacement for bundle-parent, use that.

Change-Id: Ib20d9a709afade8a328db20400938299f3b6db5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate yang-xpath-antlr to bnd-parent 54/99654/1
Robert Varga [Tue, 8 Feb 2022 14:57:22 +0000 (15:57 +0100)]
Migrate yang-xpath-antlr to bnd-parent

bnd-parent is a more modern replacement, migrate to use it.

Change-Id: I9c2545098f23609512cef7a4c4715d56872eb1ff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate yang-xpath-api to bnd-parent 53/99653/1
Robert Varga [Tue, 8 Feb 2022 14:53:09 +0000 (15:53 +0100)]
Migrate yang-xpath-api to bnd-parent

Use bnd-parent instead of bundle-parent, so we end up with cleaner
integration.

Change-Id: Ic32867bf8fe9cfeca7b4fdff02d74efb1de7d6ff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate common/util to bnd-parent 52/99652/3
Robert Varga [Tue, 8 Feb 2022 13:38:45 +0000 (14:38 +0100)]
Migrate common/util to bnd-parent

We have a better-integrated parent, use that instead of the old felix
plugin. Also add a bit of documentation.

Change-Id: Id400abd10892fd350f3f50119f5247d09f6e5fe4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd a uses/refine test 51/99651/1
Robert Varga [Tue, 8 Feb 2022 13:24:14 +0000 (14:24 +0100)]
Add a uses/refine test

Improve the test model to also check refine target.

JIRA: YANGTOOLS-1393
Change-Id: Ie9a45310112ad4fea9f2ff7ffd5d7eaf088596b3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd a @return 49/99649/2
Robert Varga [Tue, 8 Feb 2022 10:30:37 +0000 (11:30 +0100)]
Add a @return

javadoc does not like us not documenting @return, fix that.

Change-Id: I8704a50316d9c090f542a102073d5b58361d263d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not subclass XMLUnit 61/99561/2
Robert Varga [Thu, 3 Feb 2022 08:41:44 +0000 (09:41 +0100)]
Do not subclass XMLUnit

We just want an assert, eliminate an Eclipse warning by using XMLAssert
directly.

Change-Id: I14443c83c473ee18c25e894c51a391c3c285a375
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoHide JsonParserStream.read() 56/99556/2
Robert Varga [Wed, 2 Feb 2022 12:15:52 +0000 (13:15 +0100)]
Hide JsonParserStream.read()

This method seems to be mistakenly exposed, hide it from outside world.

Change-Id: I9bed2ee56774f918fd74468b831a10c156f8a87a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix YangTextSchemaSource error report 41/99641/2
Robert Varga [Tue, 8 Feb 2022 07:57:45 +0000 (08:57 +0100)]
Fix YangTextSchemaSource error report

Exception arguments are mismatched, fix that up.

Change-Id: Ic77d78c50ea8c98d8070d6d2ccd1d0cba996f7bb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not enforce augments in unsupported nodes 75/99575/3
Robert Varga [Tue, 1 Feb 2022 12:28:53 +0000 (13:28 +0100)]
Do not enforce augments in unsupported nodes

If our parent uses node is not supported by features, we should not be
trying to enforce the augmentation dependency, as it will not be
present.

JIRA: YANGTOOLS-1393
Change-Id: I4b9cff536f4bbd33314f8befb1d70151a5f4f5de
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisable uses/augment statements of unsupported paths 02/99602/2
Robert Varga [Sun, 6 Feb 2022 18:28:26 +0000 (19:28 +0100)]
Disable uses/augment statements of unsupported paths

Uses statements should propagate unsupported-by-features statements
as unsupported-to-build statements.

JIRA: YANGTOOLS-1393
Change-Id: Ie373b3f0cf7539219b68d1e7b52f6d348ff246e5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix javadoc build 28/99528/1
Robert Varga [Sun, 30 Jan 2022 00:32:54 +0000 (01:32 +0100)]
Fix javadoc build

We have merge job failing on javadocs, make sure we repair that.

Change-Id: I6c0513bde22aa02ce0685e4b40d4c28ea7d777b4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.13 26/99526/1
Robert Varga [Sat, 29 Jan 2022 23:15:12 +0000 (00:15 +0100)]
Bump odlparent to 9.0.13

Pick up latest fixes from upstream.

Change-Id: I5f62f890e019d5b0b14b384b61344ec61a506c8d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd SoftSchemaSourceCache 24/99424/2
Robert Varga [Wed, 26 Jan 2022 10:04:39 +0000 (11:04 +0100)]
Add SoftSchemaSourceCache

GuavaSchemaSourceCache has a rather ugly design, which cannot be easily
scaled. Introduce a simpler SoftSchemaSourceCache as its replacement.

JIRA: YANGTOOLS-1391
Change-Id: I0de9092885ede3efff9d76d48ec14b85a69818b2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 0cd2c12e31e8bdf3463b8282a6c6cc2e6995c140)

2 years agoClean up GuavaSchemaSourceCacheTest 37/99437/1
Robert Varga [Tue, 25 Jan 2022 15:49:50 +0000 (16:49 +0100)]
Clean up GuavaSchemaSourceCacheTest

This is a rather ancient test, clean it up with try-with-resources
block plus a few other niceties.

Change-Id: I1965446d501ab5ddb57657efbd6b2e242fdad2b6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSimplify GuavaSchemaSourceCache.offer() a bit 26/99426/2
Robert Varga [Mon, 24 Jan 2022 16:35:30 +0000 (17:35 +0100)]
Simplify GuavaSchemaSourceCache.offer() a bit

We do not have to access the source id multiple times and can lower
cognitive load with an early return.

Change-Id: I418769fb17bb0f1b82107aa644c103d06b9c4a03
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse representation class for casting 25/99425/1
Robert Varga [Mon, 24 Jan 2022 16:30:54 +0000 (17:30 +0100)]
Use representation class for casting

We have an unchecked cast supressed here. Use Class.cast() to get
rid of it.

Change-Id: Ie39f9d21095a438a72dc88945e54d1846becf01d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate yang-common to bnd-parent 83/99383/1
Robert Varga [Wed, 19 Jan 2022 12:51:22 +0000 (13:51 +0100)]
Migrate yang-common to bnd-parent

yang-common is a simple component, migrate it to bind-plugin. Also make
sure package-info.java is correctly named.

Change-Id: I5a16bab7056ea6d6124773d1ab71ddc752e0b7a9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate concepts to bnd-parent 41/98141/7
Robert Varga [Tue, 26 Oct 2021 15:25:17 +0000 (17:25 +0200)]
Migrate concepts to bnd-parent

A straightforward migration to use bnd-maven-plugin.

Change-Id: Ie8bb442046b611eeec072a3e4f18eb98f955ef80
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not instantiate JsonParser 56/99356/1
Robert Varga [Tue, 18 Jan 2022 11:42:49 +0000 (12:42 +0100)]
Do not instantiate JsonParser

JsonParser.parse() should not be used, but rather its equivalent static
methods should be invoked. Migrate tests to do so, fixing a few warnings
in the process.

Change-Id: I6bbfad51c584a5dc0e752bcbb1ed2ec3cdff483f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse try-with-resources in TestUtils 55/99355/1
Robert Varga [Tue, 18 Jan 2022 10:35:08 +0000 (11:35 +0100)]
Use try-with-resources in TestUtils

Eclipse is pointing out we should be managing resources properly, fix
that.

Change-Id: I34e8040bca7c5003e4830134ccc37d0cd44d2387
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUpdate XXX to a FIXME 52/99352/1
Robert Varga [Tue, 18 Jan 2022 10:28:17 +0000 (11:28 +0100)]
Update XXX to a FIXME

Promote a simple note to a full-blown FIXME, as it seems we should be
able to convert BigDecimal more efficiently than we do today.

Change-Id: I50b84a68c961e1bd2f8c8284e3f0f196c6717900
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo no use Builder concept in RpcResultBuilder 51/99351/2
Robert Varga [Tue, 18 Jan 2022 08:55:29 +0000 (09:55 +0100)]
Do no use Builder concept in RpcResultBuilder

The concept as such will be removed in a future release, make sure we do
not use it internally.

JIRA: YANGTOOLS-1328
Change-Id: Ic9a128a9ae62b97e9346630f53fe822050a2b5b9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect QNamePredicatedBuilder from Builder 50/99350/1
Robert Varga [Tue, 18 Jan 2022 08:52:20 +0000 (09:52 +0100)]
Disconnect QNamePredicatedBuilder from Builder

The Builder concept is going away, make sure we do not use it.

JIRA: YANGTOOLS-1328
Change-Id: Icdd771fe3694b3df07f2ab8edbf667714ae48155
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect yang-data-util from concepts.Builder 49/99349/1
Robert Varga [Tue, 18 Jan 2022 08:49:11 +0000 (09:49 +0100)]
Disconnect yang-data-util from concepts.Builder

The Builder concept is going away, do not use it during XPath parsing.

JIRA: YANGTOOLS-1328
Change-Id: I4f9547d38d8786f7b9b771f264f6e941c11fb089
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not use concepts.Builder in parser-rfc7950 48/99348/1
Robert Varga [Tue, 18 Jan 2022 08:08:45 +0000 (09:08 +0100)]
Do not use concepts.Builder in parser-rfc7950

The Builder concept is going away, do not use it.

JIRA: YANGTOOLS-1328
Change-Id: If58b3912e5cc6696c306b3140e4ed213d80e2def
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect rfc7952-data-util from concepts.Builder 47/99347/2
Robert Varga [Tue, 18 Jan 2022 07:28:49 +0000 (08:28 +0100)]
Disconnect rfc7952-data-util from concepts.Builder

The Builder concept is going away, do not use it in
ImmutableNormalizedMetadata.

JIRA: YANGTOOLS-1328
Change-Id: I150c64320212bac82c2c0e19b48989818c344dd1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.11 39/99339/3
Robert Varga [Mon, 17 Jan 2022 21:22:34 +0000 (22:22 +0100)]
Bump odlparent to 9.0.11

Pick up latest upgrades from upstream.

Change-Id: I94e66ee818a39828e0df3d541a6817c2b304720d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect yang-datae-tree-ri from concepts.Builder 46/99346/1
Robert Varga [Tue, 18 Jan 2022 07:23:48 +0000 (08:23 +0100)]
Disconnect yang-datae-tree-ri from concepts.Builder

concepts.Builder is going away, do not rely on it for our internal
classes.

JIRA: YANGTOOLS-1328
Change-Id: Idc02cfdb4b62a8d4444263b48ab30459bcd21de1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect DeclaredStatementFormatter from Builder 45/99345/1
Robert Varga [Tue, 18 Jan 2022 07:17:10 +0000 (08:17 +0100)]
Disconnect DeclaredStatementFormatter from Builder

concepts.Builder is going away, do not use it for
DeclaredStatementFormatter.Builder.

JIRA: YANGTOOLS-1328
Change-Id: Iaae40f9e0ce95390f67dadad881f5c137aefd403
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect DataTreeConfiguration.Builder 38/99338/1
Robert Varga [Mon, 17 Jan 2022 19:32:42 +0000 (20:32 +0100)]
Disconnect DataTreeConfiguration.Builder

concepts.Builder is being removed, make sure we do not use it for
DataTreeConfiguration.

JIRA: YANGTOOLS-1328
Change-Id: Ifdfba8436fb8207e9fa56f20774d7265ebced818
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate (Checked)Builder for removal 25/99325/8
Robert Varga [Mon, 17 Jan 2022 15:55:29 +0000 (16:55 +0100)]
Deprecate (Checked)Builder for removal

We do not have any users in yangtools and most downstreams, deprecated
these interfaces for removal.

JIRA: YANGTOOLS-1328
Change-Id: I30cb381a398eb33c2ea8d65d9a89bb279df36ca4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect yang-model-ri from Builder 37/99337/2
Robert Varga [Mon, 17 Jan 2022 19:09:57 +0000 (20:09 +0100)]
Disconnect yang-model-ri from Builder

concepts.Builder is going away, remove its use from yang-model-ri.

JIRA: YANGTOOLS-1328
Change-Id: I42dabe2924bffc2d6c60ed70111b7d65735cbee0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect CrossSourceStatementReactor.Builder 36/99336/1
Robert Varga [Mon, 17 Jan 2022 19:04:04 +0000 (20:04 +0100)]
Disconnect CrossSourceStatementReactor.Builder

concepts.Builder is going away, do not use it in
CrossSourceStatementReactor.

JIRA: YANGTOOLS-1328
Change-Id: I45b719963df1909f61446f9b3eacd41970be30d9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect StatementSupportBundle.Builder from concepts 32/99332/2
Robert Varga [Mon, 17 Jan 2022 17:10:34 +0000 (18:10 +0100)]
Disconnect StatementSupportBundle.Builder from concepts

concepts.Builder is going away, disconnect it from
StatementSupportBundle.

JIRA: YANGTOOLS-1327
Change-Id: I465b1b39b43281dbf4f1ab479036c4cb04a7c2f5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect YangParserConfiguration.Builder from concepts 31/99331/2
Robert Varga [Mon, 17 Jan 2022 17:05:46 +0000 (18:05 +0100)]
Disconnect YangParserConfiguration.Builder from concepts

concepts.Builder is going away, disconnect it from yang-parser-api.

JIRA: YANGTOOLS-1327
Change-Id: I96c7a07f4589927fd4cee799a4a1ec8791d97d62
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect SchemaContextFactoryConfiguration.Builder 30/99330/2
Robert Varga [Mon, 17 Jan 2022 17:00:50 +0000 (18:00 +0100)]
Disconnect SchemaContextFactoryConfiguration.Builder

concepts.Builder is going away, make sure we do not use it for
SchemaContextFactoryConfiguration.

JIRA: YANGTOOLS-1327
Change-Id: I3f0a671362d4a3ef80c4082687507865481309b8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDisconnect NormalizedNodeBuilder from Builder 29/99329/1
Robert Varga [Mon, 17 Jan 2022 16:28:15 +0000 (17:28 +0100)]
Disconnect NormalizedNodeBuilder from Builder

concepts.Builder is going away, disconnect it from
NormalizedNodeBuilder.

Change-Id: I2e4f07a81695f23bc9833708af5905efc8acb5aa
JIRA: YANGTOOLS-1327
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDecouple YangInstanceIdentifierBuilder from Builder 28/99328/1
Robert Varga [Mon, 17 Jan 2022 16:23:04 +0000 (17:23 +0100)]
Decouple YangInstanceIdentifierBuilder from Builder

concepts.Builder is going away, make sure we decouple it.

JIRA: YANGTOOLS-1327
Change-Id: I7a6e47df5f7a2900574aa8f4ff011429f21dd719
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDecouple HashCodeBuilder from Builder 27/99327/1
Robert Varga [Mon, 17 Jan 2022 16:09:58 +0000 (17:09 +0100)]
Decouple HashCodeBuilder from Builder

We are deprecating Builder concept and HashCodeBuilder does not really
like having to inflate to java.lang.Integer. Ditch the indirection.

JIRA: YANGTOOLS-1327
Change-Id: Ia19d9d97064cb099c25f11dac6aa7c08e983effd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove redundant type arguments 26/99326/1
Robert Varga [Mon, 17 Jan 2022 16:05:57 +0000 (17:05 +0100)]
Remove redundant type arguments

We have Java 11, hence we can use diamond notation for anonymous
subclasses.

Change-Id: I2c30624fde5a9896f98a63d57d6d50b26e009f3f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate (Checked)Builder 21/99321/1
Robert Varga [Mon, 17 Jan 2022 13:28:39 +0000 (14:28 +0100)]
Deprecate (Checked)Builder

These interfaces are rather overarching, causing callers of build()
method to be opaque. Deprecate them so downstreams can gradually migrate
away.

JIRA: YANGTOOLS-1327
Change-Id: I204252c9175c4eeb7b960f4d073c32eaca834316
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove overridden ImmmutableNodes.fromInstanceId() 50/99250/2
Robert Varga [Mon, 10 Jan 2022 12:43:51 +0000 (13:43 +0100)]
Remove overridden ImmmutableNodes.fromInstanceId()

These methods are geared towards NETCONF filter creation, which is being
solved in a different way -- as these do not work form leaves anyway.
Remove the methods to reduce confusion.

JIRA: YANGTOOLS-1390
Change-Id: I52ebe9be906e516ef23447f77e80c56dcf86a8d0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate ImmutableNodes.fromInstanceId() with deepestElement 49/99249/2
Robert Varga [Mon, 10 Jan 2022 12:25:59 +0000 (13:25 +0100)]
Deprecate ImmutableNodes.fromInstanceId() with deepestElement

The two methods allowing an override of the deepest element have only a
single user, which is broken by their semantics. Deprecate them for
removal, so that we flush out anyone else still relying on them.

JIRA: YANGTOOLS-1389
Change-Id: I52e8bdebc5488d095645a7bfb45a5c9cf400ecb0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate SemVer import mode 24/98024/6
Robert Varga [Thu, 21 Oct 2021 08:48:35 +0000 (10:48 +0200)]
Deprecate SemVer import mode

Semantic version imports are not used by anyone and have a rather
convoluted implementation. Deprecate them along with their supporting
elements.

JIRA: YANGTOOLS-1354
Change-Id: I6b41c3407d51833cb13445517e896be39b371ac8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.10 27/99227/1
Robert Varga [Sun, 9 Jan 2022 17:04:52 +0000 (18:04 +0100)]
Bump odlparent to 9.0.10

Pick up latest upgrades from upstream.

Change-Id: Idb182da59822f408640750cc6c5cb4d09ea3fc5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 99828ad40463849ed5cbe26fb8d4d38093c73dc3)

2 years agoFix a nullness warning 90/99190/2
Robert Varga [Wed, 5 Jan 2022 10:11:55 +0000 (11:11 +0100)]
Fix a nullness warning

We are guaranteeing a non-null return, so that takeSnapshot() API
contract is kept.

Change-Id: If8082b8a959afea615fc16d330b5174af83abb25
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoValidate unique statement references 17/99017/15
Robert Varga [Wed, 15 Dec 2021 17:24:37 +0000 (18:24 +0100)]
Validate unique statement references

Unique statement's argument needs to be validated against the effective
model, so that we discover when we have mismatches in arguments.

JIRA: YANGTOOLS-1385
Change-Id: I4e41563b40dae6a186d8763d9711ce0c54afdbc3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not mask single exceptions 85/99185/3
Robert Varga [Mon, 3 Jan 2022 12:54:16 +0000 (13:54 +0100)]
Do not mask single exceptions

If we end up with a single exception, do not wrap it in
InferenceException, as we want to correctly identify whether it is a
problem with the source or inference.

Change-Id: I9963ec5067145b5886a2bf20cba4bd8104794afe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoPopulate ietf-restconf operations container 89/97689/35
Robert Varga [Thu, 30 Sep 2021 17:30:07 +0000 (19:30 +0200)]
Populate ietf-restconf operations container

The 'operations' container defined in ietf-restconf module has magic
semantics: it needs to have an empty leaf for every RPC that is
available in the EffectiveModelContext.

WWe are hard-pressed here to make things work with our parser
infrastructure, as we currently do not have hooks to do this kind of
schema-tree specific magic. Luckily there is also a YANG extension in
that same model, so we hijack that to hook onto to the container
inference and modify it just in time and make the magic happen.

JIRA: YANGTOOLS-1338
Change-Id: I9cf774a148f0e764940b9725f717fa0c60ef1bf9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove an unneeded yang-data-spi dependency 88/99188/1
Robert Varga [Tue, 4 Jan 2022 13:09:35 +0000 (14:09 +0100)]
Remove an unneeded yang-data-spi dependency

We do not need util artifact, do not depend on it.

Change-Id: I59c73fc3e96db44fd227802b4cc6b8a02acfa1ec
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse NamespaceStmtCtx 68/99168/1
Robert Varga [Sat, 25 Dec 2021 16:26:46 +0000 (17:26 +0100)]
Use NamespaceStmtCtx

We do not need full access here, just namespaces, reflect that.

Change-Id: I6d3f32ddc6911d6b1ecf6110068b4b7a9ee15fc8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove empty lines 67/99167/1
Robert Varga [Sat, 25 Dec 2021 16:26:08 +0000 (17:26 +0100)]
Remove empty lines

We have a few stray empty lines, remove them.

Change-Id: Ia10fa98cec1b92f1953333e6858c189234223e1b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoReturn @NonNull collections in StmtContext 66/99166/1
Robert Varga [Sat, 25 Dec 2021 16:12:12 +0000 (17:12 +0100)]
Return @NonNull collections in StmtContext

We are always returning non-null contexts, make sure we reflect that
in the return type. This fixes about 20 false positive warnings.

Change-Id: I99d42e94832f379e95001f8e3f263380c50dbb9f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd a @NonNull annotation 65/99165/1
Robert Varga [Sat, 25 Dec 2021 15:56:36 +0000 (16:56 +0100)]
Add a @NonNull annotation

Prerequisites are always resolving to a non-null value, make sure
we express that, eliminating a number of warnings.

Change-Id: I8c90e0ea2489988416de3cbeafcd30cfefc9228a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd SchemaNodeIdentifier-based constructor 31/99131/1
Robert Varga [Wed, 22 Dec 2021 07:25:29 +0000 (08:25 +0100)]
Add SchemaNodeIdentifier-based constructor

We are deprecating SchemaPath, provide a proper constructor allowing
downstreams to use it instead of the SchemaPath-driven one.

Change-Id: If06f415d4e6dcd9b18875f78b463f47a62b00a75
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCorrect and/or/div/mod in path expressions 17/99117/4
Robert Varga [Sun, 19 Dec 2021 09:35:17 +0000 (10:35 +0100)]
Correct and/or/div/mod in path expressions

The grammar is creating implicit lexer tokens for and/or/div/mod, which
take precedence overt NCName. Make sure we define these tokens
explicitly and allow them to be an alternative wherever NCName is
valid.

JIRA: YANGTOOLS-1387
Change-Id: I4f4f26fe0f8bc27614b769b465a76696a49ad7c2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.9 12/99112/1
Robert Varga [Sun, 19 Dec 2021 07:52:54 +0000 (08:52 +0100)]
Bump odlparent to 9.0.9

Pick up latest fixes from upstream.

Change-Id: I628ef26430cd5d189cac0c52b19fc4152d8d6589
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSimple cleanups 55/99055/2
Robert Varga [Thu, 16 Dec 2021 16:31:24 +0000 (17:31 +0100)]
Simple cleanups

Clean up a few things which got past code review.

Change-Id: Ia11d912eb10535b30daad0ce03e8198de899b4ec
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoTrigger onStatementAdded() for replicas 15/99015/8
Robert Varga [Wed, 15 Dec 2021 17:22:27 +0000 (18:22 +0100)]
Trigger onStatementAdded() for replicas

When a statement is introduced through StmtContext.replicaAsChildOf(),
the corresponding statement support should be notified of this fact, so
it can properly do its thing. This makes it consistent with
Mutable.childCopyOf().

JIRA: YANGTOOLS-1386
Change-Id: Ic947ea5fc822a29ff915d47db1cc591a2a18fd44
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeviations should get disabled if target is unsupported 56/99056/2
Robert Varga [Fri, 17 Dec 2021 07:16:25 +0000 (08:16 +0100)]
Deviations should get disabled if target is unsupported

Deviate's InferenceAction should pay attention to unavailable target
nodes, so we disable the deviation.

JIRA: YANGTOOLS-1370
Change-Id: Id0d8c3a64f91060cb21e807402742341ea98f492
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAugments should get disabled if target is unsupported 60/98660/6
Robert Varga [Wed, 24 Nov 2021 10:43:31 +0000 (11:43 +0100)]
Augments should get disabled if target is unsupported

AugmentInferenceAction should pay attention to unavailable target
nodes, so we disable the augmentation.

JIRA: YANGTOOLS-1370
Change-Id: Ib1f0bde83a90e4bb45a7c4fa1fc62af205f4ea6c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>