Skip to content

Commit 3004703

Browse files
committed
apply changes of #470 to oshdb-database-driver
new Dependency hikaricp
1 parent fcb39cd commit 3004703

File tree

4 files changed

+20
-22
lines changed

4 files changed

+20
-22
lines changed

oshdb-helpers/oshdb-database-driver/pom.xml

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<description>TODO</description>
1414

1515
<properties>
16+
<hikaricp.version>5.0.1</hikaricp.version>
1617
</properties>
1718

1819
<dependencies>
@@ -22,6 +23,12 @@
2223
<version>${project.version}</version>
2324
<scope>compile</scope>
2425
</dependency>
26+
<!-- hikari database connection pool -->
27+
<dependency>
28+
<groupId>com.zaxxer</groupId>
29+
<artifactId>HikariCP</artifactId>
30+
<version>${hikaricp.version}</version>
31+
</dependency>
2532
</dependencies>
2633

2734
</project>

oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBConnection.java

+4-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.Properties;
44
import org.heigit.ohsome.oshdb.api.db.OSHDBDatabase;
5-
import org.heigit.ohsome.oshdb.api.db.OSHDBJdbc;
65
import org.heigit.ohsome.oshdb.api.mapreducer.MapReducer;
76
import org.heigit.ohsome.oshdb.api.mapreducer.OSMContributionView;
87
import org.heigit.ohsome.oshdb.api.mapreducer.OSMEntitySnapshotView;
@@ -15,23 +14,21 @@ public class OSHDBConnection {
1514

1615
private final Properties props;
1716
private final OSHDBDatabase oshdb;
18-
private final OSHDBJdbc keytables;
1917
private final TagTranslator tagTranslator;
2018

21-
public OSHDBConnection(Properties props, OSHDBDatabase oshdb, OSHDBJdbc keytables)
19+
public OSHDBConnection(Properties props, OSHDBDatabase oshdb)
2220
throws OSHDBKeytablesNotFoundException {
2321
this.props = props;
2422
this.oshdb = oshdb;
25-
this.keytables = keytables;
26-
this.tagTranslator = new TagTranslator(keytables.getConnection());
23+
this.tagTranslator = oshdb.getTagTranslator();
2724
}
2825

2926
public MapReducer<OSMContribution> getContributionView() {
30-
return OSMContributionView.on(oshdb).keytables(keytables);
27+
return OSMContributionView.on(oshdb);
3128
}
3229

3330
public MapReducer<OSMEntitySnapshot> getSnapshotView() {
34-
return OSMEntitySnapshotView.on(oshdb).keytables(keytables);
31+
return OSMEntitySnapshotView.on(oshdb);
3532
}
3633

3734
public Properties getProps() {
@@ -42,10 +39,6 @@ public OSHDBDatabase getOSHDB() {
4239
return oshdb;
4340
}
4441

45-
public OSHDBJdbc getKeytables() {
46-
return keytables;
47-
}
48-
4942
public TagTranslator getTagTranslator() {
5043
return tagTranslator;
5144
}

oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriver.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import static org.heigit.ohsome.oshdb.helpers.db.Util.getInterpolated;
44

5-
import java.sql.DriverManager;
5+
import com.zaxxer.hikari.HikariDataSource;
66
import java.util.Properties;
77
import org.apache.ignite.Ignite;
88
import org.apache.ignite.Ignition;
99
import org.heigit.ohsome.oshdb.api.db.OSHDBH2;
1010
import org.heigit.ohsome.oshdb.api.db.OSHDBIgnite;
11-
import org.heigit.ohsome.oshdb.api.db.OSHDBJdbc;
1211

1312
/**
1413
* A basic OSHDBDriver class for connecting to h2 or ignite oshdb instances.
@@ -87,14 +86,13 @@ private static int connectToH2(Properties props, Execute connect)
8786
@SuppressWarnings("java:S112")
8887
private static int connectToH2(String h2, String prefix, boolean multithreading,
8988
Execute connect) throws Exception {
90-
try (final var oshdb = new OSHDBH2(h2);
91-
final var keyTables = new OSHDBJdbc(oshdb.getConnection())) {
89+
try (final var oshdb = new OSHDBH2(h2)) {
9290
oshdb.prefix(prefix);
9391
oshdb.multithreading(multithreading);
9492
var props = new Properties();
9593
props.setProperty(OSHDBDriver.OSHDB_PROPERTY_NAME, h2);
9694
props.setProperty(PREFIX_PROPERTY_NAME, prefix);
97-
final var connection = new OSHDBConnection(props, oshdb, keyTables);
95+
final var connection = new OSHDBConnection(props, oshdb);
9896
return connect.apply(connection);
9997
}
10098
}
@@ -107,17 +105,19 @@ private static int connectToIgnite(Properties props, Execute connect)
107105
.filter(value -> value.toLowerCase().startsWith(IGNITE_URI_PREFIX))
108106
.map(value -> value.substring(IGNITE_URI_PREFIX.length()))
109107
.orElseThrow();
108+
// start ignite
110109
try (var ignite = Ignition.start(cfg)) {
111110
var prefix = getInterpolated(props, PREFIX_PROPERTY_NAME).orElseGet(() -> getActive(ignite));
112111
props.put(PREFIX_PROPERTY_NAME, prefix);
113112
var keyTablesUrl = getInterpolated(props, OSHDBDriver.KEYTABLES_PROPERTY_NAME)
114113
.orElseThrow(() -> new IllegalArgumentException("missing keytables"));
115114
props.put(OSHDBDriver.KEYTABLES_PROPERTY_NAME, keyTablesUrl);
116-
try (var ktConnection = DriverManager.getConnection(keyTablesUrl);
117-
var keytables = new OSHDBJdbc(ktConnection);
118-
var oshdb = new OSHDBIgnite(ignite)) {
115+
// initialize data source for keytables
116+
try (var dsKeytables = new HikariDataSource();
117+
var oshdb = new OSHDBIgnite(ignite, dsKeytables)) {
118+
dsKeytables.setJdbcUrl(keyTablesUrl);
119119
oshdb.prefix(prefix);
120-
var connection = new OSHDBConnection(props, oshdb, keytables);
120+
var connection = new OSHDBConnection(props, oshdb);
121121
return connect.apply(connection);
122122
}
123123
}

oshdb-helpers/oshdb-database-driver/src/test/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriverH2Test.java

-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.util.Properties;
88
import org.heigit.ohsome.oshdb.api.db.OSHDBDatabase;
9-
import org.heigit.ohsome.oshdb.api.db.OSHDBJdbc;
109
import org.heigit.ohsome.oshdb.util.tagtranslator.TagTranslator;
1110
import org.junit.jupiter.api.DisplayName;
1211
import org.junit.jupiter.api.Test;
@@ -25,7 +24,6 @@ public OSHDBDriverH2Test() {
2524
private static int testGetters(OSHDBConnection oshdb) {
2625
assertTrue(oshdb.getProps() instanceof Properties);
2726
assertTrue(oshdb.getOSHDB() instanceof OSHDBDatabase);
28-
assertTrue(oshdb.getKeytables() instanceof OSHDBJdbc);
2927
assertTrue(oshdb.getTagTranslator() instanceof TagTranslator);
3028
return 0;
3129
}

0 commit comments

Comments
 (0)