Refactor compareDbVersionToMinVersion 05/61905/2
authorVishal Thapar <vishal.thapar@ericsson.com>
Thu, 17 Aug 2017 08:48:57 +0000 (14:18 +0530)
committerAnil Vishnoi <vishnoianil@gmail.com>
Tue, 5 Sep 2017 19:39:10 +0000 (19:39 +0000)
compareDbVersionToMinVersion uses ovsdb.library to
compare versions. This has added unnecessary
dependency in downstream projects. Replace usage of
ovsdb.lbrary.Version with String matching so downstream
projects don't need to add library, which is OVSDB internal
feature, as a dependency.

Change-Id: I8470970b1e7819f543615f97753fa898b3ce8bc5
Signed-off-by: Vishal Thapar <vishal.thapar@ericsson.com>
utils/southbound-utils/pom.xml
utils/southbound-utils/src/main/java/org/opendaylight/ovsdb/utils/southbound/utils/SouthboundUtils.java

index 5488093f5f9c7eb7b310ea6347db0af2d41b19d3..9844955abd4276120be1bd940190c269d90a2654 100644 (file)
@@ -50,11 +50,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>ietf-topology</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.ovsdb</groupId>
-      <artifactId>library</artifactId>
-      <version>${project.version}</version>
-    </dependency>
     <!-- testing dependencies -->
     <dependency>
       <groupId>junit</groupId>
index d2f469d2a70508bc5a8277c8753642b75ba09fec..c93a2df6296dfb21d76a8fa5f7e12994682fb550 100644 (file)
@@ -22,10 +22,11 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
 import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils;
-import org.opendaylight.ovsdb.lib.notation.Version;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
@@ -121,6 +122,10 @@ public class SouthboundUtils {
     // External ID key used for mapping between an OVSDB port and an interface name
     private static final String EXTERNAL_INTERFACE_ID_KEY = "iface-id";
 
+    private static final String FORMAT = "(\\d+)\\.(\\d+)\\.(\\d+)";
+    private static final Pattern PATTERN = Pattern.compile(FORMAT);
+
+
     public SouthboundUtils(MdsalUtils mdsalUtils) {
         this.mdsalUtils = mdsalUtils;
     }
@@ -1221,11 +1226,16 @@ public class SouthboundUtils {
     }
 
     public static boolean compareDbVersionToMinVersion(final String dbVersion, final String minVersion) {
+        final Matcher dbVersionMatcher = PATTERN.matcher(dbVersion);
+        final Matcher minVersionMatcher = PATTERN.matcher(minVersion);
         if (dbVersion != null && !dbVersion.isEmpty() && minVersion != null
                 && !minVersion.isEmpty()) {
-            Version dbVer = Version.fromString(dbVersion);
-            Version minVer = Version.fromString(minVersion);
-            if (dbVer.compareTo(minVer) >= 0) {
+            if ((Integer.valueOf(dbVersionMatcher.group(1)).equals(Integer.valueOf(minVersionMatcher.group(1))) &&
+                    Integer.valueOf(dbVersionMatcher.group(2)).equals(Integer.valueOf(minVersionMatcher.group(2))) &&
+                    Integer.valueOf(dbVersionMatcher.group(3)).equals(Integer.valueOf(minVersionMatcher.group(3)))) ||
+                    Integer.valueOf(dbVersionMatcher.group(1)).intValue() > Integer.valueOf(minVersionMatcher.group(1)).intValue() ||
+                    Integer.valueOf(dbVersionMatcher.group(2)).intValue() >= Integer.valueOf(minVersionMatcher.group(2)).intValue() ||
+                    Integer.valueOf(dbVersionMatcher.group(3)).intValue() >= Integer.valueOf(minVersionMatcher.group(3)).intValue()) {
                 return true;
             }
         }