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 identityref
YANG statement has been updated to use singleton objects
instead of corresponding .class
references. These singleton objects are exposed as VALUE
constants,
hence the migration is a straightforward move from Foo.class
to Foo.VALUE
.
Binding classes generated for type enumeration
YANG statement now have ofName()
and ofValue()
methods, which return a non-null object or throw an IllegalArgumentException
.
The feature
YANG statement now has a representation in Binding: it is a final class which subclasses
YangFeature
with a singleton value.
New Features¶
Both DOMNotificationService
and NotificationService
have gained the ability to register single-type
and flexible multi-type notification listerners. This change allows Binding users to implement only specific
listeners, unlike the previous method of using generated interfaces extending NotificationListener
– which
required implementation of methods for every notification defined in a specific module.
Deprecated Features¶
NotificationService.registerNotificationListener()
method has been deprecated, along with its Binding
specification interfaces based on NotificationListener
. These will be removed in the next major release.
Removed Features¶
No removed features.
Resolved Issues¶
The following table lists the issues resolved in this release.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
PingPongTransactionChain’s cancel() always closes underlying chain |
Done |
10.0.0, 8.0.14, 9.0.3 |
||
Do not shade byte-buddy |
Done |
10.0.0 |
||
Change ‘type identityref’ Binding representation to normal objects |
Done |
10.0.0 |
||
Convert mdsal-binding-dom-codec to a JPMS module |
Done |
10.0.0 |
||
Generate ofName() and ofValue() for enumerations |
Done |
10.0.0 |
||
Generate a switch expression for enum’s forName()/forValue() methods |
Done |
10.0.0 |
||
Generate fields for all Identityrefs in an Union binding class. |
Done |
10.0.0 |
||
Use HexFormat to print out byte[] properties |
Done |
10.0.0 |
||
Improve TypeObject.toString() |
Done |
10.0.0 |
||
Improve javadoc of generated classes |
Done |
10.0.0 |
||
Generate javadoc for unions |
Done |
10.0.1 |
||
Generate javadoc for augments |
Done |
10.0.1 |
||
Improve javadoc for generated keys |
Done |
10.0.1 |
||
Generate javadocs for Builder.withKey() |
Done |
10.0.1 |
||
Generate javadoc for ScalarTypes |
Done |
10.0.2 |
||
Reflect identity status in generated classes |
Done |
10.0.2, 9.0.6 |
||
Reflect feature status in generated classes |
Done |
10.0.2 |
||
Support for atomic registration of diverse DOMNotificationListeners |
Done |
10.0.0 |
||
Add support for listening on multiple notifications |
Done |
10.0.0 |
||
Add support for advertizing supported features |
Done |
10.0.1 |
||
Generate code for ‘feature’ statements |
Done |
10.0.1 |
||
Do not generate Builders for Union types |
Done |
10.0.0 |
||
Do not generate @java.beans.ConstructorProperties |
Done |
10.0.0 |
||
Do not use IllegalArgumentCodec |
Done |
10.0.0 |
||
Deprecate generated notification listener interface |
Done |
10.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) |
---|---|---|---|---|---|
DOMRpcService.registerImplementations() does not work with pre-existing entries |
Resolved |
10.0.0, 10.0.3, 11.0.0, 7.0.0, 7.0.14, 8.0.0, 8.0.16, 9.0.0, 9.0.6 |
10.0.4, 11.0.1, 9.0.7 |
Resolved Issues in SR1¶
The following table lists the issues resolved in Service Release 1.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
DOMRpcService.registerImplementations() does not work with pre-existing entries |
Done |
10.0.4, 11.0.1, 9.0.7 |
||
Do not track uninteresting bundles |
Done |
10.0.3, 11.0.0 |
||
Union value classes need to enforce non-null components |
Done |
10.0.4, 11.0.0 |
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.
Known Issues in SR1¶
The following table lists the known issues that exist in Service Release 2.