Uploaded image for project: 'genius'
  1. genius
  2. GENIUS-280

Centralize node identifier parsing

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • mdsalutils
    • None

      There are currently 14 places which are splitting a String on ':' and do something with it – usually extracting DPN/DPID. All of this is done though String.split(), which is massively inefficient:

      ./itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java:                String[] nodeId = node.getId().getValue().split(":");
      ./itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java:        String[] params = entityId.split(":");
      ./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/listeners/FlowBasedServicesNodeStateListener.java:        final String[] node =  id.getId().getValue().split(":");
      ./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java:        String dpId = nodeId.getValue().split(":")[1];
      ./interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java:            String dpId = nodeId.getValue().split(":")[1];
      ./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/PacketInCounterHandler.java:        String[] nodeNo = id.split(":");
      ./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/PacketInCounterHandler.java:            dpnId = dpnId.split(":")[1];
      ./fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/genius/fcapsapp/performancecounter/FlowNodeConnectorInventoryTranslatorImpl.java:        String[] switchId = node.split(":");
      ./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/VniUtilsImpl.java:            String[] configureVniRangeSplit = configureVniRange.split(":");
      ./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java:        String[] configureRDSplit = NwConstants.RD_DEFAULT_LOW_VALUE.split(":");
      ./networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java:            configureRDSplit = configuredRDStartValue.split(":");
      ./alivenessmonitor/alivenessmonitor-impl-protocols/src/main/java/org/opendaylight/genius/alivenessmonitor/protocols/internal/AbstractAlivenessProtocolHandler.java:        String[] addressPart = macAddress.split(":");
      ./ipv6util/api/src/main/java/org/opendaylight/genius/ipv6util/api/Ipv6Util.java:        String[] octets = target.split(":");
      ./mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java:        String[] split = dpnString.split(":");
      

      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.

            apurba Apurba Mukherjee
            rovarga Robert Varga
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: