in core/src/main/java/org/apache/calcite/avatica/DriverVersion.java [87:145]
public static DriverVersion load(
Class<? extends UnregisteredDriver> driverClass,
String resourceName,
String driverName,
String driverVersion,
String productName,
String productVersion) {
boolean jdbcCompliant = true;
int majorVersion = 0;
int minorVersion = 0;
int databaseMajorVersion = 0;
int databaseMinorVersion = 0;
try (InputStream inStream =
driverClass.getClassLoader().getResourceAsStream(resourceName)) {
if (inStream != null) {
final Properties properties = new Properties();
properties.load(inStream);
driverName = properties.getProperty("driver.name");
driverVersion = properties.getProperty("driver.version");
productName = properties.getProperty("product.name");
productVersion = properties.getProperty("product.version");
jdbcCompliant =
Boolean.valueOf(properties.getProperty("jdbc.compliant"));
String[] s = driverVersion.replaceAll("-.*$", "").split("\\.");
final int major = Integer.parseInt(s[0]);
final int minor = Integer.parseInt(s[1]);
try {
majorVersion =
Integer.parseInt(properties.getProperty("driver.version.major"));
} catch (NumberFormatException e) {
majorVersion = major;
}
try {
minorVersion =
Integer.parseInt(properties.getProperty("driver.version.minor"));
} catch (NumberFormatException e) {
minorVersion = minor;
}
try {
databaseMajorVersion =
Integer.parseInt(properties.getProperty("database.version.major"));
} catch (NumberFormatException e) {
databaseMajorVersion = major;
}
try {
databaseMinorVersion =
Integer.parseInt(properties.getProperty("database.version.minor"));
} catch (NumberFormatException e) {
databaseMinorVersion = minor;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return new DriverVersion(
driverName, driverVersion, productName, productVersion,
jdbcCompliant, majorVersion, minorVersion, databaseMajorVersion,
databaseMinorVersion);
}