package mil.nga.giat.geowave.core.cli; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.beust.jcommander.JCommander; public class VersionUtils { private final static Logger LOGGER = LoggerFactory.getLogger(VersionUtils.class); private static final String BUILD_PROPERTIES_FILE_NAME = "build.properties"; private static final String VERSION_PROPERTY_KEY = "project.version"; public static Properties getBuildProperties() { final Properties props = new Properties(); try (InputStream stream = VersionUtils.class.getClassLoader().getResourceAsStream( BUILD_PROPERTIES_FILE_NAME);) { if (stream != null) { props.load(stream); } return props; } catch (final IOException e) { LOGGER.warn( "Cannot read GeoWave build properties to show version information", e); JCommander.getConsole().print( "Cannot read GeoWave build properties to show version information: " + e.getMessage()); } return props; } public static String getVersion() { return getBuildProperties().getProperty( VERSION_PROPERTY_KEY); } public static void printVersionInfo() { final List<String> buildAndPropertyList = Arrays.asList(getBuildProperties().toString().split( ",")); Collections.sort(buildAndPropertyList.subList( 1, buildAndPropertyList.size())); for (String str : buildAndPropertyList) { JCommander.getConsole().println( str); } } }