package net.sf.openrocket.util; import java.io.IOException; import java.io.InputStream; import java.util.MissingResourceException; import java.util.Properties; public class BuildProperties { private static final Properties PROPERTIES; private static final String BUILD_VERSION; private static final String BUILD_SOURCE; private static final boolean DEFAULT_CHECK_UPDATES; /** * Return the OpenRocket version number. */ public static String getVersion() { return BUILD_VERSION; } /** * Return the OpenRocket build source (e.g. "default" or "Debian") */ public static String getBuildSource() { return BUILD_SOURCE; } public static boolean getDefaultCheckUpdates() { return DEFAULT_CHECK_UPDATES; } static { try { InputStream is = BuildProperties.class.getClassLoader().getResourceAsStream("build.properties"); if (is == null) { throw new MissingResourceException( "build.properties not found, distribution built wrong" + " classpath:" + System.getProperty("java.class.path"), "build.properties", "build.version"); } PROPERTIES = new Properties(); PROPERTIES.load(is); is.close(); String version = PROPERTIES.getProperty("build.version"); if (version == null) { throw new MissingResourceException( "build.version not found in property file", "build.properties", "build.version"); } BUILD_VERSION = version.trim(); BUILD_SOURCE = PROPERTIES.getProperty("build.source"); if (BUILD_SOURCE == null) { throw new MissingResourceException( "build.source not found in property file", "build.properties", "build.source"); } String value = PROPERTIES.getProperty("build.checkupdates"); if (value != null) DEFAULT_CHECK_UPDATES = Boolean.parseBoolean(value); else DEFAULT_CHECK_UPDATES = true; } catch (IOException e) { throw new MissingResourceException( "Error reading build.properties", "build.properties", "build.version"); } } }