yangtools.git
2 years agoSwitch Import/Include/BelongsTo statements to use Unqualified 00/101000/8
Robert Varga [Thu, 5 May 2022 16:09:38 +0000 (18:09 +0200)]
Switch Import/Include/BelongsTo statements to use Unqualified

Using String is not entirely accurate, as it is missing required
validation. Make sure we force validation by switching the argument
to UnresolvedQName.Unqualified.

This will ease up integration with SourceIdentifier, which in turn is
required to make varied conformance work with explicit RFC8525
specification.

JIRA: YANGTOOLS-837
Change-Id: If320b1f64f2e1bff9a2086137af0d814bbf03f2a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoIntroduce {Qualified,Unqualified}.of() 04/101004/2
Robert Varga [Sun, 8 May 2022 21:57:59 +0000 (23:57 +0200)]
Introduce {Qualified,Unqualified}.of()

We are proliferating use on Unqualified quite a bit and since it is a
visible class, we should have a nice way of instantiating it. Introduce
static factory of() methods for both alternatives.

Change-Id: Ib19077861678d8e84cf67c517a382b758186a266
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFixup yang-parser-api module a bit 97/100997/1
Robert Varga [Thu, 5 May 2022 00:01:05 +0000 (02:01 +0200)]
Fixup yang-parser-api module a bit

Do not rely on concepts being pulled in, require them explicitly.

Change-Id: Ia0add6933624a650910064459075d7f5b171e55f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoStatementSupport is not a StatementDefinition 96/100996/2
Robert Varga [Wed, 4 May 2022 21:10:35 +0000 (23:10 +0200)]
StatementSupport is not a StatementDefinition

Differentiate between StatementSupport and StatementDefinition, so as
to separate their lifecycle.

Change-Id: Id96ece0e6890b1aa1463e5f4e9a378fa3f5949fe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMove OpenConfigVersion support 95/98095/26
Robert Varga [Thu, 21 Oct 2021 09:15:40 +0000 (11:15 +0200)]
Move OpenConfigVersion support

We are no longer using semantic versions to resolve linkage. Move
statement support to openconfig-parser-support.

JIRA: YANGTOOLS-1432
Change-Id: I144cd2a1040c264b9c6bfafceb95ef5a77e09d90
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove SemVerSourceIdentifier 68/100968/3
Robert Varga [Wed, 4 May 2022 10:16:49 +0000 (12:16 +0200)]
Remove SemVerSourceIdentifier

SemVerSourceIdentifier is a needless complication necessary only for
import resolution. It has been deprecated before, remove it now.

JIRA: YANGTOOLS-1432
Change-Id: I20db2121800b121a44487f327149d4aa2b79b69e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove getSemanticVersion() 67/100967/4
Robert Varga [Wed, 4 May 2022 09:51:16 +0000 (11:51 +0200)]
Remove getSemanticVersion()

OpenConfig versions are not used anywhere and have been deprecated.
Remove them.

JIRA: YANGTOOLS-1432
Change-Id: Ibb4a000dca927fa660de68fc18754057c33a4106
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove ImportResolutionMode.OPENCONFIG_SEMVER 61/100961/12
Robert Varga [Tue, 3 May 2022 22:08:28 +0000 (00:08 +0200)]
Remove ImportResolutionMode.OPENCONFIG_SEMVER

OpenConfig semantic version imports are unused, remove them.

JIRA: YANGTOOLS-1432
Change-Id: I9b0370ce663f2bc27668b19766efa84960f77746
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove ImportResolutionMode.SEMVER_LATEST 64/100964/4
Robert Varga [Wed, 4 May 2022 09:37:00 +0000 (11:37 +0200)]
Remove ImportResolutionMode.SEMVER_LATEST

This import mode does not have any generator which would use it. Remove
it.

JIRA: YANGTOOLS-1432
Change-Id: I060c098d97efdedd90e184912f760e0ceb8fa805
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove StatementParserMode.SEMVER_MODE 62/100962/4
Robert Varga [Wed, 4 May 2022 08:23:59 +0000 (10:23 +0200)]
Remove StatementParserMode.SEMVER_MODE

Semantic version imports have been deprecated since 7.0.11, remove
the model.repo.api part of it.

JIRA: YANGTOOLS-1432
Change-Id: I0d61023a9356a89abb26c4c1f7cfc975c942677f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate findSemanticVersion() 66/100966/1
Robert Varga [Wed, 4 May 2022 10:07:44 +0000 (12:07 +0200)]
Deprecate findSemanticVersion()

Semantic versions are deprecated pending a fresh sstart, so we do not
need findSemanticVersion().

Change-Id: I9d05d81c072472225285ecca48e51aa3e7efa309
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate BasicCodeGenerator's SEMVER_LATEST mode 65/100965/1
Robert Varga [Wed, 4 May 2022 09:41:35 +0000 (11:41 +0200)]
Deprecate BasicCodeGenerator's SEMVER_LATEST mode

The entire class is deprecated, but make sure we mark SEMVER_LATEST
import resolution mode as deprecated for removal.

Change-Id: Ia088bf319435966acdb70ab93c56f2082d114c76
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate getSemanticVersion() for removal 60/100960/5
Robert Varga [Tue, 3 May 2022 21:51:59 +0000 (23:51 +0200)]
Deprecate getSemanticVersion() for removal

NETMOD WG has a versioning proposal which will supersede OpenConfig,
deprecate API elements which are tied to OpenConfig versioning.

Change-Id: I2bbe1a8e6be78ecc5e911a367b0893515beaa836
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal ValueNode 58/100958/1
Robert Varga [Tue, 3 May 2022 21:02:32 +0000 (23:02 +0200)]
Seal ValueNode

ValueNode is a common trait for Leaf(SetEntry)Node. Make sure javac
enforces this invariant.

Change-Id: I04a2173a0f1bddeb3c27b292b416c5e1a8a163d6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal ForeignDataNode 57/100957/1
Robert Varga [Tue, 3 May 2022 20:58:04 +0000 (22:58 +0200)]
Seal ForeignDataNode

ForeignDataNode is a common trait of AnyxmlNode and AnydataNode, make
sure javac enforces that invariant.

Change-Id: Ie594e9b942bdb4744df20ac66dcf8d6f058c89c8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal OrderingAware 56/100956/2
Robert Varga [Tue, 3 May 2022 20:50:49 +0000 (22:50 +0200)]
Seal OrderingAware

There are only two possible orderings, make sure javac enforces that
invariant.

Change-Id: I5900a43b525d781909d74b9cb4c9f5ecd167adb4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal NormalizedNodeContainer 55/100955/1
Robert Varga [Tue, 3 May 2022 20:52:42 +0000 (22:52 +0200)]
Seal NormalizedNodeContainer

NormalizedNodeContainers come in two shapes: ordered and unordered,
make sure javac enforces this invariant.

Change-Id: Id4e1807d65e1da8ead48f55493fd0797726007b2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal {LeafSet,Map}Node 54/100954/1
Robert Varga [Tue, 3 May 2022 20:44:21 +0000 (22:44 +0200)]
Seal {LeafSet,Map}Node

There are exactly two specializations for each of these, make sure to
seal them.

Change-Id: I551074804803c84e7e0acc38fffe1b5c9c3181a7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix if-feature propagation for implicit case statements 36/100936/6
Peter Suna [Tue, 3 May 2022 12:33:42 +0000 (14:33 +0200)]
Fix if-feature propagation for implicit case statements

Implicit statements created during parse must not be propagated
if their child statement is not supported by features or otherwise
unavailable.

This really can only happen when we are creating an implicit declaration
on the parser side, as in other code paths the substatement is already
completely defined.

JIRA: YANGTOOLS-1431
Change-Id: I5797f09c795587c91f10c7f92a6a8c9fd2480213
Signed-off-by: Peter Suna <peter.suna@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup AbstractSchemaRepositoryTest 49/100949/1
Robert Varga [Tue, 3 May 2022 18:54:30 +0000 (20:54 +0200)]
Cleanup AbstractSchemaRepositoryTest

A bit of cleanup for the base test as well as for its users. Cuts down
verbosity.

Change-Id: Iebacec662177ee3c67de8c0be2f62d3559dbff7d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix failure source not being reported 47/100947/6
Robert Varga [Tue, 3 May 2022 17:27:59 +0000 (19:27 +0200)]
Fix failure source not being reported

When the parser fails with a well-known exception, extract the
SourceIdentifier of the failed YANG source.

JIRA: YANGTOOLS-1428
Change-Id: Ib40b01a977131ce1d244be5bd4e67c39e04ab626
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse switch expressions for CopyType dispatch 41/100941/2
Robert Varga [Tue, 3 May 2022 15:41:20 +0000 (17:41 +0200)]
Use switch expressions for CopyType dispatch

We have exhaustive switch statements here, use expressions to make
that clear to the compiler -- improving density and ditching default
case.

Change-Id: I5ff3d4de11b39809ba209a70515fccc742ef8e03
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMove implicitDeclaredFlag 40/100940/2
Robert Varga [Tue, 3 May 2022 15:36:54 +0000 (17:36 +0200)]
Move implicitDeclaredFlag

We require JDK17, hence we can rely on improved object layout and
do not need to play as many tricks with field shadowing. Move the flag
to its sole user.

Change-Id: I514eb8fc4f9b228854450bfd4adfa284f00616a0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse instanceof patterns in YangInstanceIdentifierWriter 39/100939/1
Robert Varga [Tue, 3 May 2022 14:58:22 +0000 (16:58 +0200)]
Use instanceof patterns in YangInstanceIdentifierWriter

We have a bit of dispatch going on here, where we end up casting things
after checking. Use patterns to ensure the casts are consistent.

Change-Id: I18ca2721f93e1926b05115263e38fc6ce9ca2659
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoPrint out available augmentations 38/100938/2
Robert Varga [Tue, 3 May 2022 14:43:32 +0000 (16:43 +0200)]
Print out available augmentations

We seem to be facing a weird failure to look up augmentations, make
sure we report what is available.

Change-Id: Ifd9d27175bc90abfbba1a5e60935dc41cb01fc16
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoModernize testutils tests 70/100870/1
Robert Varga [Thu, 28 Apr 2022 16:44:50 +0000 (18:44 +0200)]
Modernize testutils tests

Ditch the use of Truth and use assertThrows() instead of explicit
try/catch blocks.

Change-Id: I449b187fe5fa1497fe5bf6a63367e42fa9706fa7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoClean up yang-xpath-impl warnings 54/100854/2
Robert Varga [Wed, 27 Apr 2022 19:31:45 +0000 (21:31 +0200)]
Clean up yang-xpath-impl warnings

Disconnect the DI implementation and add some javadocs.

Change-Id: I97f588d3d01a2d3f0a6a410d63c6b671550ebf4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove unused dependency 53/100853/1
Robert Varga [Wed, 27 Apr 2022 19:22:24 +0000 (21:22 +0200)]
Remove unused dependency

yang-xpath-impl does not use concepts, remove the declaration.

Change-Id: I313cb8c5ff183f4c457e1973078e6857ff132889
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal YangInstanceIdentifier 99/100799/5
Robert Varga [Mon, 25 Apr 2022 15:26:31 +0000 (17:26 +0200)]
Seal YangInstanceIdentifier

We only allow two implementations, make sure we express that to the
runtime.

Change-Id: I3e4f2208d30682a9a0d23d2e1114d9d5d790e9b7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal ModelStatement 07/100507/12
Robert Varga [Sat, 9 Apr 2022 19:47:48 +0000 (21:47 +0200)]
Seal ModelStatement

ModelStatement can either be a DeclaredStatement or an
EffectiveStatement. Make sure we enforce that invariant.

Change-Id: Ib54d7136527b3c49fd36e813a9f1acc5b02a8894
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse pattern matching on instanceof in NormalizedNodeWriter 00/100800/4
Robert Varga [Mon, 25 Apr 2022 15:31:17 +0000 (17:31 +0200)]
Use pattern matching on instanceof in NormalizedNodeWriter

We can use a direct assignment, which makes things a tad less verbose.
Also use else-if blocks to allow for eventual exhaustiveness.

Change-Id: I68d8cbca80759807697d59d574f2ca922b1c573e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse pattern matching on instanceof in yang-common 98/100798/4
Robert Varga [Mon, 25 Apr 2022 15:21:29 +0000 (17:21 +0200)]
Use pattern matching on instanceof in yang-common

This simplifies our equals() methods quite a bit.

Change-Id: If4d0fbf6bd45c58781a93f57d005b409ed9fe629
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoModernize AntlrXPathParser 16/100516/9
Robert Varga [Sun, 10 Apr 2022 00:01:57 +0000 (02:01 +0200)]
Modernize AntlrXPathParser

Use switch expressions and instanceof matching to simplify the code.

Change-Id: Ia3d931289671c4d78de6b7938c833c350f295b6d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse instanceof expression for yang-xpath-api equality 14/100514/5
Robert Varga [Sat, 9 Apr 2022 23:48:37 +0000 (01:48 +0200)]
Use instanceof expression for yang-xpath-api equality

JDK17 allows us to ditch some amount of verbosity in equals()
implementations.

Change-Id: I3c2fdf0d688aaad3a04feb2ee4aebc69bbb4a228
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal YangExpr hierarchy 06/100506/9
Robert Varga [Sat, 9 Apr 2022 20:25:51 +0000 (22:25 +0200)]
Seal YangExpr hierarchy

YangExpr is a baseline interface, but it has a limited audience. Seal it
to make the hierarchy known to the compiler.

Change-Id: I1129ac2f1cf634c75d7df94a3cdb9d3b39d29274
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal ArgumentDefinition 05/100505/9
Robert Varga [Sat, 9 Apr 2022 19:44:54 +0000 (21:44 +0200)]
Seal ArgumentDefinition

There are only two possible subclasses. Make sure the compiler
understands that.

Change-Id: Ifa71f15c19dd0dd830ade454be04bdf380abea2b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal AbstractQName hierarchy 04/100504/9
Robert Varga [Sat, 9 Apr 2022 19:34:14 +0000 (21:34 +0200)]
Seal AbstractQName hierarchy

AbstractQName can either be resolved or one of the two UnresolvedQName
variants. Make sure compiler knows this by sealing them.

Change-Id: I2c3d866777bb9a1f5ab15d65ba81d132942ffed7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSeal ItemOrder and MutationBehaviour 03/100503/9
Robert Varga [Sat, 9 Apr 2022 19:29:36 +0000 (21:29 +0200)]
Seal ItemOrder and MutationBehaviour

With JDK17 we can properly restrict the class hierarchy of these
interfaces. Also hide MutationBehaviour, as it should not leak.

Change-Id: I0681ef7a0c82abe7aa9dd7adddae69940e57011f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse switch expression to dispatch operators 12/100512/5
Robert Varga [Sat, 9 Apr 2022 23:01:09 +0000 (01:01 +0200)]
Use switch expression to dispatch operators

We are switching on an enum, hence we can ditch the default case
when we have an exhaustive expression.

Change-Id: I6df494319383d8ae39a8a42152e94c190b2f1186
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove SemVer.equals() 15/100515/4
Robert Varga [Sun, 10 Apr 2022 00:14:07 +0000 (02:14 +0200)]
Improve SemVer.equals()

Use instanceof pattern to simplify the method.

Change-Id: If2f7cbdb6c6c0835eeb038a7ce5e993cddec8335
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMake DataSchemaContextTree.NodeAndStack a record 09/100509/6
Robert Varga [Sat, 9 Apr 2022 21:01:27 +0000 (23:01 +0200)]
Make DataSchemaContextTree.NodeAndStack a record

This is a simple carrier, make it a record.

Change-Id: I92e8f81c4831137e60b3c8d4feaf5ce878f8f06b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse record for test value 11/100511/5
Robert Varga [Sat, 9 Apr 2022 22:22:36 +0000 (00:22 +0200)]
Use record for test value

We can simplify the implementation here with JDK17.

Change-Id: I16e8900f59eaba17aaf4cb36da949d73bfeb43f7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoEnable Java 17 unicode blocks 90/100390/5
Robert Varga [Mon, 4 Apr 2022 21:46:56 +0000 (23:46 +0200)]
Enable Java 17 unicode blocks

Java 12 and Java 13 have expanded Unicode coverage, implementing a
number of new character blocks. Recognize them and allow them in
translation.

JIRA: YANGTOOLS-1420
Change-Id: Ic9f42b87e02d0821933a315fc54e246b1994b481
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove NormalizedNodes.findNode(NormalizedNode, SchemaPath) 63/100763/2
Robert Varga [Sat, 23 Apr 2022 13:10:15 +0000 (15:10 +0200)]
Remove NormalizedNodes.findNode(NormalizedNode, SchemaPath)

This method has been deprecated more than two years ago, remove it.

Change-Id: Ibf2ca6fef7b7353e3cdd5be99f739bac954f43f3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUpdate yang-data-api tests 62/100762/2
Robert Varga [Sat, 23 Apr 2022 13:07:07 +0000 (15:07 +0200)]
Update yang-data-api tests

Use List.of()/Map.of() instead of Collections and Guava where
appropriate.

Change-Id: Ibb3e9948d0b48bbba0a5f18c5313c93ade01223a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse List.of() in DuplicateEntry 61/100761/2
Robert Varga [Sat, 23 Apr 2022 13:05:30 +0000 (15:05 +0200)]
Use List.of() in DuplicateEntry

Rather than using Collections.emptyList(), use List.of().

Change-Id: I46d88f5758642639121b68d26cacd3d700a64f8b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCompute YangInstanceIdentifier.hashCode() lazily 47/98147/10
Robert Varga [Thu, 28 Oct 2021 11:41:05 +0000 (13:41 +0200)]
Compute YangInstanceIdentifier.hashCode() lazily

There are very few reasons to eagerly compute the hash code, let's not
do that.

JIRA: YANGTOOLS-1425
Change-Id: I0e76fa1cac539e318ee7a9bdcd28e6a6a3cbbb68
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 11.0.0-SNAPSHOT 59/100759/2
Robert Varga [Sat, 23 Apr 2022 11:17:03 +0000 (13:17 +0200)]
Bump odlparent to 11.0.0-SNAPSHOT

Pick up odlparent-11 for JDK17 work.

Change-Id: Idaadaf47505020b161bcf285e17da439d5d9375d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove concepts.(Checked)Builder 35/98935/5
Robert Varga [Fri, 10 Dec 2021 06:38:41 +0000 (07:38 +0100)]
Remove concepts.(Checked)Builder

The Builder concept has been deprecated in yangtools-8.0.0, remove
it now.

JIRA: YANGTOOLS-1322
Change-Id: Ie4b06fbd6f81cffb1967c73b13842b032cbb4d78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix the short option for 'no-warning-for-unkeyed-lists' 23/100723/1
Sangwook Ha [Fri, 22 Apr 2022 16:13:03 +0000 (09:13 -0700)]
Fix the short option for 'no-warning-for-unkeyed-lists'

Dash "-" is not allowed in the short option string. Replace it
with 'K', a single character option consistent with others.

Having two options to control warnings on the unkeyed list,
although mutually exclusive, makes the default behavior unclear
when neither option is used.

Simplify the options by removing 'warning-for-unkeyed-lists'
while preserving the original default behavior of warning against
unkeyed lists when neither option is used.

JIRA: YANGTOOLS-1429
Change-Id: I6c37892ae7e39864420a0e6c15dd2fc1cf0ba952
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
2 years agoInvert SchemaInferenceStack.deque 17/100517/8
Robert Varga [Sun, 10 Apr 2022 14:29:16 +0000 (16:29 +0200)]
Invert SchemaInferenceStack.deque

While the use of the deque as a stack is kind of easy, it results in us
needing to operate on descendingIterator() rather than on Colleciton.
Invert the organization of the deque so that its iteration order
reflects the path from root. This has a number of benefits in terms of
code density.

JIRA: YANGTOOLS-1422
Change-Id: I442ef43cfe52842e334b48d32b901e5266041f59
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not support unions with complex types 69/100569/2
Robert Varga [Wed, 13 Apr 2022 12:12:03 +0000 (14:12 +0200)]
Do not support unions with complex types

Our falling back to string representation is actively hurtful, as we end
up admitting the wrong type. We really should be treating union as a
complex type and not handle it at all, but that may break users more
than we want to in one release.

JIRA: YANGTOOLS-1427
Change-Id: I944e5869a718a768799bf334e4291cd0eb861e98
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove DataNodeAggregator 19/100519/2
Robert Varga [Sun, 10 Apr 2022 15:34:18 +0000 (17:34 +0200)]
Remove DataNodeAggregator

This class is not used anywhere and has been deprecated: remove it.

Change-Id: Ie4962440ba485d086af77ebc0ff34352dfb5c24e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 9.0.0-SNAPSHOT 75/100575/1
Robert Varga [Thu, 14 Apr 2022 07:25:03 +0000 (09:25 +0200)]
Bump versions to 9.0.0-SNAPSHOT

This starts the next major development iteration.

Change-Id: I767da5e6842e318a2099f9d46c732463227d3bae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove odl-yangtools-exp-data-xpath-(api) 74/100574/1
Robert Varga [Thu, 14 Apr 2022 07:24:04 +0000 (09:24 +0200)]
Remove odl-yangtools-exp-data-xpath-(api)

These features are no longer built, remove references to them.

Change-Id: I6132390698fe65b5de98f224785dbc2c883e23b8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 8.0.4-SNAPSHOT 71/100571/1
Robert Varga [Thu, 14 Apr 2022 06:23:03 +0000 (08:23 +0200)]
Bump versions to 8.0.4-SNAPSHOT

This starts the next development iteration.

Change-Id: I171cbb7a6d0acdc49d8cfbeaa1ce9b5e90e019ae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd a knob to control warnings about unkeyed lists 03/100003/9
Samuel Schneider [Tue, 8 Mar 2022 12:56:24 +0000 (13:56 +0100)]
Add a knob to control warnings about unkeyed lists

Warnings about unkeyed lists with config true are now can now be
enabled (default) or disabled as needed. Also upgrades commons-cli
version to 1.5.0:

https://commons.apache.org/proper/commons-cli/changes-report.html#a1.5.0

JIRA: YANGTOOLS-1397
Change-Id: I8d576b18098421f16a83eb3c31d8c3a80966c4cb
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump argparse4j to 0.9.0 21/100521/2
Robert Varga [Sun, 10 Apr 2022 18:26:20 +0000 (20:26 +0200)]
Bump argparse4j to 0.9.0

https://github.com/argparse4j/argparse4j/releases/tag/argparse4j-0.7.0
https://github.com/argparse4j/argparse4j/releases/tag/argparse4j-0.8.0
https://github.com/argparse4j/argparse4j/releases/tag/argparse4j-0.8.1
https://github.com/argparse4j/argparse4j/releases/tag/argparse4j-0.9.0

Change-Id: I8effcb21fb5cdfaeb63a6c3a20deabaa2ecb54d1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd DefaultSchemaTreeInference.unsafeOf() 14/100414/14
Samuel Schneider [Tue, 5 Apr 2022 11:23:48 +0000 (13:23 +0200)]
Add DefaultSchemaTreeInference.unsafeOf()

SchemaInferenceStack is routinely converted to DefaultSchemaTreeInference
as well as reconstructed from it. This process currently involves
a complete schema tree walk in both directions.

Introduce DefaultSchemaTreeInference.unsafeOf() which nominally trusts
the provided argument, so that we use it as is. The method can be
instructed to verify the provided argument by setting a system property.

On the SchemaInferenceStack side, trust the documented well-formedness
of DefaultSchemaTreeInference.

JIRA: YANGTOOLS-1414
Change-Id: Ifa2f0418c561795595d8dae70f6b0c61a33d8f43
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate DataNodeAggregator for removal 18/100518/1
Robert Varga [Sun, 10 Apr 2022 15:33:52 +0000 (17:33 +0200)]
Deprecate DataNodeAggregator for removal

This class is not used anywhere, deprecate it for removal.

Change-Id: I451dfae18b5511437f960c747a73720698ae29c6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not use Byte for test values 10/100510/1
Robert Varga [Sat, 9 Apr 2022 22:21:00 +0000 (00:21 +0200)]
Do not use Byte for test values

We have a number of JDK warnings, make sure we use a dedicated class
for testing.

Change-Id: Ie5e4e68bb8e59c309be729ef0c627e6ac1e408d9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove unneeded public keyword 01/100501/1
Robert Varga [Sat, 9 Apr 2022 20:00:22 +0000 (22:00 +0200)]
Remove unneeded public keyword

Upgraded checkstyle is detecting this omission.

Change-Id: Id531602d14557c85c0a57163a4632fa2f7028e97
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFurther cleanup of tests 98/100398/1
Robert Varga [Tue, 5 Apr 2022 01:36:34 +0000 (03:36 +0200)]
Further cleanup of tests

Convert more tests to use AbstractYangTest's assertions.

Change-Id: Ib6efc701ba59d3c5323b8e69cfb51a2d22700e53
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFurther testing cleanup 97/100397/1
Robert Varga [Mon, 4 Apr 2022 23:24:32 +0000 (01:24 +0200)]
Further testing cleanup

Remove more StmtTestUtils duplication.

Change-Id: Icd8798d8f89c6fdd3a526347e0b2a182189c1110
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSimplify createFeaturesSet() 96/100396/1
Robert Varga [Mon, 4 Apr 2022 22:55:39 +0000 (00:55 +0200)]
Simplify createFeaturesSet()

We can express this method in terms of a Stream transformation, saving
us an intermediate HashSet.

Change-Id: I26649e4d9d43bf288053dc76c1324db1d7cf9e1e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove unused parseYangSources() methods 95/100395/1
Robert Varga [Mon, 4 Apr 2022 22:52:08 +0000 (00:52 +0200)]
Remove unused parseYangSources() methods

There are no callers of these methods, remove them.

Change-Id: I8642954e15ee7ff1fe27a5df88839ac8dba239fa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove StmtTestUtils.findModules() 94/100394/1
Robert Varga [Mon, 4 Apr 2022 22:48:24 +0000 (00:48 +0200)]
Remove StmtTestUtils.findModules()

SchemaContext provide findModules(String), which serves the same
purpose, remove the utility method.

Change-Id: I5f2b7cae56f8d1af404117580d1ecced160e0f7f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUpdate unicode blocks for Java 11 89/100389/3
Robert Varga [Mon, 4 Apr 2022 21:31:29 +0000 (23:31 +0200)]
Update unicode blocks for Java 11

Java 11 supports Unicode 11, bringing in a number of blocks we have
previously not covered.

JIRA: YANGTOOLS-1419
Change-Id: I15aa6aac9d905840f6387691301fe6ab651c694d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdjust message parsing to account for JDK-8230338 88/100388/2
Robert Varga [Mon, 4 Apr 2022 20:48:14 +0000 (22:48 +0200)]
Adjust message parsing to account for JDK-8230338

JDK14 changed the error reporting string, which makes our algorithm
fail. Make sure we account for it.

JIRA: YANGTOOLS-1418
Change-Id: Iea9866c6f98508851f0d558d7e2422740e91ef87
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSimplify Bug4079Test 87/100387/1
Robert Varga [Mon, 4 Apr 2022 20:03:35 +0000 (22:03 +0200)]
Simplify Bug4079Test

We have a metric ton of duplication here, add a internal utility assert
and clean up the test.

Change-Id: Idedd591b97bafbc172b23ee566b44633a69b0cae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCheck null returns from NamespaceContext 69/100369/1
Robert Varga [Sun, 3 Apr 2022 20:21:49 +0000 (22:21 +0200)]
Check null returns from NamespaceContext

If we have a prefix that is not bould in the NamespaceContext, its
getNamespaceURI() will return null. checkArgument() such return to
provide better diagnostic than the implied NPE from XMLNamespace.

Change-Id: Ia49a9dbdf5dd4a3b8608f1e63dd0390130312897
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix assertion import 64/100364/1
Robert Varga [Sat, 2 Apr 2022 12:13:54 +0000 (14:13 +0200)]
Fix assertion import

Let's not use jupieter.api just yet here.

Change-Id: I4645f4c476f9d2cc544a39b0b1ad5ce6c93873fc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix immutable NormalizedNode equality 58/100358/3
Robert Varga [Fri, 1 Apr 2022 21:37:22 +0000 (23:37 +0200)]
Fix immutable NormalizedNode equality

Equality has always been iffy in our immutable implementations, but we
are now making a decent attempt to implement it. There are three gaps in
that effort, where we only consider known subclasses for comparison of
value part of NormalizedNode.

Address this by providing fallback child comparison and add an explicit
test suite.

JIRA: YANGTOOLS-1417
Change-Id: I36e5bcfc6da06c789595b00b7ad86d973cb34703
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not use Optional for augmentation traversal 10/100310/1
Robert Varga [Thu, 31 Mar 2022 20:46:32 +0000 (22:46 +0200)]
Do not use Optional for augmentation traversal

We can skip allocation of an Optional by using nullable return with a
check.

Change-Id: I78cf3316d8d026b32ecb94ece77ae637444d5bb0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove UnionXmlCodec error reporting 87/100287/1
Robert Varga [Tue, 29 Mar 2022 21:54:19 +0000 (23:54 +0200)]
Improve UnionXmlCodec error reporting

Collect the exceptions reported and add them as suppressed in case
we end up rejecting all values.

Change-Id: I6aa6d99d4a60426963dc30a1a5595b8ecd7a3bab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove StmtTestUtils.parseYangSource(String) 60/100260/2
Ivan Hrasko [Fri, 25 Mar 2022 15:36:52 +0000 (16:36 +0100)]
Remove StmtTestUtils.parseYangSource(String)

This deprecated method is no more used.

JIRA: YANGTOOLS-1345
Change-Id: I17f8442073c432e68a6dde2129ae842cce226ee5
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
2 years agoMigrate yang-common to JUnit5 67/100267/1
Robert Varga [Fri, 25 Mar 2022 18:27:18 +0000 (19:27 +0100)]
Migrate yang-common to JUnit5

This is a rather simple conversion with a slight improvement in
assertions.

Change-Id: I1a17cc0f1f2ffed0e1fb0bbc430f17000546e05d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoReplace calls of StmtTestUtils.parseYangSource(String) two 17/100217/9
Samuel Schneider [Tue, 22 Mar 2022 15:04:56 +0000 (16:04 +0100)]
Replace calls of StmtTestUtils.parseYangSource(String) two

Removes code duplicity in parser unit tests.
Part two of https://git.opendaylight.org/gerrit/c/yangtools/+/100136

JIRA: YANGTOOLS-1345
Change-Id: I31ec3700d425cb1e0732c9225a629d01b6d84b5c
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
2 years agoBump versions to 8.0.3-SNAPSHOT 40/100240/1
Robert Varga [Thu, 24 Mar 2022 12:45:47 +0000 (13:45 +0100)]
Bump versions to 8.0.3-SNAPSHOT

This starts the next development iteration.

Change-Id: I0cfca343a279304221713f855049e4e411e4157f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate CheckedValue.orElseThrow(Supplier) 33/100233/1
Robert Varga [Thu, 24 Mar 2022 11:26:28 +0000 (12:26 +0100)]
Deprecate CheckedValue.orElseThrow(Supplier)

While this method provides seamless transition from/to Optional, its use
results in the original exception being lost. Deprecate it for removal.

Change-Id: I062ee28917f7a1be583077009307f08c57a67acc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd convenience methods for XML codec 30/100230/5
Robert Varga [Thu, 24 Mar 2022 00:07:31 +0000 (01:07 +0100)]
Add convenience methods for XML codec

Codecs are at yang.data.api layer, add methods to initialize them with
YangInstanceIdentifier.

JIRA: YANGTOOLS-1412
Change-Id: Id9ce9af904fba55a0781a0c5e53ed253484664ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd DataSchemaContextNode/SchemaInferenceStack integration 26/100226/7
Robert Varga [Wed, 23 Mar 2022 13:29:23 +0000 (14:29 +0100)]
Add DataSchemaContextNode/SchemaInferenceStack integration

The removal of SchemaNode.getPath() opens a functionality gap, where it
becomes impossible to initialize a SchemaInferenceStack via use of
DataSchemaContextTree. Add enterChild/enterPath methods which maintain
or return a SchemaInferenceStack, so that cognizant callers can use them
to talk to other schema-informed APIs.

JIRA: YANGTOOLS-1412
Change-Id: Ia3562909e322992a3ee84fd0b3f2f0cc7ce5183d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoReplace calls of StmtTestUtils.parseYangSource(String) 36/100136/5
Samuel Schneider [Wed, 16 Mar 2022 14:58:14 +0000 (15:58 +0100)]
Replace calls of StmtTestUtils.parseYangSource(String)

Removes code duplicity in parser unit tests.

JIRA: YANGTOOLS-1345
Change-Id: I0d20bf4d023a07e87d3d8228e29aa26a6bdb2348
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
2 years agoFix ChoiceNodeContextNode's byQName indexing 27/100227/2
Robert Varga [Wed, 23 Mar 2022 17:31:39 +0000 (18:31 +0100)]
Fix ChoiceNodeContextNode's byQName indexing

When we are traversing by provided QName, we are meant to encounter
each ContextNode significant to PathArgument construction. This works
for all cases except for 'choice->case->choice', where
ChoiceNodeContextNode's internal indexing does not account for itself:
it ends up storing the second ChoiceNodeContextNode under the
ChoiceSchemaNode's QName -- and therefore it fails to find it by its
consituents' QNames.

This has impact primarily on instance-identifier parsers, as evidenced
by the corresponding JSON-based unit test.

Fix this by properly overriding getQNameIdentifiers() to provide the
internal table's keySet().

JIRA: YANGTOOLS-1411
Change-Id: I11df2d4072157e06342c2899dbcf02f74eef8090
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRecognize 'choice' in 'choice' with YANG 1.1 24/100224/3
Robert Varga [Wed, 23 Mar 2022 13:23:10 +0000 (14:23 +0100)]
Recognize 'choice' in 'choice' with YANG 1.1

RFC7950 allows for 'choice' to appear directly in another 'choice'.
Make sure we allow for that possibility. This also requires
disconnecting shorthands from global state -- they are version-specific
after all.

JIRA: YANGTOOLS-1410
Change-Id: Id86cc8226d4e02d754317f840b9eadfe03949a9c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMove DataSchemaContextTreeTest 25/100225/2
Robert Varga [Wed, 23 Mar 2022 13:31:42 +0000 (14:31 +0100)]
Move DataSchemaContextTreeTest

The test is in the wrong package, make sure it is in yang.data.util.

Change-Id: If5e4c3b963d790dde6a9aa38d012331a1e604f91
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoClean up DataSchemaContainerTree 10/100210/4
Robert Varga [Mon, 21 Mar 2022 17:52:03 +0000 (18:52 +0100)]
Clean up DataSchemaContainerTree

Clean up the class hierarchy and mark things for future improvement,
deprecating unintentionally-public methods and providing guidance.

Change-Id: I9d4a2005714c964880198b9e0bde5e1401c4cb41
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate concepts to Jupiter API 20/100220/1
Robert Varga [Wed, 23 Mar 2022 05:29:03 +0000 (06:29 +0100)]
Migrate concepts to Jupiter API

These are simple tests, use JUnit5 for them.

Change-Id: Idec56d9cd729834804ba5188fb6a6cdbfcff8552
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove unneeded throws 55/100155/1
Robert Varga [Sat, 19 Mar 2022 15:02:49 +0000 (16:02 +0100)]
Remove unneeded throws

AssertionErrors are unchecked, do not declare them to keep noise down.

Change-Id: I390a48f56ebb30f5bdb5f0d3cbf4cf187bdd204f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix SchemaTreeNamespace population via augment 37/100137/3
Sangwook Ha [Wed, 16 Mar 2022 16:39:14 +0000 (09:39 -0700)]
Fix SchemaTreeNamespace population via augment

This change adds 4 test cases to reproduce:
  - Deviation of a case node with case statement
  - Deviation of a case node without case statement
  - Deviation of an augmented case node with case statement
  - Deviation of an augmented case node without case statement

The only test case fails is the last one (deviation of an augmented
case node without case statement). There is another way to depreduce
the root cause, which is to use 'augment' instead of deviate.

The problem is that the implicit case statement does not trigger
onStatementAdded() and hence it does not get registered in the
namespace.

Fixing this issue changes behaviour in testDuplicityInAugmentTarget2(),
i.e. the schema tree overlap previously reported through
SchemaTreeIndexingException (when we are already building effective
view) gets flagged earlier with a SourceException, pointing to both the
place where the conflict occurs and which source statement is causing
it.

JIRA: YANGTOOLS-1408
Change-Id: I7c26399b07aaa142b5ab8191dab97e738118a14a
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix inferred statements over undeclared statements 19/100119/3
Robert Varga [Mon, 14 Mar 2022 12:29:08 +0000 (13:29 +0100)]
Fix inferred statements over undeclared statements

We must not assume we can access declared() statement. In order to do
that, we need to change how createInferredEffective() operates and push
it down to ReactorStmtCtx.

JIRA: YANGTOOLS-1407
Change-Id: I56823cb2ad497adcccaffa3e3386e45b0bb08089
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 8.0.2-SNAPSHOT 10/100110/1
Robert Varga [Sun, 13 Mar 2022 21:48:27 +0000 (22:48 +0100)]
Bump versions to 8.0.2-SNAPSHOT

This starts the next development iteration.

Change-Id: I7e579d904ad556c4ab3daac96756a94a6760f1a6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix BaseDecimalType scales 09/100109/1
Robert Varga [Sun, 13 Mar 2022 21:38:55 +0000 (22:38 +0100)]
Fix BaseDecimalType scales

We fail to generate range contraint for fraction-digits=18, fix that.

JIRA: YANGTOOLS-1406
Change-Id: Ieafd48ba6b63c160f01b163e7b6786f4a5833fb5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 8.0.1-SNAPSHOT 05/100105/1
Robert Varga [Sun, 13 Mar 2022 15:17:50 +0000 (16:17 +0100)]
Bump versions to 8.0.1-SNAPSHOT

This starts the next development iteration.

Change-Id: I78aabd3376243f9fc7f70ed2d90502c2e8559c46
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoConvert BigDecimal/Decimal64 in yang-data-codec-binfmt 04/100104/1
Robert Varga [Sun, 13 Mar 2022 15:06:43 +0000 (16:06 +0100)]
Convert BigDecimal/Decimal64 in yang-data-codec-binfmt

Our internal representation is Decimal64, make sure we adjust it as
we are reading data in and handle it on writeout.

JIRA: YANGTOOLS-556
Change-Id: Ie83b26467ac987a21c6b2dbd6726559db4e6169d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRequire scale for integral conversions and RoundingMode for float 02/100102/4
Robert Varga [Sun, 13 Mar 2022 13:04:24 +0000 (14:04 +0100)]
Require scale for integral conversions and RoundingMode for float

Integral conversions need to check range and take the intended scale,
otherwise we are left guessing as to what we need to do.

Similarly, float/double need to take RoudingMode, so that they can
figure out what to do with excess precision.

JIRA: YANGTOOLS-1405
Change-Id: I2a6eef9c987dcceec8de7e2aa5bbf43062301cf9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse Decimal64.{min,max}ValueIn() in BaseDecimalType 03/100103/1
Robert Varga [Sun, 13 Mar 2022 14:32:51 +0000 (15:32 +0100)]
Use Decimal64.{min,max}ValueIn() in BaseDecimalType

Now that we have centralized range numbers, let's use them in
in yang-model-ri.

JIRA: YANGTOOLS-1405
Change-Id: Id8367366d6b11a10894ff88e3614024ce62b7050
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd Decimal64.{min,max}ValueIn(scale) 01/100101/1
Robert Varga [Sun, 13 Mar 2022 12:19:17 +0000 (13:19 +0100)]
Add Decimal64.{min,max}ValueIn(scale)

There are few places where we are interested in limits supported by
Decimal64, make sure to expose them.

JIRA: YANGTOOLS-1405
Change-Id: I7629e6996d6743628188141f9587c20e565736ae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoExpose scale and unscaled value from Decimal64 00/100100/2
Robert Varga [Sat, 12 Mar 2022 10:41:11 +0000 (11:41 +0100)]
Expose scale and unscaled value from Decimal64

Exposing these two details, along with a factory method allows users
to transport this class using these components.

JIRA: YANGTOOLS-1405
Change-Id: I9685f25171434ddd787ea605579f4e5f852bca45
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
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>