Bug 3821 - Augmentation codecs may be loaded after codec creation. 86/22986/2
authorTony Tkacik <ttkacik@cisco.com>
Fri, 19 Jun 2015 09:29:40 +0000 (11:29 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Fri, 19 Jun 2015 10:58:12 +0000 (12:58 +0200)
commitacf8e80b0747bd0aa724e978288bb83f6ca338ad
tree5807bf476652c23391c94e3602b90080d9dbecda
parentde6b83606f858fc0c220dde944cc0a9231e3d67e
Bug 3821 - Augmentation codecs may be loaded after codec creation.

In some scenarios - where schema context already contained
schema for introduced augmentation, but class was not known
at time codec creation was triggered - codec for augmenation
was not created and any subsequent uses of codec (class is
already known) failed with IncorrectNestingException.

This patch introduces

  - new exception MissingClassInLoadingStrategy
    which is subclass used by MD-SAL to retry after context update
    or timeout
  - supports loading of  augmentation codec after parent codec
    was created and augmentation is part of schema codec

Change-Id: If85f8e2be614a139947abc5daaa1e141b3c9b22c
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
code-generator/binding-data-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/DataContainerCodecContext.java
code-generator/binding-data-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/DataContainerCodecPrototype.java
code-generator/binding-data-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/DataObjectCodecContext.java
code-generator/binding-data-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/MissingClassInLoadingStrategyException.java [new file with mode: 0644]
code-generator/binding-data-codec/src/main/java/org/opendaylight/yangtools/binding/data/codec/impl/MissingSchemaException.java
code-generator/binding-data-codec/src/test/java/org/opendaylight/yangtools/binding/data/codec/test/AugmentationClassDiscoveredAfterCodecTest.java [new file with mode: 0644]