VersionUtilities.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2025 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.utils;
import java.io.InputStream;
import java.util.Properties;
import org.apache.commons.lang.StringUtils;
/**
* VersionUtilities
*
* @author Poli Andrea (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class VersionUtilities {
private static String PROPERTY_FILE_RESOURCE_NAME = "/govwayVersion.properties";
public static void setPROPERTY_FILE_RESOURCE_NAME(String PROPERTY_FILE_RESOURCE_NAME) {
VersionUtilities.PROPERTY_FILE_RESOURCE_NAME = PROPERTY_FILE_RESOURCE_NAME;
}
private static String BUILD_VERSION_PROPERTY = "buildVersion";
public static void setBUILD_VERSION_PROPERTY(String bUILD_VERSION_PROPERTY) {
VersionUtilities.BUILD_VERSION_PROPERTY = bUILD_VERSION_PROPERTY;
}
private static String VERSION_PROPERTY = "version";
public static void setVERSION_PROPERTY(String VERSION_PROPERTY) {
VersionUtilities.VERSION_PROPERTY = VERSION_PROPERTY;
}
private static String INFO_VERSION_PROPERTY = "infoVersion";
public static void setINFO_VERSION_PROPERTY(String INFO_VERSION_PROPERTY) {
VersionUtilities.INFO_VERSION_PROPERTY = INFO_VERSION_PROPERTY;
}
public static String readVersion() throws UtilsException {
return _read(VersionUtilities.VERSION_PROPERTY);
}
public static String readVersion(InputStream is) throws UtilsException {
return _read(is, VersionUtilities.VERSION_PROPERTY);
}
public static String readVersion(Properties p) {
return _read(p, VersionUtilities.VERSION_PROPERTY);
}
public static String readBuildVersion() throws UtilsException {
return _read(VersionUtilities.BUILD_VERSION_PROPERTY);
}
public static String readBuildVersion(InputStream is) throws UtilsException {
return _read(is, VersionUtilities.BUILD_VERSION_PROPERTY);
}
public static String readBuildVersion(Properties p) {
return _read(p, VersionUtilities.BUILD_VERSION_PROPERTY);
}
public static IVersionInfo readInfoVersion() throws UtilsException {
return _instance(_read(VersionUtilities.INFO_VERSION_PROPERTY));
}
public static IVersionInfo readInfoVersion(InputStream is) throws UtilsException {
return _instance(_read(is, VersionUtilities.INFO_VERSION_PROPERTY));
}
public static IVersionInfo readInfoVersion(Properties p) throws UtilsException {
return _instance(_read(p, VersionUtilities.INFO_VERSION_PROPERTY));
}
private static IVersionInfo _instance(String className) throws UtilsException {
if(className!=null && !StringUtils.isEmpty(className)) {
try {
return (IVersionInfo) Utilities.newInstance(className);
}catch(Exception e) {
throw new UtilsException(e.getMessage(), e);
}
}
return null;
}
private static String _read(String propertyName) throws UtilsException {
InputStream is = VersionUtilities.class.getResourceAsStream(VersionUtilities.PROPERTY_FILE_RESOURCE_NAME);
return _read(is, propertyName);
}
private static String _read(InputStream is, String propertyName) throws UtilsException {
try {
if(is!=null) {
Properties p = new Properties();
p.load(is);
return _read(p,propertyName);
}
return null;
}catch(Exception e) {
throw new UtilsException(e.getMessage(),e);
}
}
private static String _read(Properties p, String propertyName) {
String s = p.getProperty(propertyName);
if(s!=null) {
s = s.trim();
}
return s;
}
}