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.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Wildcard KeyedInstanceIdentifier cannot be constructed |
Done |
10.0.7, 11.0.8, 12.0.0 |
||
DOMDataTreeCommitCohort does not expose EffectiveModelContext |
Done |
11.0.8, 12.0.0 |
||
Runtime types fail to be generated for ietf-keystore |
Done |
10.0.8, 11.0.10, 12.0.0 |
||
Runtime types fail with leafref typedef and disabled features |
Done |
11.0.12, 12.0.0 |
||
Fix mdsal-binding-dom-codec module definition |
Done |
11.0.12, 12.0.0 |
||
WriteTransaction.mergeParentStructure{Merge,Put} does not work with augmentation InstanceIdentifier |
Done |
12.0.1 |
||
AbstractPingPongTransactionChain is not idempotent |
Done |
10.0.9, 11.0.13, 12.0.2 |
||
InstanceIdentifierBuilder should be variadic to KeyedInstanceIdentifier |
Done |
12.0.0 |
||
Annotate generated serialVersionUID with @java.io.Serial |
Done |
10.0.7, 11.0.8, 12.0.0 |
||
ModuleInfoSnapshot{Builder,Resolver} should propagate supported features |
Done |
11.0.9, 12.0.0 |
||
Add Automatic-Module-Name declarations to packaged models |
Done |
12.0.0 |
||
Convert mdsal-dom-schema-osgi to a JPMS module |
Done |
12.0.0 |
||
Remove AbstractIetf(Inet,Yang)Util |
Done |
12.0.0 |
||
mdsal-dom-schema-osgi needs to propagate YangFeatureProviders |
Done |
11.0.10, 12.0.0 |
||
Convert mdsal-binding-dom-adapter to a JPMS module |
Done |
12.0.0 |
||
Convert mdsal-eos-binding-adapter to a JPMS module |
Done |
12.0.0 |
||
Convert mdsal-dom-broker to a JPMS module |
Done |
12.0.0 |
||
Add DataBroker.registerListener(DataTreeIdentifier,DataListener) |
Done |
12.0.0 |
||
Rehost BindingReflections.getModuleInfo() to BindingRuntimeHelpers |
Done |
12.0.0 |
||
Remove convience model artifacts |
Done |
12.0.0 |
||
Remove binding.spec.util package |
Done |
12.0.0 |
||
Rename yang.binding.{Identifiable,Identifier} |
Done |
12.0.0 |
||
Rehost BindingMapping |
Done |
12.0.0 |
||
Update mdsal-binding-dom-{codec,adapter} to deal with AugmentationNode being removed |
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.
Type |
Key |
Summary |
Resolution |
Fix Version(s) |
---|---|---|---|---|
Documentation of how models are registered with OSGI |
Done |
12.0.3 |
||
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.