blob: 155042b7d951677271247e28ed777c84186cb709 [file] [log] [blame]
package brooklyn;
import static com.google.common.base.Preconditions.checkNotNull;
import java.io.IOException;
import static java.lang.String.format;
import java.util.Properties;
public class BrooklynVersion {
private static final String VERSION_RESOURCE_FILE = "META-INF/maven/io.brooklyn/brooklyn-core/pom.properties";
private static final String VERSION_PROPERTY_NAME = "version";
private static final BrooklynVersion INSTANCE = new BrooklynVersion();
private final String version;
public BrooklynVersion() {
this.version = readVersionPropertyFromClasspath(BrooklynVersion.class.getClassLoader());
}
private String readVersionPropertyFromClasspath(ClassLoader resourceLoader) {
Properties versionProperties = new Properties();
try {
versionProperties.load(checkNotNull(resourceLoader.getResourceAsStream(VERSION_RESOURCE_FILE), VERSION_RESOURCE_FILE));
} catch (IOException exception) {
throw new IllegalStateException(format("Unable to load version resource file '%s'", VERSION_RESOURCE_FILE), exception);
}
return checkNotNull(versionProperties.getProperty(VERSION_PROPERTY_NAME), VERSION_PROPERTY_NAME);
}
public static String get() {
return INSTANCE.version;
}
}