You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
package org.gcube.accounting.analytics.persistence.postgresql;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.DriverManager;
|
|
|
|
import org.gcube.accounting.analytics.persistence.AccountingPersistenceBackendQueryConfiguration;
|
|
import org.gcube.accounting.persistence.AccountingPersistenceConfiguration;
|
|
import org.gcube.documentstore.records.AggregatedRecord;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public class UsageRecordDBInfo {
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(UsageRecordDBInfo.class);
|
|
|
|
public static final String URL_PROPERTY_KEY = AccountingPersistenceConfiguration.URL_PROPERTY_KEY;
|
|
public static final String DB_SUFFIX = "-db";
|
|
public static final String USERNAME_SUFFIX = "-username";
|
|
public static final String PASSWORD_SUFFIX = "-password";
|
|
|
|
private final String baseURL;
|
|
private final String dbName;
|
|
private final String url;
|
|
private final String username;
|
|
private final String password;
|
|
|
|
protected final Class<? extends AggregatedRecord<?, ?>> clz;
|
|
protected final String typeName;
|
|
|
|
public UsageRecordDBInfo(Class<? extends AggregatedRecord<?, ?>> clz, AccountingPersistenceBackendQueryConfiguration configuration) throws Exception {
|
|
this.clz = clz;
|
|
this.typeName = UsageRecordToDBMapping.getRecordToDB(clz).getTypeName();
|
|
|
|
this.baseURL = configuration.getProperty(URL_PROPERTY_KEY);
|
|
this.dbName = configuration.getProperty(typeName+DB_SUFFIX);
|
|
this.url = baseURL + "/" + dbName;
|
|
|
|
this.username = configuration.getProperty(typeName+USERNAME_SUFFIX);
|
|
this.password = configuration.getProperty(typeName+PASSWORD_SUFFIX);
|
|
|
|
}
|
|
|
|
protected Connection getConnection() throws Exception {
|
|
Class.forName("org.postgresql.Driver");
|
|
Connection connection = DriverManager.getConnection(url, username, password);
|
|
logger.trace("Database {} opened successfully", url);
|
|
connection.setAutoCommit(false);
|
|
return connection;
|
|
}
|
|
|
|
}
|