YANG Tools¶
Overview¶
YANG Tools provides a set of libraries to deal with YANG models and data modeled using them.
Behavior/Feature Changes¶
ImmutableOffsetMap
and SingletonSet
classes now use the Serialization Proxy Pattern,
improving their serialization footprint.
A large number of abstract classes and interfaces not intended to be directly subclasses/implemented
are now sealed
. This results in better API definitions and provides a clearer guidance to users.
This change also means these can no longer be mocked through Mockito and similar frameworks. Users
are advised to use concrete implementations instead.
New Features¶
YANG Parser now supports the module-tag
as defined in RFC819.
Removed Features¶
The CheckedBuilder
and Builder
concepts have been removed in this release.
The IllegalArgumentCodec
concept has been removed in this release.
The support for resolving inter-module dependencies based on semantic version has been removed.
Deprecated Features¶
Code generation plugin APIs for yang-maven-plugin
contained in the yang-maven-plugin-spi
artifact are deprecated and will be removed in the next major release. Their replacement live
in maven-agnostic plugin-generator-api
.
The SchemaPath
class has been deprecated and will be removed in the next major release. Please
use its correct replacements, SchemaNodeIdentifier
and EffectiveStatementInference
, which
provide more powerful capabilities.
Resolved Issues¶
The following table lists the issues resolved in this release.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Missing failedSource in SchemaResolutionException |
Done |
7.0.16, 8.0.4, 9.0.0 |
||
Unsupported leaf under causes parsing failure |
Done |
8.0.4, 9.0.0 |
||
YangInstanceIdentifierWriter does not handle nested augmentations |
Done |
8.0.5, 9.0.0 |
||
Decimal64.toString() loses negative sign |
Done |
8.0.6, 9.0.0 |
||
Building SchemaContext fails when augmenting submodel data |
Done |
8.0.6, 9.0.0 |
||
Unexpected error while processing submodule references |
Done |
10.0.0, 8.0.7, 9.0.1 |
||
Remove concepts.Builder and concepts.CheckedBuilder |
Done |
9.0.0 |
||
Remove concepts.IllegalArgumentCodec |
Done |
9.0.0 |
||
Compute YangInstanceIdentifier.hashCode lazily |
Done |
9.0.0 |
||
Update known Unicode blocks for Java 17 |
Done |
9.0.0 |
||
Switch yang-model-validator to argparse4j |
Done |
9.0.0 |
||
Add support for adjusting Decimal64 scale |
Done |
8.0.6, 9.0.0 |
||
Normalize Decimal64 scale in DecimalStringCodec |
Done |
8.0.6, 9.0.0 |
||
Invert SchemaInferenceStack’s deque |
Done |
9.0.0 |
||
Add support for varied model conformance |
Done |
9.0.0 |
||
Refactor IfFeaturePredicateVisitor |
Done |
9.0.0 |
||
Improve Decimal64.toString() implementation |
Done |
9.0.1 |
||
Convert yang-data-codec-gson into a JPMS |
Done |
9.0.1 |
||
Add support for RFC8819 “module-tag” extension |
Done |
9.0.1 |
||
Deprecate XMLStreamNormalizedNodeStreamWriter.create() with SchemaPath |
Done |
9.0.1 |
||
Deprecate JSONNormalizedNodeStreamWriter.create*Writer() with SchemaPath |
Done |
9.0.1 |
||
Remove support for semantic version imports |
Done |
9.0.0 |
||
Do not fallback to toString() in UnionStringCodec |
Done |
9.0.0 |
Known Issues¶
The following table lists the known issues that exist in this release.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
Fix YangDataEffectiveStatement definition |
Resolved |
7.0.17, 8.0.6, 9.0.0 |
10.0.0, 8.0.8, 9.0.2 |
||
Data change event notification fails |
Resolved |
7.0.0, 7.0.17, 8.0.0, 8.0.7, 9.0.0, 9.0.2 |
10.0.0, 7.0.18, 8.0.8, 9.0.2 |
||
yang-xpath-impl depends on javax.inject |
Resolved |
10.0.0, 8.0.0, 8.0.8, 9.0.0, 9.0.2 |
10.0.1, 8.0.9, 9.0.3 |
||
Unexpected error processing source SourceIdentifier [ietf-network@2018-02-26] |
Resolved |
10.0.0, 8.0.0, 8.0.8, 9.0.0, 9.0.2 |
10.0.1, 8.0.9, 9.0.4 |
||
XML/JSON YangInstanceIdentifier codecs mis-handle key values |
Resolved |
10.0.4, 7.0.18, 8.0.0, 9.0.0 |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
||
Failed to process YANGs containing refine of a if-feature’d target |
Resolved |
10.0.0, 10.0.7, 7.0.18, 8.0.10, 9.0.0, 9.0.8 |
10.0.8, 11.0.0, 9.0.9 |
Resolved Issues in SR1¶
The following table lists the issues resolved in Service Release 1.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Fix YangDataEffectiveStatement definition |
Done |
10.0.0, 8.0.8, 9.0.2 |
||
Data change event notification fails |
Done |
10.0.0, 7.0.18, 8.0.8, 9.0.2 |
||
Failed to parse deviation statement present in submodule |
Done |
10.0.1, 8.0.9, 9.0.3 |
||
Node name collision for unique argument |
Done |
10.0.1, 8.0.9, 9.0.3 |
||
yang-xpath-impl depends on javax.inject |
Done |
10.0.1, 8.0.9, 9.0.3 |
||
Unexpected error processing source SourceIdentifier [ietf-network@2018-02-26] |
Done |
10.0.1, 8.0.9, 9.0.4 |
||
NormalizedNodeStreamWriter.create() ignores path |
Done |
10.0.2, 9.0.5 |
||
DOMSourceAnydata marked as private and hence unusable |
Won’t Do |
9.0.5 |
Known Issues in SR1¶
The following table lists the known issues that exist in Service Release 1.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
Fail to find unique argument node in augmented list |
Resolved |
10.0.1, 8.0.9, 9.0.5 |
10.0.3, 8.0.10, 9.0.6 |
||
Fail to process unsupported augment statement |
Resolved |
10.0.1, 8.0.9, 9.0.5 |
10.0.3, 8.0.10, 9.0.6 |
Resolved Issues in SR2¶
The following table lists the issues resolved in Service Release 2.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Fail to find unique argument node in augmented list |
Done |
10.0.3, 8.0.10, 9.0.6 |
||
Fail to process unsupported augment statement |
Done |
10.0.3, 8.0.10, 9.0.6 |
Known Issues in SR2¶
The following table lists the known issues that exist in Service Release 2.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
Fail to process augmentation with empty grouping |
Resolved |
10.0.2, 8.0.9, 9.0.6 |
10.0.3, 8.0.10, 9.0.7 |
||
Fail to parse a list with unique statement when unsupported |
Resolved |
10.0.3, 8.0.9, 9.0.6 |
10.0.4, 8.0.10, 9.0.7 |
||
Fail to process deviation/augmentation from multiple modules |
Resolved |
10.0.3, 7.0.18, 8.0.9, 9.0.6 |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
||
Fail to process deviation of augmented node without feature support |
Resolved |
10.0.3, 8.0.9, 9.0.6 |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
Resolved Issues in SR3¶
The following table lists the issues resolved in Service Release 3.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Instance identifier parser : handle inner quotes within quoted strings |
Done |
10.0.3, 8.0.10, 9.0.7 |
||
YangXPathExpression.interpretAsInstanceIdentifier() does not handle unqualified names |
Done |
10.0.3, 8.0.10, 9.0.7 |
||
Fail to process augmentation with empty grouping |
Done |
10.0.3, 8.0.10, 9.0.7 |
||
Fail to parse a list with unique statement when unsupported |
Done |
10.0.4, 8.0.10, 9.0.7 |
||
Empty XML anydata nodes cannot be normalized |
Done |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
||
Fail to process deviation/augmentation from multiple modules |
Done |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
||
XML/JSON YangInstanceIdentifier codecs mis-handle key values |
Done |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
||
Fail to process deviation of augmented node without feature support |
Done |
10.0.5, 11.0.0, 8.0.10, 9.0.7 |
||
yang-maven-plugin elicits deprecation warning with maven-3.9.1 |
Done |
10.0.7, 11.0.0, 9.0.8 |
||
Reduce AbstractPrerequisite footprint |
Done |
10.0.4, 8.0.10, 9.0.7 |
Known Issues in SR3¶
The following table lists the known issues that exist in Service Release 3.
Type |
Key |
Summary |
Status |
Affected Version(s) |
Fix Version(s) |
---|---|---|---|---|---|
Failed to process YANGs containing refine of a if-feature’d target |
Resolved |
10.0.0, 10.0.7, 7.0.18, 8.0.10, 9.0.0, 9.0.8 |
10.0.8, 11.0.0, 9.0.9 |
||
XmlParserStream reports “Unhandled mount-aware schema” |
Resolved |
10.0.9, 11.0.0, 3.0.17, 4.0.15, 5.0.10, 6.0.12, 7.0.18, 8.0.10, 9.0.8 |
10.0.10, 11.0.1, 9.0.9 |
||
CME in AbstractNodeContainerModificationStrategy.checkChildPreconditions() |
Resolved |
10.0.9, 11.0.1, 4.0.15, 5.0.10, 6.0.12, 7.0.18, 8.0.10, 9.0.8 |
10.0.10, 11.0.2, 9.0.9 |