[YANGTOOLS-1009] Emit YangModuleInfo packaging from yang-maven-plugin Created: 03/Jul/19  Updated: 19/Sep/23

Status: Confirmed
Project: yangtools
Component/s: maven plugin
Affects Version/s: None
Fix Version/s: 14.0.0

Type: New Feature Priority: High
Reporter: Robert Varga Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

org.opendaylight.yangtools.yang.binding.YangModuleInfo (as present in md-sal's yang-binding) artifact really belongs to yangtools, or at least yangtools needs an equivalent.

This will allow us to package models in a runtime-discoverable way, without generating MD-SAL binding interfaces out of it. It also provides a Java foothold, which is good enough to extract packaged model's sources while also making sure dependencies are satisfied.

This will allow us to package models and their parser support in centralized bundles, which md-sal can later enrich externally with corresponding Java bindings (or any other bindings, really).

The MD-SAL version also links to imported modules, which creates a strong package-level binding between revisions.

We do not want our version to do that – it should only expose the main module (and its submodules) and metadata about them. Any dependencies will be resolved through parsing anyway.

We also should provide a utility wrapper, which will turn each such YangModuleInfo into a set of model.repo.api.YangTextSchemaSources – which can then be fed into a parser reactor.



 Comments   
Comment by Robert Varga [ 03/Jul/19 ]

A package name string pointing to the YangModuleInfo should be exported for each local module, so that MD-SAL binding generator can point to these when generating its implementation (which additionally has inter-revision ties).

Also, this packaging has implications on parser extensions, as these should package the models separately, so as not to pollute model packaging with yang.model.api dependencies.

Generated at Wed Feb 07 20:54:55 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.