in src/main/java/org/apache/fineract/cn/postgresql/domain/ContextAwareRoutingDataSource.java [100:120]
private void readAdditionalTenantInformation(final Tenant tenant) {
this.logger.info("Reading additional information for {}.", tenant.getIdentifier());
@SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"})
final String query = "SELECT driver_class, database_name, host, port, a_user, pwd FROM tenants WHERE identifier = ?";
try (final Connection connection = this.metaDataSource.getConnection()) {
try (final PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setString(1, tenant.getIdentifier());
final ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
tenant.setDriverClass(resultSet.getString("driver_class"));
tenant.setDatabaseName(resultSet.getString("database_name"));
tenant.setHost(resultSet.getString("host"));
tenant.setPort(resultSet.getString("port"));
tenant.setUser(resultSet.getString("a_user"));
tenant.setPassword(resultSet.getString("pwd"));
}
}
} catch (SQLException ex) {
throw new IllegalArgumentException("Could not fetch information for tenant '" + tenant.getIdentifier() + "'", ex);
}
}