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.

Issues resolved in versions 9.0.0 through 9.0.1 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1428

Missing failedSource in SchemaResolutionException

Done

7.0.16, 8.0.4, 9.0.0

Bug

YANGTOOLS-1431

Unsupported leaf under causes parsing failure

Done

8.0.4, 9.0.0

Bug

YANGTOOLS-1433

YangInstanceIdentifierWriter does not handle nested augmentations

Done

8.0.5, 9.0.0

Bug

YANGTOOLS-1438

Decimal64.toString() loses negative sign

Done

8.0.6, 9.0.0

Bug

YANGTOOLS-1434

Building SchemaContext fails when augmenting submodel data

Done

8.0.6, 9.0.0

Bug

YANGTOOLS-1436

Unexpected error while processing submodule references

Done

10.0.0, 8.0.7, 9.0.1

Epic

YANGTOOLS-1322

Remove concepts.Builder and concepts.CheckedBuilder

Done

9.0.0

Epic

YANGTOOLS-1332

Remove concepts.IllegalArgumentCodec

Done

9.0.0

Improvement

YANGTOOLS-1425

Compute YangInstanceIdentifier.hashCode lazily

Done

9.0.0

Improvement

YANGTOOLS-1420

Update known Unicode blocks for Java 17

Done

9.0.0

Improvement

YANGTOOLS-1424

Switch yang-model-validator to argparse4j

Done

9.0.0

Improvement

YANGTOOLS-1440

Add support for adjusting Decimal64 scale

Done

8.0.6, 9.0.0

Improvement

YANGTOOLS-1437

Normalize Decimal64 scale in DecimalStringCodec

Done

8.0.6, 9.0.0

Improvement

YANGTOOLS-1422

Invert SchemaInferenceStack’s deque

Done

9.0.0

Improvement

YANGTOOLS-837

Add support for varied model conformance

Done

9.0.0

Improvement

YANGTOOLS-1396

Refactor IfFeaturePredicateVisitor

Done

9.0.0

Improvement

YANGTOOLS-1439

Improve Decimal64.toString() implementation

Done

9.0.1

Improvement

YANGTOOLS-1449

Convert yang-data-codec-gson into a JPMS

Done

9.0.1

New Feature

YANGTOOLS-1315

Add support for RFC8819 “module-tag” extension

Done

9.0.1

Sub-task

YANGTOOLS-1451

Deprecate XMLStreamNormalizedNodeStreamWriter.create() with SchemaPath

Done

9.0.1

Sub-task

YANGTOOLS-1450

Deprecate JSONNormalizedNodeStreamWriter.create*Writer() with SchemaPath

Done

9.0.1

Task

YANGTOOLS-1432

Remove support for semantic version imports

Done

9.0.0

Task

YANGTOOLS-1427

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.

Issues affecting versions 9.0.0 through 9.0.1 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1443

Fix YangDataEffectiveStatement definition

Resolved

7.0.17, 8.0.6, 9.0.0

10.0.0, 8.0.8, 9.0.2

Bug

YANGTOOLS-1455

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

Bug

YANGTOOLS-1467

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

Bug

YANGTOOLS-1465

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

Bug

YANGTOOLS-1473

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

Bug

YANGTOOLS-1514

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.

Issues resolved in versions 9.0.2 through 9.0.5 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1443

Fix YangDataEffectiveStatement definition

Done

10.0.0, 8.0.8, 9.0.2

Bug

YANGTOOLS-1455

Data change event notification fails

Done

10.0.0, 7.0.18, 8.0.8, 9.0.2

Bug

YANGTOOLS-1448

Failed to parse deviation statement present in submodule

Done

10.0.1, 8.0.9, 9.0.3

Bug

YANGTOOLS-1445

Node name collision for unique argument

Done

10.0.1, 8.0.9, 9.0.3

Bug

YANGTOOLS-1467

yang-xpath-impl depends on javax.inject

Done

10.0.1, 8.0.9, 9.0.3

Bug

YANGTOOLS-1465

Unexpected error processing source SourceIdentifier [ietf-network@2018-02-26]

Done

10.0.1, 8.0.9, 9.0.4

Bug

YANGTOOLS-1469

NormalizedNodeStreamWriter.create() ignores path

Done

10.0.2, 9.0.5

Bug

YANGTOOLS-1487

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.

Issues affecting versions 9.0.2 through 9.0.5 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1470

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

Bug

YANGTOOLS-1471

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.

Issues resolved in versions 9.0.6 through 9.0.6 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1470

Fail to find unique argument node in augmented list

Done

10.0.3, 8.0.10, 9.0.6

Bug

YANGTOOLS-1471

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.

Issues affecting versions 9.0.6 through 9.0.6 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1474

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

Bug

YANGTOOLS-1481

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

Bug

YANGTOOLS-1480

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

Bug

YANGTOOLS-1485

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.

Issues resolved in versions 9.0.7 through 9.0.8 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1458

Instance identifier parser : handle inner quotes within quoted strings

Done

10.0.3, 8.0.10, 9.0.7

Bug

YANGTOOLS-1361

YangXPathExpression.interpretAsInstanceIdentifier() does not handle unqualified names

Done

10.0.3, 8.0.10, 9.0.7

Bug

YANGTOOLS-1474

Fail to process augmentation with empty grouping

Done

10.0.3, 8.0.10, 9.0.7

Bug

YANGTOOLS-1481

Fail to parse a list with unique statement when unsupported

Done

10.0.4, 8.0.10, 9.0.7

Bug

YANGTOOLS-1011

Empty XML anydata nodes cannot be normalized

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1480

Fail to process deviation/augmentation from multiple modules

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1473

XML/JSON YangInstanceIdentifier codecs mis-handle key values

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1485

Fail to process deviation of augmented node without feature support

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1505

yang-maven-plugin elicits deprecation warning with maven-3.9.1

Done

10.0.7, 11.0.0, 9.0.8

Improvement

YANGTOOLS-1486

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.

Issues affecting versions 9.0.7 through 9.0.8 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1514

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

Bug

YANGTOOLS-1533

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

Bug

YANGTOOLS-1537

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