<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:08:52 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-175] How to transform from BA to BI in mdsal?</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-175</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;For example,my yang is like below:&lt;br/&gt;
module zws-test {&lt;br/&gt;
    namespace &quot;urn:opendaylight:params:xml:ns:yang:yangtools:zws:test&quot;;&lt;br/&gt;
    prefix test;&lt;br/&gt;
    revision &quot;2016-06-12&quot; &lt;/p&gt;
{
        description
        &quot;Test model for testing union data types.&quot;;
    }&lt;br/&gt;
    container wrapper {&lt;br/&gt;
        leaf-list simple {
            type string;
        }&lt;br/&gt;
        leaf wrap {            type string;        }&lt;br/&gt;
    }&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
I can use below codes to transform Binding Aware to Binding independent object (NormalizedNode):&lt;br/&gt;
		ModuleInfoBackedContext ctx = ModuleInfoBackedContext.create();&lt;br/&gt;
        ctx.addModuleInfos(BindingReflections.loadModuleInfos());&lt;br/&gt;
        schemaContext = ctx.tryToCreateSchemaContext().get();&lt;br/&gt;
        runtimeContext = BindingRuntimeContext.create(ctx, schemaContext);&lt;br/&gt;
        &lt;br/&gt;
		JavassistUtils utils = JavassistUtils.forClassPool(ClassPool.getDefault());&lt;br/&gt;
        registry = new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(utils));&lt;br/&gt;
        registry.onBindingRuntimeContextUpdated(runtimeContext);&lt;br/&gt;
        WrapperBuilder wrapperB = new WrapperBuilder();&lt;br/&gt;
        List&amp;lt;String&amp;gt; simpleList = new ArrayList&amp;lt;String&amp;gt;();&lt;br/&gt;
        simpleList.add(&quot;simplezws&quot;);&lt;br/&gt;
        simpleList.add(&quot;ghsgghd3333&quot;);&lt;br/&gt;
        wrapperB.setSimple(simpleList);&lt;br/&gt;
        wrapperB.setWrap(&quot;wrapZws&quot;);&lt;br/&gt;
        Wrapper wrapper = wrapperB.build();&lt;br/&gt;
        NormalizedNode&amp;lt;?, ?&amp;gt; topLevelEntry = registry.toNormalizedNode(&lt;br/&gt;
        		InstanceIdentifier.builder(&lt;br/&gt;
        				Wrapper.class).build(), wrapperB.build()).getValue();&lt;br/&gt;
						&lt;br/&gt;
But when I add some yang nodes like below to the above yang:&lt;br/&gt;
module zws-test {&lt;br/&gt;
    namespace &quot;urn:opendaylight:params:xml:ns:yang:yangtools:zws:test&quot;;&lt;br/&gt;
    prefix test;&lt;br/&gt;
    revision &quot;2016-06-12&quot; {        description        &quot;Test model for testing union data types.&quot;;    }
&lt;p&gt;    container wrapper {&lt;br/&gt;
        leaf-list simple &lt;/p&gt;
{
            type string;
        }&lt;br/&gt;
		//add yang node&lt;br/&gt;
        container tree&lt;br/&gt;
        {&lt;br/&gt;
        	leaf open&lt;br/&gt;
        	{
        		type string;
        	}&lt;br/&gt;
        }&lt;br/&gt;
		//&lt;br/&gt;
        leaf wrap {            type string;        }
&lt;p&gt;    }&lt;br/&gt;
}&lt;br/&gt;
and then run the below codes:&lt;br/&gt;
		ModuleInfoBackedContext ctx = ModuleInfoBackedContext.create();&lt;br/&gt;
        ctx.addModuleInfos(BindingReflections.loadModuleInfos());&lt;br/&gt;
        schemaContext = ctx.tryToCreateSchemaContext().get();&lt;br/&gt;
        runtimeContext = BindingRuntimeContext.create(ctx, schemaContext);&lt;/p&gt;

&lt;p&gt;		JavassistUtils utils = JavassistUtils.forClassPool(ClassPool.getDefault());&lt;br/&gt;
        registry = new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(utils));&lt;br/&gt;
        registry.onBindingRuntimeContextUpdated(runtimeContext);&lt;br/&gt;
        WrapperBuilder wrapperB = new WrapperBuilder();&lt;br/&gt;
        List&amp;lt;String&amp;gt; simpleList = new ArrayList&amp;lt;String&amp;gt;();&lt;br/&gt;
        simpleList.add(&quot;simplezws&quot;);&lt;br/&gt;
        simpleList.add(&quot;ghsgghd3333&quot;);&lt;br/&gt;
        wrapperB.setSimple(simpleList);&lt;br/&gt;
        wrapperB.setWrap(&quot;wrapZws&quot;);&lt;br/&gt;
		//add code&lt;br/&gt;
        TreeBuilder treeB = new TreeBuilder();&lt;br/&gt;
        treeB.setOpen(&quot;open&quot;);&lt;br/&gt;
		//&lt;br/&gt;
        wrapperB.setTree(treeB.build());&lt;br/&gt;
        Wrapper wrapper = wrapperB.build();&lt;br/&gt;
        NormalizedNode&amp;lt;?, ?&amp;gt; topLevelEntry = registry.toNormalizedNode(&lt;br/&gt;
        		InstanceIdentifier.builder(&lt;br/&gt;
        				Wrapper.class).build(), wrapperB.build()).getValue();&lt;br/&gt;
 and it throw exceptions like this:&lt;br/&gt;
 Exception in thread &quot;main&quot; com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Failed to instantiate prototype org.opendaylight.yangtools.binding.data.codec.gen.impl.DataObjectSerializerPrototype as org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.zws.test.rev160612.Wrapper$StreamWriter&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)&lt;br/&gt;
	at com.google.common.cache.LocalCache.get(LocalCache.java:3937)&lt;br/&gt;
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)&lt;br/&gt;
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)&lt;br/&gt;
	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.getSerializer(BindingNormalizedNodeCodecRegistry.java:72)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toNormalizedNode(BindingNormalizedNodeCodecRegistry.java:106)&lt;br/&gt;
	at model.test.main(test.java:48)&lt;br/&gt;
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Failed to instantiate prototype org.opendaylight.yangtools.binding.data.codec.gen.impl.DataObjectSerializerPrototype as org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.zws.test.rev160612.Wrapper$StreamWriter&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)&lt;br/&gt;
	at com.google.common.cache.LocalCache.get(LocalCache.java:3937)&lt;br/&gt;
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)&lt;br/&gt;
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)&lt;br/&gt;
	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator.getSerializer(AbstractStreamWriterGenerator.java:89)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry$GeneratorLoader.load(BindingNormalizedNodeCodecRegistry.java:276)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry$GeneratorLoader.load(BindingNormalizedNodeCodecRegistry.java:273)&lt;br/&gt;
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)&lt;br/&gt;
	... 7 more&lt;br/&gt;
Caused by: java.lang.IllegalStateException: Failed to instantiate prototype org.opendaylight.yangtools.binding.data.codec.gen.impl.DataObjectSerializerPrototype as org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.zws.test.rev160612.Wrapper$StreamWriter&lt;br/&gt;
	at org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils.instantiatePrototype(JavassistUtils.java:135)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator.generateEmitter0(AbstractStreamWriterGenerator.java:209)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator.access$300(AbstractStreamWriterGenerator.java:46)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$SerializerImplementationLoader.generateSerializer(AbstractStreamWriterGenerator.java:136)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$SerializerImplementationLoader.load(AbstractStreamWriterGenerator.java:124)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$SerializerImplementationLoader.load(AbstractStreamWriterGenerator.java:102)&lt;br/&gt;
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)&lt;br/&gt;
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)&lt;br/&gt;
	... 18 more&lt;br/&gt;
Caused by: java.lang.RuntimeException: cannot find org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.zws.test.rev160612.wrapper: org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.yangtools.zws.test.rev160612.Wrapper found in org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/yangtools/zws/test/rev160612/wrapper.class&lt;br/&gt;
	at javassist.CtClassType.getClassFile2(CtClassType.java:202)&lt;br/&gt;
	at javassist.CtClassType.makeFieldCache(CtClassType.java:873)&lt;br/&gt;
	at javassist.CtClassType.getMembers(CtClassType.java:864)&lt;br/&gt;
	at javassist.CtClassType.getDeclaredField2(CtClassType.java:998)&lt;br/&gt;
	at javassist.CtClassType.getField2(CtClassType.java:952)&lt;br/&gt;
	at javassist.CtClassType.getField(CtClassType.java:933)&lt;br/&gt;
	at javassist.CtClass.getField(CtClass.java:824)&lt;br/&gt;
	at javassist.compiler.MemberResolver.lookupFieldByJvmName2(MemberResolver.java:282)&lt;br/&gt;
	at javassist.compiler.TypeChecker.fieldAccess2(TypeChecker.java:913)&lt;br/&gt;
	at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:870)&lt;br/&gt;
	at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:803)&lt;br/&gt;
	at javassist.compiler.TypeChecker.atExpr(TypeChecker.java:578)&lt;br/&gt;
	at javassist.compiler.ast.Expr.accept(Expr.java:68)&lt;br/&gt;
	at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:665)&lt;br/&gt;
	at javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:157)&lt;br/&gt;
	at javassist.compiler.ast.CallExpr.accept(CallExpr.java:46)&lt;br/&gt;
	at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:665)&lt;br/&gt;
	at javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:157)&lt;br/&gt;
	at javassist.compiler.ast.CallExpr.accept(CallExpr.java:46)&lt;br/&gt;
	at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:242)&lt;br/&gt;
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:330)&lt;br/&gt;
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)&lt;br/&gt;
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351)&lt;br/&gt;
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)&lt;br/&gt;
	at javassist.compiler.CodeGen.atIfStmnt(CodeGen.java:398)&lt;br/&gt;
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:355)&lt;br/&gt;
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)&lt;br/&gt;
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351)&lt;br/&gt;
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)&lt;br/&gt;
	at javassist.compiler.CodeGen.atIfStmnt(CodeGen.java:398)&lt;br/&gt;
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:355)&lt;br/&gt;
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)&lt;br/&gt;
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351)&lt;br/&gt;
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50)&lt;br/&gt;
	at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:292)&lt;br/&gt;
	at javassist.compiler.Javac.compileBody(Javac.java:223)&lt;br/&gt;
	at javassist.CtBehavior.setBody(CtBehavior.java:438)&lt;br/&gt;
	at javassist.CtBehavior.setBody(CtBehavior.java:412)&lt;br/&gt;
	at org.opendaylight.yangtools.binding.data.codec.gen.impl.AbstractStreamWriterGenerator$2.customizeClass(AbstractStreamWriterGenerator.java:221)&lt;br/&gt;
	at org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils.instantiatePrototype(JavassistUtils.java:131)&lt;br/&gt;
	... 27 more&lt;/p&gt;

&lt;p&gt;	can somebody tell me why?  It seems like a bug.  How to transform from BA to BI in madsl?&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26997">MDSAL-175</key>
            <summary>How to transform from BA to BI in mdsal?</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <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="filip.gregor@pantheon.tech">Filip Gregor</assignee>
                                    <reporter username="276587401@qq.com">zws_odl</reporter>
                        <labels>
                    </labels>
                <created>Sun, 12 Jun 2016 13:24:39 +0000</created>
                <updated>Fri, 9 Mar 2018 18:00:15 +0000</updated>
                            <resolved>Tue, 21 Jun 2016 02:57:01 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="54346" author="filip.gregor@pantheon.tech" created="Tue, 14 Jun 2016 10:21:33 +0000"  >&lt;p&gt;Hi, i was unable to replicate any errors. Can you please provide me with the whole malfunctioning yang and code.&lt;br/&gt;
Here is my working test &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/40280/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/40280/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="54347" author="filip.gregor@pantheon.tech" created="Mon, 20 Jun 2016 11:18:36 +0000"  >&lt;p&gt;If you still have any questions please write to mdsal mailing list&lt;/p&gt;</comment>
                            <comment id="54348" author="zhuweisheng@huawei.com" created="Tue, 21 Jun 2016 02:57:01 +0000"  >&lt;p&gt;(In reply to Filip Gregor from comment #2)&lt;br/&gt;
&amp;gt; If you still have any questions please write to mdsal mailing list&lt;/p&gt;

&lt;p&gt;no, thank you very much!&lt;/p&gt;</comment>
                    </comments>
                    <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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6052</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=6052]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10341"><![CDATA[Beryllium-3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02wrz:</customfieldvalue>

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