Removed static usage
This commit is contained in:
parent
2d9eb7986f
commit
265d1ca1d6
|
@ -2,14 +2,21 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||||
|
|
||||||
# Changelog for Accounting Analytics Backend Connector for PostgreSQL
|
# Changelog for Accounting Analytics Backend Connector for PostgreSQL
|
||||||
|
|
||||||
|
## [v2.0.1-SNAPSHOT]
|
||||||
|
|
||||||
|
- Enhanced accounting-postgresql-utilities range
|
||||||
|
|
||||||
|
|
||||||
## [v2.0.0]
|
## [v2.0.0]
|
||||||
|
|
||||||
- Added possibility of having multiple values for the same key which will be used in OR [#21353]
|
- Added possibility of having multiple values for the same key which will be used in OR [#21353]
|
||||||
|
|
||||||
|
|
||||||
## [v1.0.1]
|
## [v1.0.1]
|
||||||
|
|
||||||
- Fixed bug on query
|
- Fixed bug on query
|
||||||
|
|
||||||
|
|
||||||
## [v1.0.0] [r5.2.0] - 2021-05-04
|
## [v1.0.0] [r5.2.0] - 2021-05-04
|
||||||
|
|
||||||
- First Release
|
- First Release
|
||||||
|
|
6
pom.xml
6
pom.xml
|
@ -9,7 +9,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>org.gcube.accounting</groupId>
|
<groupId>org.gcube.accounting</groupId>
|
||||||
<artifactId>accounting-analytics-persistence-postgresql</artifactId>
|
<artifactId>accounting-analytics-persistence-postgresql</artifactId>
|
||||||
<version>2.0.0</version>
|
<version>2.0.1-SNAPSHOT</version>
|
||||||
<name>Accounting Analytics Backend Connector for PostgreSQL</name>
|
<name>Accounting Analytics Backend Connector for PostgreSQL</name>
|
||||||
<description>Accounting Analytics Backend Connector for PostgreSQL</description>
|
<description>Accounting Analytics Backend Connector for PostgreSQL</description>
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.accounting</groupId>
|
<groupId>org.gcube.accounting</groupId>
|
||||||
<artifactId>accounting-postgresql-utilities</artifactId>
|
<artifactId>accounting-postgresql-utilities</artifactId>
|
||||||
<version>[1.0.0, 2.0.0-SNAPSHOT)</version>
|
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
|
@ -88,4 +88,4 @@
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -62,9 +62,40 @@ public class AccountingPersistenceQueryPostgreSQL implements AccountingPersisten
|
||||||
protected Set<String> contexts;
|
protected Set<String> contexts;
|
||||||
protected Collection<Filter> filters;
|
protected Collection<Filter> filters;
|
||||||
|
|
||||||
|
protected RecordToDBMapping recordToDBMapping;
|
||||||
|
|
||||||
|
static {
|
||||||
|
// One Record per package is enough
|
||||||
|
RecordUtility.addRecordPackage(ServiceUsageRecord.class.getPackage());
|
||||||
|
RecordUtility.addRecordPackage(AggregatedServiceUsageRecord.class.getPackage());
|
||||||
|
}
|
||||||
|
|
||||||
public AccountingPersistenceQueryPostgreSQL() {
|
public AccountingPersistenceQueryPostgreSQL() {
|
||||||
objectMapper = new ObjectMapper();
|
this.objectMapper = new ObjectMapper();
|
||||||
|
this.recordToDBMapping = new RecordToDBMapping();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void prepareConnection(AccountingPersistenceBackendQueryConfiguration configuration) throws Exception {
|
||||||
|
this.configuration = configuration;
|
||||||
|
Map<String, Class<? extends AggregatedRecord<?,?>>> aggregatedRecords = RecordUtility.getAggregatedRecordClassesFound();
|
||||||
|
for(String typeName : aggregatedRecords.keySet()) {
|
||||||
|
try {
|
||||||
|
Class<? extends AggregatedRecord<?,?>> clz = aggregatedRecords.get(typeName);
|
||||||
|
recordToDBMapping.addRecordToDB(clz, configuration);
|
||||||
|
} catch (Exception e) {
|
||||||
|
new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Connection getConnection(Class<? extends AggregatedRecord<?, ?>> clz) throws Exception {
|
||||||
|
RecordToDBConnection recordDBConnection = recordToDBMapping.getRecordDBInfo(clz);
|
||||||
|
if(recordDBConnection == null) {
|
||||||
|
recordToDBMapping.addRecordToDB(clz, configuration);
|
||||||
|
recordDBConnection = recordToDBMapping.getRecordDBInfo(clz);
|
||||||
|
}
|
||||||
|
return recordDBConnection.getConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -88,35 +119,10 @@ public class AccountingPersistenceQueryPostgreSQL implements AccountingPersisten
|
||||||
this.filters = (Collection<Filter>) filters;
|
this.filters = (Collection<Filter>) filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
public RecordToDBMapping getRecordToDBMapping() {
|
||||||
// One Record per package is enough
|
return recordToDBMapping;
|
||||||
RecordUtility.addRecordPackage(ServiceUsageRecord.class.getPackage());
|
|
||||||
RecordUtility.addRecordPackage(AggregatedServiceUsageRecord.class.getPackage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Connection getConnection(Class<? extends AggregatedRecord<?, ?>> clz) throws Exception {
|
|
||||||
RecordToDBConnection recordDBInfo = RecordToDBMapping.getRecordDBInfo(clz);
|
|
||||||
if(recordDBInfo == null) {
|
|
||||||
RecordToDBMapping.addRecordToDB(clz, configuration);
|
|
||||||
recordDBInfo = RecordToDBMapping.getRecordDBInfo(clz);
|
|
||||||
}
|
|
||||||
return recordDBInfo.getConnection();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void prepareConnection(AccountingPersistenceBackendQueryConfiguration configuration) throws Exception {
|
|
||||||
this.configuration = configuration;
|
|
||||||
Map<String, Class<? extends AggregatedRecord<?,?>>> aggregatedRecords = RecordUtility.getAggregatedRecordClassesFound();
|
|
||||||
for(String typeName : aggregatedRecords.keySet()) {
|
|
||||||
try {
|
|
||||||
Class<? extends AggregatedRecord<?,?>> clz = aggregatedRecords.get(typeName);
|
|
||||||
RecordToDBMapping.addRecordToDB(clz, configuration);
|
|
||||||
} catch (Exception e) {
|
|
||||||
new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void addProperty(ObjectNode objectNode, String key, Object value) {
|
protected void addProperty(ObjectNode objectNode, String key, Object value) {
|
||||||
if(value instanceof Number) {
|
if(value instanceof Number) {
|
||||||
|
|
||||||
|
@ -149,7 +155,7 @@ public class AccountingPersistenceQueryPostgreSQL implements AccountingPersisten
|
||||||
String sql = query.getTimeSeriesQuery();
|
String sql = query.getTimeSeriesQuery();
|
||||||
|
|
||||||
Set<String> requestedTableField = query.getRequestedTableField();
|
Set<String> requestedTableField = query.getRequestedTableField();
|
||||||
RecordToDBFields recordToDBMapper = query.getRecordToDBMapper();
|
RecordToDBFields recordToDBMapper = query.getRecordToDBFields();
|
||||||
|
|
||||||
logger.trace("Going to request the following query: {}", sql);
|
logger.trace("Going to request the following query: {}", sql);
|
||||||
ResultSet resultSet = statement.executeQuery(sql);
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
@ -232,15 +238,15 @@ public class AccountingPersistenceQueryPostgreSQL implements AccountingPersisten
|
||||||
String sql = query.getNextPossibleValueQuery();
|
String sql = query.getNextPossibleValueQuery();
|
||||||
|
|
||||||
// List<String> requestedTableField = query.getRequestedTableField();
|
// List<String> requestedTableField = query.getRequestedTableField();
|
||||||
RecordToDBFields recordToDBMapper = query.getRecordToDBMapper();
|
RecordToDBFields recordToDBFields = query.getRecordToDBFields();
|
||||||
|
|
||||||
logger.trace("Going to request the following query: {}", sql);
|
logger.trace("Going to request the following query: {}", sql);
|
||||||
ResultSet resultSet = statement.executeQuery(sql);
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
|
|
||||||
String tableFieldORderingProperty = recordToDBMapper.getTableField(orderingProperty);
|
String tableFieldORderingProperty = recordToDBFields.getTableField(orderingProperty);
|
||||||
|
|
||||||
while (resultSet.next()) {
|
while (resultSet.next()) {
|
||||||
String tableFieldKey = recordToDBMapper.getTableField(key);
|
String tableFieldKey = recordToDBFields.getTableField(key);
|
||||||
Object value = resultSet.getObject(tableFieldKey);
|
Object value = resultSet.getObject(tableFieldKey);
|
||||||
|
|
||||||
Object numberObject = resultSet.getObject(tableFieldORderingProperty);
|
Object numberObject = resultSet.getObject(tableFieldORderingProperty);
|
||||||
|
@ -293,7 +299,7 @@ public class AccountingPersistenceQueryPostgreSQL implements AccountingPersisten
|
||||||
query.setRecordId(recordId);
|
query.setRecordId(recordId);
|
||||||
String sql = query.getRecordQuery();
|
String sql = query.getRecordQuery();
|
||||||
|
|
||||||
RecordToDBFields recordToDBMapper = query.getRecordToDBMapper();
|
RecordToDBFields recordToDBFields = query.getRecordToDBFields();
|
||||||
|
|
||||||
ResultSet resultSet = statement.executeQuery(sql);
|
ResultSet resultSet = statement.executeQuery(sql);
|
||||||
resultSet.next();
|
resultSet.next();
|
||||||
|
@ -302,7 +308,7 @@ public class AccountingPersistenceQueryPostgreSQL implements AccountingPersisten
|
||||||
Set<String> requiredFields = instance.getRequiredFields();
|
Set<String> requiredFields = instance.getRequiredFields();
|
||||||
|
|
||||||
for(String recordField : requiredFields) {
|
for(String recordField : requiredFields) {
|
||||||
String tableField = recordToDBMapper.getTableField(recordField);
|
String tableField = recordToDBFields.getTableField(recordField);
|
||||||
Serializable serializable;
|
Serializable serializable;
|
||||||
switch (recordField) {
|
switch (recordField) {
|
||||||
case AggregatedRecord.START_TIME: case AggregatedRecord.END_TIME: case AggregatedRecord.CREATION_TIME:
|
case AggregatedRecord.START_TIME: case AggregatedRecord.END_TIME: case AggregatedRecord.CREATION_TIME:
|
||||||
|
|
|
@ -45,6 +45,7 @@ public class Query extends PostgreSQLQuery {
|
||||||
private String recordId;
|
private String recordId;
|
||||||
|
|
||||||
public Query(Class<? extends AggregatedRecord<?, ?>> clz) throws Exception {
|
public Query(Class<? extends AggregatedRecord<?, ?>> clz) throws Exception {
|
||||||
|
super();
|
||||||
this.clz = clz;
|
this.clz = clz;
|
||||||
this.recordToDBFields = RecordToDBMapping.getRecordToDBFields(clz);
|
this.recordToDBFields = RecordToDBMapping.getRecordToDBFields(clz);
|
||||||
}
|
}
|
||||||
|
@ -100,7 +101,7 @@ public class Query extends PostgreSQLQuery {
|
||||||
this.recordId = recordId;
|
this.recordId = recordId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RecordToDBFields getRecordToDBMapper() {
|
public RecordToDBFields getRecordToDBFields() {
|
||||||
return recordToDBFields;
|
return recordToDBFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue