Yair Zaslavsky has uploaded a new change for review.

Change subject: core: Adding Version utils
......................................................................

core: Adding Version utils

Adding a utility class to serve Version issues
both at backend and frontend

Change-Id: Ia82d09e755b767f254224c84abd16516592715ac
Signed-off-by: Yair Zaslavsky <[email protected]>
---
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VersionUtils.java
A 
backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VersionUtilsTest.java
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
3 files changed, 58 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/18370/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VersionUtils.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VersionUtils.java
new file mode 100644
index 0000000..f74d98d
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VersionUtils.java
@@ -0,0 +1,41 @@
+package org.ovirt.engine.core.common.utils;
+
+public class VersionUtils {
+
+    /**
+     * Compares two Rpm releases The format of Rpm is - Prefix-Version-Release.
+     *
+     * @param release1
+     *            release part of first RPM
+     * @param release2
+     *            release part of second RPM
+     * @return same convention as {@link Comparable.compareTo}
+     */
+    public static int compareRpmRelease(String release1, String release2) {
+        String[] comps1 = release1.split("\\.");
+        String[] comps2 = release2.split("\\.");
+        int i = 0;
+        while (i < comps1.length && i < comps2.length && 
comps1[i].equals(comps2[i])) {
+            i++;
+        }
+        if (i == comps1.length && i == comps2.length) {
+            return 0;
+        }
+        else if (i == comps1.length) {
+            return -1;
+        }
+        else if (i == comps2.length) {
+            return 1;
+        }
+        else {
+            try
+            {
+                Long result1 = Long.parseLong(comps1[i]);
+                Long result2 = Long.parseLong(comps2[i]);
+                return result1.compareTo(result2);
+            } catch (NumberFormatException ex) {
+                return comps1[i].compareTo(comps2[i]);
+            }
+        }
+    }
+}
diff --git 
a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VersionUtilsTest.java
 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VersionUtilsTest.java
new file mode 100644
index 0000000..159b859
--- /dev/null
+++ 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VersionUtilsTest.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.core.common.utils;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class VersionUtilsTest {
+
+    @Test
+    public void testCompareRpmRelease() {
+        assertEquals(-1, 
VersionUtils.compareRpmRelease("2.3.10.4.fc18.x86_64", "2.3.10.4.fc19.x86_64"));
+        assertEquals(1, VersionUtils.compareRpmRelease("20130821.fc18.x86_64", 
"20130820.fc18.x86_64"));
+        assertEquals(1, 
VersionUtils.compareRpmRelease("20130821.0.fc18.x86_64", 
"20130820.1.fc18.x86_64"));
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
index ade328e..74c530d 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
@@ -178,6 +178,7 @@
                <include name="common/AuditLogSeverity.java" />
                <include name="common/users/VdcUser.java" />
                <include name="common/utils/EnumUtils.java" />
+               <include name="common/utils/VersionUtils.java" />
                <include name="common/utils/ListUtils.java" />
                <include name="common/utils/ObjectUtils.java" />
                <include name="common/utils/VmDeviceType.java" />


-- 
To view, visit http://gerrit.ovirt.org/18370
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia82d09e755b767f254224c84abd16516592715ac
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to