private void readAdditionalTenantInformation()

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);
    }
  }