Fix uses/augment linkage 14/99414/26
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 21 Jan 2022 06:10:37 +0000 (07:10 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 12 Feb 2022 23:19:01 +0000 (00:19 +0100)
commit0617f7767ef89aed17c94d9af6c73d3cca79359e
tree463dd7cb47866ed3e1befe611a6833b05c0a0998
parentb41670e9818c88235d38bde8f4942eec08e07d3e
Fix uses/augment linkage

Our previous fix for MDSAL-715 switched the resolution logic to a unified
approach based on linked augmentation. Unfortunately it missed the fact
that linking the groupings also had the side-effect of setting the
augment target, which in turn populates 'augments' list.

Our failure to do so ends up wrecking lookups in the case where we have
an uses-augmented node further augmented by a module-augment.

Fix this by intertwining original and augment linkage, so that a subtree
root (such as module) pays attention to augments which need to resolve
before descending to recursive linkage.

JIRA: MDSAL-718
Change-Id: I7bd6cbed636267d35113888ddd35f0c6d9411043
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
13 files changed:
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractAugmentGenerator.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractCompositeGenerator.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractExplicitGenerator.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AugmentRequirement.java [new file with mode: 0644]
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/GeneratorReactor.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/LinkageProgress.java [new file with mode: 0644]
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ModuleAugmentGenerator.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/UsesAugmentGenerator.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal718Test.java [new file with mode: 0644]
binding/mdsal-binding-generator/src/test/resources/mdsal718/bar.yang [new file with mode: 0644]
binding/mdsal-binding-generator/src/test/resources/mdsal718/baz.yang [new file with mode: 0644]
binding/mdsal-binding-generator/src/test/resources/mdsal718/foo.yang [new file with mode: 0644]
binding/mdsal-binding-generator/src/test/resources/mdsal718/xyzzy.yang [new file with mode: 0644]