| // Licensed to the Apache Software Foundation (ASF) under one | |
| // or more contributor license agreements. See the NOTICE file | |
| // distributed with this work for additional information | |
| // regarding copyright ownership. The ASF licenses this file | |
| // to you under the Apache License, Version 2.0 (the | |
| // "License"); you may not use this file except in compliance | |
| // with the License. You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, | |
| // software distributed under the License is distributed on an | |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| // KIND, either express or implied. See the License for the | |
| // specific language governing permissions and limitations | |
| // under the License. | |
| package com.cloud.maint; | |
| public class Version { | |
| /** | |
| * Compares two version strings and see which one is higher version. | |
| * @param ver1 | |
| * @param ver2 | |
| * @return positive if ver1 is higher. negative if ver1 is lower; zero if the same. | |
| */ | |
| public static int compare(String ver1, String ver2) { | |
| String[] tokens1 = ver1.split("[.]"); | |
| String[] tokens2 = ver2.split("[.]"); | |
| // assert(tokens1.length <= tokens2.length); | |
| int compareLength = Math.min(tokens1.length, tokens2.length); | |
| for (int i = 0; i < compareLength; i++) { | |
| long version1 = Long.parseLong(tokens1[i]); | |
| long version2 = Long.parseLong(tokens2[i]); | |
| if (version1 != version2) { | |
| return version1 < version2 ? -1 : 1; | |
| } | |
| } | |
| if (tokens1.length > tokens2.length) { | |
| return 1; | |
| } else if (tokens1.length < tokens2.length) { | |
| return -1; | |
| } | |
| return 0; | |
| } | |
| public static String trimToPatch(String version) { | |
| int index = version.indexOf("-"); | |
| if ( index > 0 ) | |
| version = version.substring(0, index); | |
| String[] tokens = version.split("[.]"); | |
| if ( tokens.length < 3 ) | |
| return "0"; | |
| return tokens[0] + "." + tokens[1]+ "." + tokens[2]; | |
| } | |
| public static void main(String[] args) { | |
| System.out.println("Result is " + compare(args[0], args[1])); | |
| } | |
| } |