<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:43 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>[MDSAL-401] Teach AbstractStreamWriterGenerator to keep its mess in its own ClassLoader</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-401</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;Once we implement &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-392&quot; title=&quot;Clean up BindingRuntimeContext instantiation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-392&quot;&gt;&lt;del&gt;MDSAL-392&lt;/del&gt;&lt;/a&gt;, we&apos;ll get a static map of ClassLoaders which participate on a particular BindingRuntimeContext, without any guesswork whatsover and we get this update atomically.&lt;/p&gt;

&lt;p&gt;This is a boon, as we can properly construct our ClassPool, eliminating the need to use JavassistUtils.appendClassLoaderIfMissing(), as we can always find binding classes for a BindingRuntimeContext.&lt;/p&gt;

&lt;p&gt;The direct implication is that for a particular BindingRuntimeContext generation we can generate codecs into a properly-controller ClassLoader so they do end up being thrown with interface classes.&lt;/p&gt;

&lt;p&gt;This has the upshot that we do not leave crud if ever mdsal-binding-dom-adapter/codec are reloaded, hopefully fixing frozenClass exceptions once and for all.&lt;/p&gt;

&lt;p&gt;Furthermore we can make sure AbstractStreamWriterGenerator.generateEmitter0() runs with the codec class loader visible, meaning we can properly initialize the prototypes without having to play tricks with reflection and late value injection.&lt;/p&gt;</description>
                <environment></environment>
        <key id="31087">MDSAL-401</key>
            <summary>Teach AbstractStreamWriterGenerator to keep its mess in its own ClassLoader</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Nov 2018 17:39:33 +0000</created>
                <updated>Mon, 29 Apr 2019 14:51:16 +0000</updated>
                            <resolved>Mon, 29 Apr 2019 14:51:16 +0000</resolved>
                                                    <fixVersion>4.0.1</fixVersion>
                                    <component>Binding runtime</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="66723" author="rovarga" created="Thu, 18 Apr 2019 15:29:45 +0000"  >&lt;p&gt;With the infrastructure introduced by &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-442&quot; title=&quot;Teach binding-dom-codec to keep its proxies in a separate ClassLoader&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-442&quot;&gt;&lt;del&gt;MDSAL-442&lt;/del&gt;&lt;/a&gt; we do not need to wait for &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-392&quot; title=&quot;Clean up BindingRuntimeContext instantiation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-392&quot;&gt;&lt;del&gt;MDSAL-392&lt;/del&gt;&lt;/a&gt;, as we have a clean multi-classloader support in place. As it turns out the entire StreamWriter machinery is needlessly complicated, as it used to support Config Subsystem and also it relies on yang-binding interfaces.&lt;/p&gt;

&lt;p&gt;Due to API stability, we cannot just ditch the mechanics and refactor the generator to be properly implemented, hence the patch to resolve this should provide a forked implementation, integrated into BindingCodecContext, which does not live in gen.impl, but rather directly in the binding-dom-codec proper, being an implementation detail.&lt;/p&gt;

&lt;p&gt;Generated stream writers should also not be based on yang-binding concepts, but rather on interfaces/classes private to binding-dom-codec, so they are not leaked to the Binding Specification and be properly co-evolved with the codec.&lt;/p&gt;

&lt;p&gt;Once such an implementation is present, all interfaces and classes supporting the legacy writers and not used by the new ones should be deprecated and then removed in 5.0.0 timeframe.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="31635">MDSAL-444</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="31622">MDSAL-442</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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|i03ku7:</customfieldvalue>

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