<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:56:10 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[YANGTOOLS-1444] Add annotation-based YANG codegen</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1444</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;We have a metric ton of configuration expressed in explicit YANG models which could be generated from YANG annotations.&lt;/p&gt;

&lt;p&gt;One example is aaa-app-config.yang, which really could be annotation-driven, if we only defined a corresponding bean in Java and annotate it accordingly.&lt;/p&gt;

&lt;p&gt;This amounts to a new feature: given a set of appropriately-annotated classes, we can generate the YANG model which describes them &amp;#8211; and Java developers can then design their DTOs in Java without having to know too much about YANG.&lt;/p&gt;

&lt;p&gt;Such an annotated class should act as a replacement for things that would normally end up being generated by MD-SAL&apos;s binding. That part is just about ready to move back to yangtools, pending removal of per-module notification and RPC interfaces. The interaction here should be such that the generated YANG uses well-defined extensions, which in turn the binding codegen recognizes and instead of generating code it just replaces references to the corresponding Java class.&lt;/p&gt;

&lt;p&gt;That means, in turn, that we should have something like:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;module odl-yangtools-beans {
  extension java-class {
    argument fqcn {
      // perhaps with a pattern, parhaps a typedef
      type strings;
    }
  }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;MD-SAL codegen should recognize this extension as meaning that specified FCQN supersedes anything we would generate. How exactly we bridge from DOM is a question: perhaps we need to generate enough metadata for mdsal-binding-dom-codec to do the right thing.&lt;/p&gt;</description>
                <environment></environment>
        <key id="35834">YANGTOOLS-1444</key>
            <summary>Add annotation-based YANG codegen</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Wed, 1 Jun 2022 01:44:42 +0000</created>
                <updated>Tue, 19 Sep 2023 16:22:23 +0000</updated>
                                                                            <component>maven plugin</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                        <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i042i7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>