1 /* 2 * Copyright (c) 2007, 2017 Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package org.jemmy; 27 28 import java.io.IOException; 29 import java.io.InputStream; 30 import java.util.Properties; 31 import java.util.StringTokenizer; 32 33 /** 34 * 35 * @author shura 36 */ 37 public class Version { 38 public static final Version VERSION = new Version(); 39 40 private int major; 41 private int minor; 42 private int mini; 43 private String build; 44 45 public Version() { 46 this(Version.class.getPackage().getName()); 47 } 48 49 public Version(String pkg) { 50 try { 51 Properties props = new Properties(); 52 String fileName = pkg.replace(".", "/") + "/jemmy.properties"; 53 InputStream in = getClass().getClassLoader().getResourceAsStream(fileName); 54 if(in == null) { 55 throw new JemmyException("Can not get version - no " + fileName + " file"); 56 } 57 props.load(in); 58 major = Integer.parseInt(props.getProperty("version.major")); 59 minor = Integer.parseInt(props.getProperty("version.minor")); 60 mini = Integer.parseInt(props.getProperty("version.mini")); 61 build = props.getProperty("build"); 62 } catch (IOException ex) { 63 throw new JemmyException("Can not get version.", ex); 64 } 65 } 66 67 public int getMajor() { 68 return major; 69 } 70 71 72 public int getMini() { 73 return mini; 74 } 75 76 public int getMinor() { 77 return minor; 78 } 79 80 public String getVersion() { 81 return major + "." + minor + "." + mini; 82 } 83 84 public String getBuild() { 85 return build; 86 } 87 88 public boolean newer(String old) { 89 StringTokenizer tn = new StringTokenizer(old, "."); 90 if(major >= Integer.parseInt(tn.nextToken())) { 91 if(minor >= Integer.parseInt(tn.nextToken())) { 92 if(mini >= Integer.parseInt(tn.nextToken())) { 93 return true; 94 } 95 } 96 } 97 return false; 98 } 99 100 public static void main(String[] args) { 101 System.out.println("JemmyCore version: " + VERSION.getVersion() + "." + VERSION.build); 102 } 103 }