Copyright (C) 2009-2013 Barchart, Inc.
All rights reserved. Licensed under the OSI BSD License.
http://www.opensource.org/licenses/bsd-license.php
/**
* Copyright (C) 2009-2013 Barchart, Inc. <http://www.barchart.com/>
*
* All rights reserved. Licensed under the OSI BSD License.
*
* http://www.opensource.org/licenses/bsd-license.php
*/
package com.barchart.udt.lib;
import java.io.InputStream;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Publish library version information
/**
* Publish library version information
*/
public class VersionUDT {
protected static final Logger log = LoggerFactory
.getLogger(VersionUDT.class);
//
protected static final String PROP_JAVA_VENDOR = "java.vendor";
protected static final String PROP_JAVA_VERSION = "java.version";
protected static final String PROP_JAVA_VM_NAME = "java.vm.name";
public static final String JAVA_VENDOR = System
.getProperty(PROP_JAVA_VENDOR);
public static final String JAVA_VERSION = System
.getProperty(PROP_JAVA_VERSION);
public static final String JAVA_VM_NAME = System
.getProperty(PROP_JAVA_VM_NAME);
//
protected static final String PROP_OS_NAME = "os.name";
protected static final String PROP_OS_ARCH = "os.arch";
protected static final String PROP_OS_VERSION = "os.version";
public static final String OS_NAME = System.getProperty(PROP_OS_NAME);
public static final String OS_ARCH = System.getProperty(PROP_OS_ARCH);
public static final String OS_VERSION = System.getProperty(PROP_OS_VERSION);
//
protected static final String PROP_FILE = "version.properties";
protected static final String PROP_UDT_VERSION = "udt.version";
protected static final String PROP_BARCHART_NAME = "barchart.name";
protected static final String PROP_BARCHART_GROUP = "barchart.groupId";
protected static final String PROP_BARCHART_ARTIFACT = "barchart.artifactId";
protected static final String PROP_BARCHART_VERSION = "barchart.version";
protected static final String PROP_BARCHART_TIMESTAMP = "barchart.timestamp";
public static final String UDT_VERSION;
public static final String BARCHART_NAME;
public static final String BARCHART_GROUP;
public static final String BARCHART_ARTIFACT;
public static final String BARCHART_VERSION;
public static final String BARCHART_TIMESTAMP;
static final String UNKNOWN = "UNKNOWN";
static {
String udtVersion = UNKNOWN;
String name = UNKNOWN;
String group = UNKNOWN;
String artifact = UNKNOWN;
String version = UNKNOWN;
String timestamp = UNKNOWN;
try {
final Properties props = new Properties();
final InputStream stream = VersionUDT.class.getClassLoader()
.getResourceAsStream(PROP_FILE);
props.load(stream);
udtVersion = props.getProperty(PROP_UDT_VERSION);
name = props.getProperty(PROP_BARCHART_NAME);
group = props.getProperty(PROP_BARCHART_GROUP);
artifact = props.getProperty(PROP_BARCHART_ARTIFACT);
version = props.getProperty(PROP_BARCHART_VERSION);
timestamp = props.getProperty(PROP_BARCHART_TIMESTAMP);
} catch (final Exception e) {
log.error("failed to load version properties", e);
}
UDT_VERSION = udtVersion;
BARCHART_NAME = barchartName(name);
BARCHART_GROUP = group;
BARCHART_ARTIFACT = artifact;
BARCHART_VERSION = version;
BARCHART_TIMESTAMP = timestamp;
}
private static final String SNAPSHOT = "-SNAPSHOT";
FIXME needs build system change
current contract is to depend on NAR snapshot
/**
* FIXME needs build system change
* <p>
* current contract is to depend on NAR snapshot
*/
protected static String barchartName(final String name) {
if (name.contains(SNAPSHOT)) {
return name;
} else {
return name + SNAPSHOT;
}
}
protected static void append(final StringBuilder text, final String EOL) {
text.append(PROP_BARCHART_NAME);
text.append(" = ");
text.append(BARCHART_NAME);
text.append(EOL);
text.append(PROP_BARCHART_GROUP);
text.append(" = ");
text.append(BARCHART_GROUP);
text.append(EOL);
text.append(PROP_BARCHART_ARTIFACT);
text.append(" = ");
text.append(BARCHART_ARTIFACT);
text.append(EOL);
text.append(PROP_BARCHART_VERSION);
text.append(" = ");
text.append(BARCHART_VERSION);
text.append(EOL);
text.append(PROP_BARCHART_TIMESTAMP);
text.append(" = ");
text.append(BARCHART_TIMESTAMP);
text.append(EOL);
text.append(PROP_JAVA_VENDOR);
text.append(" = ");
text.append(JAVA_VENDOR);
text.append(EOL);
text.append(PROP_JAVA_VERSION);
text.append(" = ");
text.append(JAVA_VERSION);
text.append(EOL);
text.append(PROP_JAVA_VM_NAME);
text.append(" = ");
text.append(JAVA_VM_NAME);
text.append(EOL);
text.append(PROP_OS_NAME);
text.append(" = ");
text.append(OS_NAME);
text.append(EOL);
text.append(PROP_OS_ARCH);
text.append(" = ");
text.append(OS_ARCH);
text.append(EOL);
text.append(PROP_OS_VERSION);
text.append(" = ");
text.append(OS_VERSION);
text.append(EOL);
}
public static final void log() {
log.info("\n{}", asText());
}
public static final String asText() {
final StringBuilder text = new StringBuilder(128);
text.append("\n");
text.append("#######################################");
text.append("\n");
append(text, "\n");
text.append("#######################################");
text.append("\n");
text.append("\n");
return text.toString();
}
public static final String asHtml() {
final StringBuilder text = new StringBuilder(128);
text.append("<html><pre>");
append(text, "<br>");
text.append("</pre></html>");
return text.toString();
}
}