<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:00:21 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>[GENIUS-280] Centralize node identifier parsing</title>
                <link>https://jira.opendaylight.org/browse/GENIUS-280</link>
                <project id="10126" key="GENIUS">genius</project>
                    <description>&lt;p&gt;There are currently 14 places which are splitting a String on &apos;:&apos; and do something with it &#8211; usually extracting DPN/DPID. All of this is done though String.split(), which is massively inefficient:&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;./itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java:                String[] nodeId = node.getId().getValue().split(&quot;:&quot;);
./itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java:        String[] params = entityId.split(&quot;:&quot;);
./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/listeners/FlowBasedServicesNodeStateListener.java:        final String[] node =  id.getId().getValue().split(&quot;:&quot;);
./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java:        String dpId = nodeId.getValue().split(&quot;:&quot;)[1];
./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java:            String dpId = nodeId.getValue().split(&quot;:&quot;)[1];
./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/PacketInCounterHandler.java:        String[] nodeNo = id.split(&quot;:&quot;);
./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/PacketInCounterHandler.java:            dpnId = dpnId.split(&quot;:&quot;)[1];
./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/FlowNodeConnectorInventoryTranslatorImpl.java:        String[] switchId = node.split(&quot;:&quot;);
./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/VniUtilsImpl.java:            String[] configureVniRangeSplit = configureVniRange.split(&quot;:&quot;);
./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java:        String[] configureRDSplit = NwConstants.RD_DEFAULT_LOW_VALUE.split(&quot;:&quot;);
./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java:            configureRDSplit = configuredRDStartValue.split(&quot;:&quot;);
./alivenessmonitor/alivenessmonitor-impl-protocols/src/main/java/org/opendaylight/genius/alivenessmonitor/protocols/internal/AbstractAlivenessProtocolHandler.java:        String[] addressPart = macAddress.split(&quot;:&quot;);
./ipv6util/api/src/main/java/org/opendaylight/genius/ipv6util/api/Ipv6Util.java:        String[] octets = target.split(&quot;:&quot;);
./mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java:        String[] split = dpnString.split(&quot;:&quot;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Provide an explicitly-documented utility which will perform a split-and-parse operation, in the most efficient manner possible and migrate all appropriate callsites to use it.&lt;/p&gt;</description>
                <environment></environment>
        <key id="32033">GENIUS-280</key>
            <summary>Centralize node identifier parsing</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="10001" iconUrl="https://jira.opendaylight.org/" description="">In Review</status>
                    <statusCategory id="4" key="indeterminate" colorName="yellow"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="apurba">Apurba Mukherjee</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Fri, 11 Oct 2019 16:56:57 +0000</created>
                <updated>Tue, 22 Sep 2020 05:17:35 +0000</updated>
                                                                            <component>mdsalutils</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="67289" author="rovarga" created="Fri, 11 Oct 2019 16:58:15 +0000"  >&lt;p&gt;The splitter implementations should work on String.indexOf(&apos;:&apos;)&#160; &#8211; note char! &#8211; and then issuing a String.subString(offset + 1), so that we do not instantiate unnecesary objects.&lt;/p&gt;</comment>
                            <comment id="68637" author="apurba" created="Tue, 22 Sep 2020 05:15:28 +0000"  >&lt;p&gt;Pushed a patch for this. I have done a basic comparison testing. For a dummy string (&lt;font color=&quot;#6a8759&quot;&gt;openflow:12345678:37:compute:9876540:78:node:564789:21) String.split(&quot;:&quot;) takes 12 to 17 ms while the new API takes max 1 ms.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/c/genius/+/92429&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/genius/+/92429&lt;/a&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="32034">MDSAL-486</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|i03pcv:</customfieldvalue>

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