Model-Driven Service Abstraction Layer (MD-SAL)

Overview

MD-SAL provides infrastructure for binding YANG models to Java object model and infrastructure for providing YANG-defined interaction patterns: * Reactive datastore update * RPC and Action invocation * Notification sourcing and delivery

Behavior/Feature Changes

The Binding mapping of type bits YANG statement has been updated to use a dedicated common superinterface, BitsTypeObject. Furthermore individual bits within these classes are now represented as primitive boolean values rather than nullable Boolean objects.

New Features

Both DOMRpcProviderService and RpcProviderService have gained the ability to register single-type and flexible multi-type RPC implementations. RpcConsumerRegistry have gained the ability to access single-RPC handles. These capabilities are based on new codegen feature, which generates @FunctionalInterface interfaces for each individual rpc, similar to how action statements are processed.

Binding code generator now recognizes RFC8040 rc:yang-data extensions and generates corresponding interfaces.

Deprecated Features

NotificationService.registerNotificationListener() method has been deprecated, along with its Binding specification interfaces based on NotificationListener. These will be removed in a future major release.

RpcProviderService.registerRpcImplementation() methods, RpcConsumerRegistry.getRpcService() methods and Binding specification interfaces based on RpcService have been deprecated. These will be removed in a future major release.

Removed Features

No removed features.

Resolved Issues

The following table lists the issues resolved in this release.

Issues resolved in versions 12.0.0 through 12.0.2 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

MDSAL-828

Fix mdsal-binding-dom-codec module definition

Done

11.0.12, 12.0.0

Bug

MDSAL-829

Runtime types fail with leafref typedef and disabled features

Done

11.0.12, 12.0.0

Bug

MDSAL-824

Runtime types fail to be generated for ietf-keystore

Done

10.0.8, 11.0.10, 12.0.0

Bug

MDSAL-822

DOMDataTreeCommitCohort does not expose EffectiveModelContext

Done

11.0.8, 12.0.0

Bug

MDSAL-818

Wildcard KeyedInstanceIdentifier cannot be constructed

Done

10.0.7, 11.0.8, 12.0.0

Bug

MDSAL-837

WriteTransaction.mergeParentStructure{Merge,Put} does not work with augmentation InstanceIdentifier

Done

12.0.1

Bug

MDSAL-838

AbstractPingPongTransactionChain is not idempotent

Done

10.0.9, 11.0.13, 12.0.2

Improvement

MDSAL-752

Add Automatic-Module-Name declarations to packaged models

Done

12.0.0

Improvement

MDSAL-751

Convert mdsal-eos-binding-adapter to a JPMS module

Done

12.0.0

Improvement

MDSAL-750

Convert mdsal-binding-dom-adapter to a JPMS module

Done

12.0.0

Improvement

MDSAL-749

Convert mdsal-dom-broker to a JPMS module

Done

12.0.0

Improvement

MDSAL-748

Convert mdsal-dom-schema-osgi to a JPMS module

Done

12.0.0

Improvement

MDSAL-826

Remove AbstractIetf(Inet,Yang)Util

Done

12.0.0

Improvement

MDSAL-821

Annotate generated serialVersionUID with @java.io.Serial

Done

10.0.7, 11.0.8, 12.0.0

Improvement

MDSAL-798

InstanceIdentifierBuilder should be variadic to KeyedInstanceIdentifier

Done

12.0.0

Improvement

MDSAL-790

mdsal-dom-schema-osgi needs to propagate YangFeatureProviders

Done

11.0.10, 12.0.0

Improvement

MDSAL-789

ModuleInfoSnapshot{Builder,Resolver} should propagate supported features

Done

11.0.9, 12.0.0

New Feature

MDSAL-813

Add DataBroker.registerListener(DataTreeIdentifier,DataListener)

Done

12.0.0

New Feature

MDSAL-783

Do not use BindingReflections.getQName

Done

12.0.0

Sub-task

MDSAL-803

Rehost BindingReflections.getModuleInfo() to BindingRuntimeHelpers

Done

12.0.0

Task

MDSAL-823

Remove convience model artifacts

Done

12.0.0

Task

MDSAL-820

Update mdsal-binding-dom-{codec,adapter} to deal with AugmentationNode being removed

Done

12.0.0

Task

MDSAL-804

Rehost BindingMapping

Done

12.0.0

Task

MDSAL-801

Remove binding.spec.util package

Done

12.0.0

Task

MDSAL-830

Rename yang.binding.{Identifiable,Identifier}

Done

12.0.0

Known Issues

The following table lists the known issues that exist in this release.

Resolved Issues in SR1

The following table lists the issues resolved in Service Release 1.

Issues resolved in versions 12.0.3 through 12.0.3 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Improvement

MDSAL-9

Documentation of how models are registered with OSGI

Done

12.0.3

Task

MDSAL-832

Fix links in README

Done

12.0.3

Known Issues in SR1

The following table lists the known issues that exist in Service Release 1.

Resolved Issues in SR2

The following table lists the issues resolved in Service Release 2.

Issues resolved in versions 12.0.4 through 12.0.4 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Sub-task

MDSAL-845

Define serialization proxies for (DOM)DataTreeIdentifier

Done

11.0.16, 12.0.4, 13.0.0

Known Issues in SR2

The following table lists the known issues that exist in Service Release 2.

Issues affecting versions 12.0.4 through 12.0.4 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

MDSAL-852

IAE during dynamic proxy instantiation

Resolved

10.0.9, 11.0.15, 12.0.4, 13.0.0

11.0.16, 12.0.5, 13.0.0