yangtools.git
2 years agoRemove unused TestUtils methods 15/97715/5
Robert Varga [Sat, 2 Oct 2021 18:37:26 +0000 (20:37 +0200)]
Remove unused TestUtils methods

We have some code duplication and unused code paths, clean that up.

Change-Id: If3b675420179b285417114a59e386fb57684926c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove {Bug394,TwoRevisions}Test 14/97714/4
Robert Varga [Sat, 2 Oct 2021 18:32:31 +0000 (20:32 +0200)]
Improve {Bug394,TwoRevisions}Test

Improved loading and layout.

Change-Id: I12c617e70c9da1af0ecfbab370007ebfc3a4b416
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove TestUtils.parseYangSources 13/97713/5
Robert Varga [Sat, 2 Oct 2021 17:47:51 +0000 (19:47 +0200)]
Remove TestUtils.parseYangSources

We have loadModules() used more widely, eliminate code duplication. Also
cleanup callers with better assertions.

Change-Id: Iad5a6121dba2c0ea7008a948923c23ce33ad548a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd AbstractModelTest 12/97712/2
Robert Varga [Sat, 2 Oct 2021 16:44:59 +0000 (18:44 +0200)]
Add AbstractModelTest

We have a number of tests which are sharing same EffectiveModelContext,
conceptrate loading and constants and subclass the test. Results in
faster execution and quite cleaner tests.

Change-Id: Ia0c7756c5222c6b736e921be2f16fe8029ccb807
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup ParsingExtensionValueTest 11/97711/2
Robert Varga [Sat, 2 Oct 2021 16:07:56 +0000 (18:07 +0200)]
Cleanup ParsingExtensionValueTest

Simpler loading and better asserts.

Change-Id: I789cbf27e3fb226040babdfa599be614cd885b8a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSpeed up YangParserTest 10/97710/2
Robert Varga [Sat, 2 Oct 2021 16:04:56 +0000 (18:04 +0200)]
Speed up YangParserTest

We have multiple tests sharing the same context, use @BeforeClass
and cleanup loading.

Change-Id: Icfc1f08f8b781b76cdf9c1881f306efdbf093048
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoSpeed up YangParserSimpleTest 09/97709/2
Robert Varga [Sat, 2 Oct 2021 16:01:44 +0000 (18:01 +0200)]
Speed up YangParserSimpleTest

Use new loading to load a constant context, shared between the test
cases.

Change-Id: I267d3b17a15108d47591e421b5b6cef0fa3289b0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove UsesAugmentTest 08/97708/2
Robert Varga [Sat, 2 Oct 2021 15:56:31 +0000 (17:56 +0200)]
Improve UsesAugmentTest

We have two tests sharing the reactor, use beforeClass() build it only
once and use better loading method to do that.

Change-Id: I82993ea04087c2ee90da40f2aee786a0cde95ee8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup SubstatementValidatorTest 07/97707/2
Robert Varga [Sat, 2 Oct 2021 15:35:18 +0000 (17:35 +0200)]
Cleanup SubstatementValidatorTest

We have a ton of missing asserts and try/catch checking, clean all of
that up.

Change-Id: I9a3fcc050656ddba33e375c84956cfdb2f7ca693
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse java.nio.file.Path in YangTextFileSchemaSource 02/97702/8
Robert Varga [Fri, 1 Oct 2021 16:33:14 +0000 (18:33 +0200)]
Use java.nio.file.Path in YangTextFileSchemaSource

Switching to NIO seems to be a better strategy, as we ned up using it to
access content anyway.

JIRA: YANGTOOLS-1342
Change-Id: I066f1494327b8e4e6007cb3f620aec30a5b94c0c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove concepts.Path 06/97706/2
Robert Varga [Sat, 2 Oct 2021 15:06:29 +0000 (17:06 +0200)]
Remove concepts.Path

We have a replacement in HierarchicalIdentifier. Users should have
adapted since last release, remove Path now.

JIRA: YANGTOOLS-1343
Change-Id: I3d030f27947f82f35eb2f1512cf14ab26f0e6a97
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoIntroduce HierarchicalIdentifier to replace Path 05/97705/2
Robert Varga [Sat, 2 Oct 2021 15:04:00 +0000 (17:04 +0200)]
Introduce HierarchicalIdentifier to replace Path

Path is always combined with Identifier, and it really is an extension
of Identifier contract. Add a new interface to capture that contract
and deprecate Path, so we get out of java.nio.file.Path's way.

JIRA: YANGTOOLS-1344
Change-Id: Ida2f28b1f2d349b67115611eac843e7da8628f42
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoInline Bug7480Test model assembly 04/97704/7
Robert Varga [Fri, 1 Oct 2021 20:51:35 +0000 (22:51 +0200)]
Inline Bug7480Test model assembly

We have a few utilities which are noize in StmtTestUtils, move them to
heir sole user. This makes it wee bit more obvious what is going on.
This creates a very useful litte utility in TestUtils.

Change-Id: Ic6fe1a9e36eafc1cde1e42c3b1c2895ccef3e5fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup Bug6874Test 01/97701/2
Robert Varga [Fri, 1 Oct 2021 15:01:46 +0000 (17:01 +0200)]
Cleanup Bug6874Test

We are using ugly asserts and try-catch blocks, clean that up.

Change-Id: Id1e0982f41d5557198152b6f7837340ab345a963
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove a superfluous line 96/97696/2
Robert Varga [Fri, 1 Oct 2021 14:00:45 +0000 (16:00 +0200)]
Remove a superfluous line

Empty line, remove it.

Change-Id: Ifa5c51cf15e05c19bf43345a6868888dd735159c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd a few more utilities to EffectiveModelContext 88/97688/1
Robert Varga [Thu, 30 Sep 2021 14:02:06 +0000 (16:02 +0200)]
Add a few more utilities to EffectiveModelContext

Locating modules by name/namespace is useful, provide a simple bridge on
top of SchemaContext.findModules().

JIRA: YANGTOOLS-1337
Change-Id: I08968d6aebb1569ab8990cd69352c56ddcfe5cc3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove SchemaInferenceStack error reporting 83/97683/5
Robert Varga [Wed, 29 Sep 2021 13:34:37 +0000 (15:34 +0200)]
Improve SchemaInferenceStack error reporting

Include a description of parent's identity when we fail to locate
its child. This makes it easier to understand what is going on in most
failure situations.

The message now ends with something like
- not present in schema parent (namespace)parentName
- not present in grouping (namespace)groupingName
- not present in module (namespace)moduleName
or similar.

Also expand the test suite to cover negative scenarios around
enterChoice().

JIRA: YANGTOOLS-1336
Change-Id: I8a642dcd0fe5705f4c33c1a3e9d779c6db91ef24
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate IllegalArgumentCodec for removal 55/97655/1
Robert Varga [Mon, 27 Sep 2021 15:11:40 +0000 (17:11 +0200)]
Deprecate IllegalArgumentCodec for removal

As previously noted, this interface encourages bad patterns. All
downstream users are better served with their domain-specific
interfaces. Deprecate it with the intent to remove.

JIRA: YANGTOOLS-1334
Change-Id: If0e56b2ff575d101dbd090112f22e80565e5e6bb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFlatten IllegalArgumentCodec class hierarchy 54/97654/3
Robert Varga [Mon, 27 Sep 2021 14:39:02 +0000 (16:39 +0200)]
Flatten IllegalArgumentCodec class hierarchy

IllegalArgumentCodec is the only specialization which is seeing a
wide use. Integrate all its superinterfaces and superclasses of
AbstractIllegalArgumentCodec into these two constructs.

JIRA: YANGTOOLS-1333
Change-Id: I75078910693e912d5313b7eec43c14ca22eefe2f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoIntroduce UnresolvedQName 46/97646/5
Robert Varga [Mon, 27 Sep 2021 11:38:09 +0000 (13:38 +0200)]
Introduce UnresolvedQName

Our AbstractQName hierarchy has either a resolved QName, or two
unresolved {Qualified,Unqualified}QNames. The quality of being resolved
vs. unresolved is not modeled.

Introduce UnresolvedQName as the only AbstractQName alternative to
QName, so that it can be used to model this distinction. This allows,
for example, yang-xpath-api to be specified better.

JIRA: YANGTOOLS-1329
Change-Id: I9893850cea27bdd98d08b00ceb8c1f288dcc2778
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove util.Immutables 53/97653/3
Robert Varga [Mon, 27 Sep 2021 13:48:45 +0000 (15:48 +0200)]
Remove util.Immutables

This class has been deprecated for removal in a previous release, remove
it now.

JIRA: YANGTOOLS-1331
Change-Id: Iccbba68c82a0f876f230041f02a3519c979995e0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate util.Immutables for removal 52/97652/3
Robert Varga [Mon, 27 Sep 2021 13:46:34 +0000 (15:46 +0200)]
Deprecate util.Immutables for removal

This class is rather incompete in its mission and it is not used
anywhere. Deprecate it for removal.

JIRA: YANGTOOLS-1330
Change-Id: I54ad2666e1b7660e5d93d90ff924de1e640df754
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove ProductAwareBuilder 51/97651/1
Robert Varga [Mon, 27 Sep 2021 12:59:27 +0000 (14:59 +0200)]
Remove ProductAwareBuilder

This interface has been deprecated in 7.0.9, remove it in version 8.0.0.

JIRA: YANGTOOLS-1326
Change-Id: I487914805a00953f1b7ec17c70bd310cef322ae2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate ProductAwareBuilder 50/97650/1
Robert Varga [Mon, 27 Sep 2021 12:57:38 +0000 (14:57 +0200)]
Deprecate ProductAwareBuilder

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

JIRA: YANGTOOLS-1325
Change-Id: I81afcaabf475453feddf494efc62288a601500f2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove ClassBasedPropertyBuilder 49/97649/1
Robert Varga [Mon, 27 Sep 2021 12:58:25 +0000 (14:58 +0200)]
Remove ClassBasedPropertyBuilder

This interface has been deprecated in 7.0.9, remove it in 8.0.0.

JIRA: YANGTOOLS-1324
Change-Id: I794d7c8350f21997d0b9f65ca028fca3f2ba414b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate ClassBasedPropertyBuilder 48/97648/1
Robert Varga [Mon, 27 Sep 2021 12:57:13 +0000 (14:57 +0200)]
Deprecate ClassBasedPropertyBuilder

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

JIRA: YANGTOOLS-1323
Change-Id: Ic7f6ccc5559d6bb1242f5649d2a84dbf9ba09c3d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMark MutationBehaviour evolution 47/97647/1
Robert Varga [Mon, 27 Sep 2021 12:53:53 +0000 (14:53 +0200)]
Mark MutationBehaviour evolution

We want to nail seal and potentially hide this interface.

Change-Id: Ic496ed97971dec3a0ab52d87e0516608b50ef879
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoPublish identifier matches 01/97501/1
Robert Varga [Thu, 16 Sep 2021 00:59:09 +0000 (02:59 +0200)]
Publish identifier matches

Our private matches are useful for other parsers which need to handle
YANG's identifier ABNF production. Document and publish them from
YangNames.

Change-Id: Icb4e75479e0654fa21d0cedda88cce6690647b62
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse yang.common.Decimal64 for decimal64 58/97458/4
Robert Varga [Sun, 12 Sep 2021 16:48:44 +0000 (18:48 +0200)]
Use yang.common.Decimal64 for decimal64

We now have a dedicated class for carrying decimal64 values, use that
instead of BigInteger.

JIRA: YANGTOOLS-556
Change-Id: Ifdb672383f73c5845499b55e307c60b1c30ddbd5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix Decima64.valueOf(String) 60/97460/4
Robert Varga [Sun, 12 Sep 2021 17:31:32 +0000 (19:31 +0200)]
Fix Decima64.valueOf(String)

When we have a maximum-length string we end up reporting running out of
fraction limit. Fix this by correctly accounting for the period.

JIRA: YANGTOOLS-1321
Change-Id: I40b70400004d39a923b536db8b47784d3659bd4a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix CanonicalValueViolation.getMessage() 61/97461/1
Robert Varga [Mon, 13 Sep 2021 02:32:11 +0000 (04:32 +0200)]
Fix CanonicalValueViolation.getMessage()

We should not be looking at the tag but rather at message. This fixes
anonymous exceptions being thrown from Decimal64's value support.

Change-Id: I1462032b2b3cd5357a9009ac707c0f914a4e64c8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix DerivableSchemaNode.getOriginal() 56/97456/5
Robert Varga [Sun, 12 Sep 2021 15:45:05 +0000 (17:45 +0200)]
Fix DerivableSchemaNode.getOriginal()

We should be returning a type capture here, fix that up, which prompts
us having to retrofit the interface properly into concrete SchemaNodes
-- making it obvious where we have some overlap.

Change-Id: Ia8648c203f8e1560008711954febb815aecb1b6a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse ErrorTag for RpcError.getTag() 54/97454/4
Robert Varga [Sun, 12 Sep 2021 15:14:48 +0000 (17:14 +0200)]
Use ErrorTag for RpcError.getTag()

We have a dedicated class (and constants) to cover error-tag, use it
instead of plain String.

Change-Id: I3b6776365ec7fcd3769ff485a4a01f5e038f4c1b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove deprecated NETCONF error interfaces 53/97453/5
Robert Varga [Sun, 12 Sep 2021 14:43:52 +0000 (16:43 +0200)]
Remove deprecated NETCONF error interfaces

RpcError.Error{Severity,Type} as well as YangError have their
replacements, hence remove them.

Change-Id: Ib90f3d63ee85524fd03e1f81fd5c4e0fd74a1d78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix EmptyLeafListEffectiveStatement.getOriginal() 55/97455/3
Robert Varga [Sun, 12 Sep 2021 15:44:12 +0000 (17:44 +0200)]
Fix EmptyLeafListEffectiveStatement.getOriginal()

We should not be referencing LeafSchemaNode, but LeafListSchemaNode.

Change-Id: I9bab48a802571f89457999f1ed48f869c46fab06
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix YangErrorInfo.value 45/97445/1
Robert Varga [Sat, 11 Sep 2021 09:20:50 +0000 (11:20 +0200)]
Fix YangErrorInfo.value

YangErrorInfo is transporting a child of a container, which means it
should not be a plain NormalizedNode, but DataContainerChild instead.

Change-Id: Iec207864854ac3d9afd961635170967bd5cc73aa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDocument PrettyTreeIndent.INDENT_STRINGS_SIZE 42/97442/1
Robert Varga [Sat, 11 Sep 2021 01:30:20 +0000 (03:30 +0200)]
Document PrettyTreeIndent.INDENT_STRINGS_SIZE

Explain what we are doing here, so that our future selves can properly
update the constant in the future.

Change-Id: I65d6187e8c56b30e5524a8e7c77c56b4b7d2c9ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.6 24/97424/1
Robert Varga [Wed, 8 Sep 2021 14:23:13 +0000 (16:23 +0200)]
Bump odlparent to 9.0.6

Adopt latest upgrade.

Change-Id: I4a58797bd45c98d4cea5114415d1a4a0ec9c6773
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMake EffectiveStatement.get() more friendly 15/97415/1
Robert Varga [Wed, 8 Sep 2021 09:29:05 +0000 (11:29 +0200)]
Make EffectiveStatement.get() more friendly

Return Optional<V> instead of a ? extends V.

Change-Id: Ia8570d796ae33d2d91396d621cb7dac7ca122049
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoIndex TypedefNamespace 00/97400/22
Robert Varga [Mon, 6 Sep 2021 11:19:21 +0000 (13:19 +0200)]
Index TypedefNamespace

Add yang-model-{ri,spi} support for indexing TypedefNamespace and
retrofit it into current classes. This allows us to improve performance
of SchemaInferenceStack.enterTypedef().

JIRA: YANGTOOLS-1262
Change-Id: I95136d4fc204019678a53ddd318e2fca453630b9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove TestUtils.findModule() 13/97413/4
Robert Varga [Tue, 7 Sep 2021 10:22:03 +0000 (12:22 +0200)]
Remove TestUtils.findModule()

SchemaContext offers a convenient module lookup facility, use that
instead of this ancient thing. While it is slightly more verbose, it
reduces proliferation of duplicate functionality.

Change-Id: I4e913329173b786c54fb9d6be242e52b71fe2506
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMove leaf-list statement implementations 12/97412/2
Robert Varga [Tue, 7 Sep 2021 09:40:27 +0000 (11:40 +0200)]
Move leaf-list statement implementations

leaf-list was left out from the previous round of migrations, make sure
we catch up.

JIRA: YANGTOOLS-1152
Change-Id: I437c0d24fc9c81c3b8861cc7cd16bcde9f562a9c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCorrect DefaultWith{Schema,Data}Tree statefulness 06/97406/9
Robert Varga [Mon, 6 Sep 2021 20:39:25 +0000 (22:39 +0200)]
Correct DefaultWith{Schema,Data}Tree statefulness

We have a slight thinko here: we retain substatements in
WithSubstatements subclass, hence the base class really says it has
empty substatements, which is implying both schema tree and data tree
are empty.

Since our baseline is to return an empty map for namespace contents,
this is completely unneeded. Eliminate the difference by eliminating the
WithSubstatements specialization.

Change-Id: I35a7f16910bbda7c14faf0b9b69fabc84ed06f9a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoPromote UnknownEffectiveStatementBase to yang-model-spi 10/97410/3
Robert Varga [Mon, 6 Sep 2021 22:58:11 +0000 (00:58 +0200)]
Promote UnknownEffectiveStatementBase to yang-model-spi

The semantics of UnknownSchemaNode has been cleaned up and documented a
bit more. We can therefore update UnknownEffectiveStatementBase and
promote it to yang-model-spi, as we no longer need dependencies on
yang-parser-spi. Also rename it to AbstractEffectiveUnknownSchemaNode to
make to ensure we have proper naming. Since this is the only subclass of
AbstractEffectiveDocumentedNodeWithStatus, we are combining the two,
further simplifying things.

JIRA: YANGTOOLS-1320
Change-Id: I090437cc5958ef1f9bacd80d899f2a3c08dd8ded
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove UnknownSchemaNode.getExtensionDefinition() 09/97409/1
Robert Varga [Mon, 6 Sep 2021 22:43:14 +0000 (00:43 +0200)]
Remove UnknownSchemaNode.getExtensionDefinition()

This method has been deprecated for removal. Remove it now, which also
means it is not really normal to have recursion in
xtensionEffectiveStatementImpl, allowing further code removal.

JIRA: YANGTOOLS-1137
Change-Id: I5e9341dcd94d03822684f2cc2752212d3642fac7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate UnknownSchemaNode.getExtensionDefinition() 08/97408/1
Robert Varga [Mon, 6 Sep 2021 22:34:25 +0000 (00:34 +0200)]
Deprecate UnknownSchemaNode.getExtensionDefinition()

This method is not really useful, as its equivalent can easily be
achieved via SchemaContext lookup. Deprecate it for removal.

JIRA: YANGTOOLS-1319
Change-Id: Ia8f04e4843438988c999d966b72cb078b3f905e3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove RecursiveObjectLeaker 07/97407/1
Robert Varga [Mon, 6 Sep 2021 22:14:59 +0000 (00:14 +0200)]
Remove RecursiveObjectLeaker

This is a remnant of infrastructure needed to make circular object
graphs work. It has been deprecated for removal in version 7.0.0, now
remove it.

JIRA: YANGTOOLS-1318
Change-Id: I8f6590b5398317a6c24d4b06956161b747795de6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMove ListEffectiveStatement implementations 04/97404/1
Robert Varga [Mon, 6 Sep 2021 15:20:25 +0000 (17:20 +0200)]
Move ListEffectiveStatement implementations

We have missed this statement during YANGTOOLS-1241 implementation,
move it now.

JIRA: YANGTOOLS-1152
Change-Id: I029bedbf40a0885163d888cfe92f179e762cde8d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCorrect argument type documentation 03/97403/1
Robert Varga [Mon, 6 Sep 2021 14:43:20 +0000 (16:43 +0200)]
Correct argument type documentation

We have switched to using yang.common.Empty instead of java.lang.Void
due to nullability. Unfortunately not all javadocs were correct updated,
this corrects that mistake.

Change-Id: I1c183fa45374907401c22107e00452184137b43a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse DefaultWithDataTree.WithSubstatements for lists 01/97401/1
Robert Varga [Mon, 6 Sep 2021 11:25:59 +0000 (13:25 +0200)]
Use DefaultWithDataTree.WithSubstatements for lists

AbstractListEffectiveStatement is duplicating WithSubstatements
functionality, make sure we inherit it.

Change-Id: If3c5b177214305b88f3520824dc60d779d9a54ff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUpdate LeafrefResolver javadoc 95/97395/1
Robert Varga [Sun, 5 Sep 2021 23:32:56 +0000 (01:32 +0200)]
Update LeafrefResolver javadoc

Use a {@code} block to highlight leafref.

Change-Id: I6d6e67ecc8f52f042886a5671ea1a48d2dc5a99c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not retain reference to StatementMap 77/97377/1
Robert Varga [Thu, 2 Sep 2021 16:28:38 +0000 (18:28 +0200)]
Do not retain reference to StatementMap

Once we have finished iterating, we do not need to retain a reference to
the StatementMap. Promote Regular's iterator to a named class and clear
the reference as soon as we are done. Eliminates a YKP's report of a
possible leak.

Change-Id: Iabab24b2b1c2b28dd882ae10fac32f99c4d1c3a5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove SchemaNode.getPath() 39/96839/28
Robert Varga [Thu, 8 Jul 2021 13:18:46 +0000 (15:18 +0200)]
Remove SchemaNode.getPath()

SchemaPath is costing us almost 20% of retained EffectiveModelContext
memory. This facility is deprecated with precious few remaining users,
convert all users and remove everything related to the
SchemaNode/SchemaPath link.

This saves additional 0/8/8/0 bytes from InferredStatementContext.

JIRA: YANGTOOLS-1066
Change-Id: I0034b19a754f544187341f757f60a1fe25cda191
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoReformulate LeafRefContext without SchemaPath 12/94412/20
Robert Varga [Mon, 1 Feb 2021 09:55:54 +0000 (10:55 +0100)]
Reformulate LeafRefContext without SchemaPath

The use of SchemaNode.getPath() is a mistake, which we really want to
correct. Use SchemaNodeIdentifier to identify nodes, as that is really
what we need -- and the methods are really belong to LeafRefContext, not
into a separate LeafRefContextUtils class.

JIRA: YANGTOOLS-1092
Change-Id: I012861b8f4ad580b86b49a1265eba785958e3437
Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>
Signed-off-by: Michal Banik <michal.banik@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoMigrate a Assert.assertThat reference 70/97370/1
Robert Varga [Tue, 31 Aug 2021 22:50:40 +0000 (00:50 +0200)]
Migrate a Assert.assertThat reference

assertThat() is part of Hamcrest, migrate legacy junit reference to its
MatcherAssert equivalent.

Change-Id: I837f6c5367bc662bdeaea20ec9073f66241c77e6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove yang.model.parser.api 66/97366/2
Robert Varga [Mon, 30 Aug 2021 18:15:59 +0000 (20:15 +0200)]
Remove yang.model.parser.api

This package have been deprecated for removal and replaced by
yang.parser.api. Remove it now.

JIRA: YANGTOOLS-1278
Change-Id: Idef01c8f9435e092d53a9c96fc8ce5b04c7bd9d7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCorrect QName.compareTo() 53/96553/2
Robert Varga [Wed, 16 Jun 2021 15:39:28 +0000 (17:39 +0200)]
Correct QName.compareTo()

Sorting on localName first is counter-intuitive and tends to spread
related names (from the same module/revision) across the domain. Sort by
module/revision first, which keeps related information closely together.

JIRA: YANGTOOLS-1298
Change-Id: Ia57418f915498a0713549195b86413988b5208ce
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate SchemaPath for removal 55/97355/2
Robert Varga [Mon, 30 Aug 2021 09:00:12 +0000 (11:00 +0200)]
Deprecate SchemaPath for removal

We do not have any users left in yangtools, we will be removing
SchemaPath in the next major release.

JIRA: YANGTOOLS-1239
Change-Id: I6c7ea3c742f90ec3a33d3e829aa5e382f01acc6c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 8.0.0-SNAPSHOT 65/97365/1
Robert Varga [Mon, 30 Aug 2021 18:11:57 +0000 (20:11 +0200)]
Bump versions to 8.0.0-SNAPSHOT

This starts the next major development iteration.

Change-Id: I6f6aa60890d3d284c7b913254f6ea1103a26eae4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix a javadoc typo 58/97358/1
Robert Varga [Mon, 30 Aug 2021 12:02:45 +0000 (14:02 +0200)]
Fix a javadoc typo

The word is 'schema', not 'screma'.

Change-Id: I2509b6708f47b583019cbfc002d5fe6011771eb6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd support for yang-data inference 56/97356/6
Robert Varga [Mon, 30 Aug 2021 09:46:53 +0000 (11:46 +0200)]
Add support for yang-data inference

We will be needing inference abilities across yang-data. Add support for
entering in yang-data and also navigating within it.
YAngDataEffectiveStatement is updated to fully support schema tree and
data tree lookups.

JIRA: YANGTOOLS-1297
Change-Id: I1a10165017070a9430d5c9e43b3a705bc75c4d02
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoImprove SchemaInferenceStack test coverage 57/97357/2
Robert Varga [Mon, 30 Aug 2021 10:30:16 +0000 (12:30 +0200)]
Improve SchemaInferenceStack test coverage

Add a few unit tests to improve coverage. Also fix error reporting and
javadoc.

Change-Id: I8338829a89e3fe07e944cf4eb3c576a48f87d3fc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate SchemaPath 54/97354/2
Robert Varga [Mon, 30 Aug 2021 08:54:26 +0000 (10:54 +0200)]
Deprecate SchemaPath

SchemaPath has only a few remaining users, with two different concepts
added to cover the two significant use cases. Add pointers to
replacements and deprecate SchemaPath.

JIRA: YANGTOOLS-1238
Change-Id: I21b98fef8112b0773c342fc83356cca9f3b64188
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoTerminally deprecate SchemaNode.getPath() 53/97353/1
Robert Varga [Sun, 29 Aug 2021 09:01:21 +0000 (11:01 +0200)]
Terminally deprecate SchemaNode.getPath()

This method has been on its slow way out. An alternative addressing
construct is presented through EffectiveStatementInference and
SchemaInferenceStack, so all downstreams should be able to migrate with
relative ease now. Add a stern warning with terminal deprecation with
the intent to remove in yangtools-8.

JIRA: YANGTOOLS-1071
Change-Id: Idfbff326eff741fb53af74f35238b999b812993e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCorrect EffectiveStatementMixins documentation 52/97352/2
Robert Varga [Sat, 28 Aug 2021 14:44:57 +0000 (16:44 +0200)]
Correct EffectiveStatementMixins documentation

The correct type to use for no argument is Empty, not Void.

Change-Id: I68456096336d7e0d93139600375c9d8479dbb6ab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRemove InferredStatementContext.childCopyType 24/95224/12
Robert Varga [Thu, 18 Feb 2021 08:18:41 +0000 (09:18 +0100)]
Remove InferredStatementContext.childCopyType

This field is costing us object size in both 32bit and uncompressed
64bit mode. Since the field only encodes 2 bits, move this storage
to StatementContextBase.copyHistory, saving 8/8/0/0 bytes.

JIRA: YANGTOOLS-1256
Change-Id: Ifeb2cefd0449a4d9112f31a4c511a63dc5b0fb10
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRequire SCR in yang-{data,parser}-impl 04/96704/2
Robert Varga [Mon, 28 Jun 2021 19:35:00 +0000 (21:35 +0200)]
Require SCR in yang-{data,parser}-impl

We need OSGi with SCR, otherwise we end up without activated services.
Make sure we have the appropriate annotation.

Change-Id: I5c7e67a531bb7b4e4c48de1872bcfc320557073f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd support for RFC8639 extensions 48/97348/5
Robert Varga [Fri, 27 Aug 2021 12:18:29 +0000 (14:18 +0200)]
Add support for RFC8639 extensions

We have an internal YANG extension defined in rfc8639. Teach the parser
to correctly recognize it.

JIRA: YANGTOOLS-1314
Change-Id: I96c30c9728e61cadbc550b0b96d925719593c0d6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 7.0.8-SNAPSHOT 14/97314/1
Robert Varga [Tue, 24 Aug 2021 11:08:42 +0000 (13:08 +0200)]
Bump versions to 7.0.8-SNAPSHOT

This starts the next development iteration.

Change-Id: Ibf0ccd22eb887cb73d5fd0aafc36705d53262f0c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.5 11/97311/1
Robert Varga [Tue, 24 Aug 2021 11:07:18 +0000 (13:07 +0200)]
Bump odlparent to 9.0.5

Pick up the stray fixup for bcutil.

Change-Id: Ibcc8b09b92c1530175f6a08c7a273fe1b41fc786
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 7.0.7-SNAPSHOT 99/97299/1
Robert Varga [Mon, 23 Aug 2021 16:36:30 +0000 (18:36 +0200)]
Bump versions to 7.0.7-SNAPSHOT

This starts the next development iteration.

Change-Id: I838d40475d06cc0c490b3943c121926f6b885746
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.4 98/97298/1
Robert Varga [Mon, 23 Aug 2021 16:22:48 +0000 (18:22 +0200)]
Bump odlparent to 9.0.4

Pick up latest fixes from upstream.

Change-Id: I0504633d43bf8d39f18fbd226da06bb4244c8dfa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 7.0.6-SNAPSHOT 62/97262/3
Robert Varga [Thu, 19 Aug 2021 13:47:48 +0000 (15:47 +0200)]
Bump versions to 7.0.6-SNAPSHOT

This starts the next development iteration.

Change-Id: I29e015353b17caa388834d59c30ff8c36da1f4b0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump odlparent to 9.0.3 60/97260/1
Robert Varga [Thu, 19 Aug 2021 13:26:49 +0000 (15:26 +0200)]
Bump odlparent to 9.0.3

Pick up latest fixes from upstream.

Change-Id: Ib9d74aa33ada2e5108f9725cbb62eca75c24720b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAllow refine to change 'default' in leaf-list 57/97257/2
Robert Varga [Thu, 19 Aug 2021 12:36:51 +0000 (14:36 +0200)]
Allow refine to change 'default' in leaf-list

RFC7950 allows 'default' to be specified for 'leaf-list's, which we
recognize. Unfortunately the definition of refine statement does not
take this into account. Fix that and add an explicit test.

JIRA: YANGTOOLS-1312
Change-Id: I0c3ba7ca7cabba486c7226d520ce82a7ec2d194b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRetrofit YangNetconfError for {min,max} elements 48/97248/3
Robert Varga [Wed, 18 Aug 2021 21:53:33 +0000 (23:53 +0200)]
Retrofit YangNetconfError for {min,max} elements

We pretty much everything we need for a proper report, add the basic
infrastructure.

JIRA: YANGTOOLS-1311
Change-Id: I9ac9b0a8000c2862ac4f4b50abd7ffdca118149a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoExpand UniqueConstraintTest 56/97256/1
Robert Varga [Thu, 19 Aug 2021 10:11:22 +0000 (12:11 +0200)]
Expand UniqueConstraintTest

Add a few asserts for the YangNetconfError reported.

JIRA: YANGTOOLS-1306
Change-Id: I262d85b910ec12729fb44bf2bfbb843dcab8d15b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup TestModel a bit 55/97255/1
Robert Varga [Thu, 19 Aug 2021 10:08:11 +0000 (12:08 +0200)]
Cleanup TestModel a bit

Add two FIXMEs and inline a unneeded constant.

Change-Id: Ic19101dff22b4953d45df110a8209593bd49fbe3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRetrofit YangNetconfError into Unique*Exception 88/96688/8
Robert Varga [Sun, 27 Jun 2021 19:20:21 +0000 (21:20 +0200)]
Retrofit YangNetconfError into Unique*Exception

Add a basic bridge to YangNetconfError. This allows NETCONF WG
protocols, like NETCONF and RESTCONF, to report unified complete
information about failure causes.

JIRA: YANGTOOLS-1306
Change-Id: Id8134275fe1b304db88466ad2c6733a48871503e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd DataTreeCandidateInputOutputTest 36/97236/2
Robert Varga [Tue, 17 Aug 2021 11:54:19 +0000 (13:54 +0200)]
Add DataTreeCandidateInputOutputTest

We have completely untested DataTreeCandidateInputOutput, add some
coverage.

Change-Id: Ib9691949f05678415f8d6c6ec35ae9eb2e3bf29d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix yang-data-codec-binfmt dependencies 37/97237/1
Robert Varga [Tue, 17 Aug 2021 19:35:37 +0000 (21:35 +0200)]
Fix yang-data-codec-binfmt dependencies

There is slight confusion between model-api and data-api, we should be
using the latter.

Change-Id: Ib61e43df0e922565ee8b43c2b2dc3ff31431a784
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd NormalizedNodeDataOutputTest 35/97235/2
Robert Varga [Tue, 17 Aug 2021 11:01:59 +0000 (13:01 +0200)]
Add NormalizedNodeDataOutputTest

We have a few lines which are not covered by tests, make sure we cover
them.

Change-Id: If36df82225381edeafaf1f4d0d935fe8cf78a5a3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoReduce strings duplication 34/97234/1
Robert Varga [Tue, 17 Aug 2021 10:52:01 +0000 (12:52 +0200)]
Reduce strings duplication

Sonar is complaining about duplicate strings, make sure it complains a
bit less.

Change-Id: I12cd6d8b1bd8a4abb300c75e578f45a1d176f7d0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd a 9.0.0 FIXME 11/97211/1
Robert Varga [Fri, 13 Aug 2021 23:26:16 +0000 (01:26 +0200)]
Add a 9.0.0 FIXME

It seems we want to reverse nullability, add a FIXME for investigation.

Change-Id: I6fe89b5f8cd2dda5ac060e95d3fdf8ffb192cc58
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd ErrorTag.MALFORMED_MESSAGE 32/97032/3
Robert Varga [Mon, 26 Jul 2021 23:09:48 +0000 (01:09 +0200)]
Add ErrorTag.MALFORMED_MESSAGE

This is an error-tag defined by RFC6241, as that is an update to
semantics we know about.

JIRA: YANGTOOLS-1310
Change-Id: I3d7961dcfb8bf903a2ce232bd7aae60abd34c68f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoErrorTag should be Serializable 31/97031/2
Robert Varga [Mon, 26 Jul 2021 22:55:47 +0000 (00:55 +0200)]
ErrorTag should be Serializable

We want to transport ErrorTag as a type-safe string. Add the infra
to do that. Note that the serialization format places an upper bound
of 64K -- and that is very reasonable for an ErrorTag.

JIRA: YANGTOOLS-1309
Change-Id: Ib0049fbddc92e9b8ec9e1b37851e0de6f6faaad6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 7.0.5-SNAPSHOT 15/97015/1
Robert Varga [Sat, 24 Jul 2021 17:24:30 +0000 (19:24 +0200)]
Bump versions to 7.0.5-SNAPSHOT

This starts the next development iteration.

Change-Id: I692630c4ed1c33743ac33bdf3c69a8f632d4bc36
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDo not cache parent refcount during inference 14/97014/1
Robert Varga [Sat, 24 Jul 2021 17:05:11 +0000 (19:05 +0200)]
Do not cache parent refcount during inference

When we are processing uses statements with refines we end up expanding
effective statements, which has effects on refcount mechanics. One
notable problem is that we may be observing a world where not all of
reference have been established yet.

We therefore must not use parentRef cache until all of our ancestors
have completed ModelProcessingPhase.EFFECTIVE_MODEL.

JIRA: YANGTOOLS-1308
Change-Id: I3e26244899ada796f380fad72bb040cff42dd667
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd refcount to ReactorStmtCtx 12/97012/1
Robert Varga [Thu, 22 Jul 2021 11:57:56 +0000 (13:57 +0200)]
Add refcount to ReactorStmtCtx

Having a reference count is nice tool for debugging liveness. Add it
to toString(), as it costs nearly nothing.

Change-Id: Iad1762c037715834c8fd27c1c6090d80bb490679
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoDeprecate yang.common.YangError 87/96687/17
Robert Varga [Fri, 25 Jun 2021 20:42:40 +0000 (22:42 +0200)]
Deprecate yang.common.YangError

YangError is quite lacking in terms of having the ability to express
errors. We have YangNetconfError as a better replacement, hence
deprecate YangError for removal.

Also retrofit YangNetconfError into the only exception which is
currently using YangError.

JIRA: YANGTOOLS-1305
Change-Id: I881444f1680e61c8f603fea9ab4d70fe01673ad1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd YangNetconfError 83/96883/1
Robert Varga [Wed, 14 Jul 2021 09:05:58 +0000 (11:05 +0200)]
Add YangNetconfError

This is a yang-data-api specialization of a well-known RFC4741/6020
construct, which we have tried to model in yang.common.RpcError and
then via yang.common.YangError.

Unlike YangError, which is directly glued to exceptions,
YangNetconfError has a builder-based immutable implementation, which can
be attached to other objects via YangNetconfErrorAware.

JIRA: YANGTOOLS-1305
Change-Id: I7aa1b587ea74c552996b62514861b4b8b262361e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd YangErrorInfo 82/96882/1
Robert Varga [Wed, 14 Jul 2021 08:54:42 +0000 (10:54 +0200)]
Add YangErrorInfo

Add YangErrorInfo class to hold NormalizedNode-based additional
information for RpcError-like constructs. Also add YangErrorInfos, which
makes it super easy to create well-known error infos like bad-element et
al.

JIRA: YANGTOOLS-1304
Change-Id: If2f45fb0c617396531de7592e29d4e09a1c06f3a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd yang.common.Error{Severity,Tag,Type} constructs 82/96682/22
Robert Varga [Sat, 26 Jun 2021 14:45:21 +0000 (16:45 +0200)]
Add yang.common.Error{Severity,Tag,Type} constructs

There is a number of error-reporting constructs which are defined across
RFC4741, RFC6020, RFC6241 and RFC8040. These originate from NETCONF, but
are quite integrated in the YANG enforcement specification.

- NetconfLayer to identify the NETCONF layer involved
- ErrorSeverity to discern errors and warnings
- ErrorType to express error-types reported
- ErrorTag to extensibly identify error-tag reported

Also add proper RFC4741/RFC6241 namespace anchors and use them as
appropriate.

JIRA: YANGTOOLS-1303
Change-Id: Idbb0d7ac4a2b58f930b06d14522872a18e7037d8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoFix two sonar issues 06/96806/1
Robert Varga [Mon, 5 Jul 2021 14:50:54 +0000 (16:50 +0200)]
Fix two sonar issues

Rather than using a boolean constant in a ?: expression, use a simple
logical or, which does the same thing, but more densely.

Change-Id: If0ce9e755f1323cd28926f4f03f4c8168f7ce8b1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoCleanup NormalizedNodeStreamReaderWriterTest 65/96765/1
Robert Varga [Thu, 1 Jul 2021 14:33:42 +0000 (16:33 +0200)]
Cleanup NormalizedNodeStreamReaderWriterTest

Use assertThrows() and make a few cleanups.

Change-Id: Idd87668118569881c3c4cda43451c152f89a15f4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoRequire SCR from yang-xpath-impl 02/96702/1
Robert Varga [Mon, 28 Jun 2021 18:06:04 +0000 (20:06 +0200)]
Require SCR from yang-xpath-impl

The jar cannot work in OSGi without SCR, make sure annotate as such.

Change-Id: I1281094adc161aed606ed1937ae6999f50f79e9f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd missing spotbugs annotations in xpath-impl 01/96701/1
Robert Varga [Mon, 28 Jun 2021 18:04:59 +0000 (20:04 +0200)]
Add missing spotbugs annotations in xpath-impl

Somehow we have been missing this annotation import, fix that up.

Change-Id: Ib39814bca421b6518f7e1bb0e8c8ec38350747fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoAdd YangError.getErrorTag() 78/96678/2
Robert Varga [Fri, 25 Jun 2021 16:00:14 +0000 (18:00 +0200)]
Add YangError.getErrorTag()

Error tags are well-defined and mandatory-to-include in NETCONF/YANG
error handling model. Make sure we expose this information from
YangError (and by extension from YangInvalidValueException).

JIRA: YANGTOOLS-1301
Change-Id: Ie914fda40b04facf56c5d644c41b3c91a8948dcd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoReport ErrorType.APPLICATION from codecs 77/96677/1
Robert Varga [Fri, 25 Jun 2021 15:27:39 +0000 (17:27 +0200)]
Report ErrorType.APPLICATION from codecs

Codecs are cross-referencing an already-parsed value with YANG
constraints, which puts them squarely to Content layer of NETCONF
protocol -- and that implies ErrorType.APPLICATION.

JIRA: YANGTOOLS-1300
Change-Id: Icd6d2fbfbda554bc09978725d33f927d87d526ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoBump versions to 7.0.4-SNAPSHOT 63/96563/1
Robert Varga [Fri, 18 Jun 2021 15:37:46 +0000 (17:37 +0200)]
Bump versions to 7.0.4-SNAPSHOT

This starts the next development iteration.

Change-Id: Ia48f9eb26c25d1d6dc53f482553f5e1e3cc049c6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>