Skip to content

Commit

Permalink
apply changes of #470 to oshdb-database-driver
Browse files Browse the repository at this point in the history
new Dependency hikaricp
  • Loading branch information
joker234 committed Nov 10, 2022
1 parent 595d141 commit 5773769
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 22 deletions.
7 changes: 7 additions & 0 deletions oshdb-helpers/oshdb-database-driver/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<description>TODO</description>

<properties>
<hikaricp.version>5.0.1</hikaricp.version>
</properties>

<dependencies>
Expand All @@ -22,6 +23,12 @@
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
<!-- hikari database connection pool -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${hikaricp.version}</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.Properties;
import org.heigit.ohsome.oshdb.api.db.OSHDBDatabase;
import org.heigit.ohsome.oshdb.api.db.OSHDBJdbc;
import org.heigit.ohsome.oshdb.api.mapreducer.MapReducer;
import org.heigit.ohsome.oshdb.api.mapreducer.OSMContributionView;
import org.heigit.ohsome.oshdb.api.mapreducer.OSMEntitySnapshotView;
Expand All @@ -15,23 +14,21 @@ public class OSHDBConnection {

private final Properties props;
private final OSHDBDatabase oshdb;
private final OSHDBJdbc keytables;
private final TagTranslator tagTranslator;

public OSHDBConnection(Properties props, OSHDBDatabase oshdb, OSHDBJdbc keytables)
public OSHDBConnection(Properties props, OSHDBDatabase oshdb)
throws OSHDBKeytablesNotFoundException {
this.props = props;
this.oshdb = oshdb;
this.keytables = keytables;
this.tagTranslator = new TagTranslator(keytables.getConnection());
this.tagTranslator = oshdb.getTagTranslator();
}

public MapReducer<OSMContribution> getContributionView() {
return OSMContributionView.on(oshdb).keytables(keytables);
return OSMContributionView.on(oshdb);
}

public MapReducer<OSMEntitySnapshot> getSnapshotView() {
return OSMEntitySnapshotView.on(oshdb).keytables(keytables);
return OSMEntitySnapshotView.on(oshdb);
}

public Properties getProps() {
Expand All @@ -42,10 +39,6 @@ public OSHDBDatabase getOSHDB() {
return oshdb;
}

public OSHDBJdbc getKeytables() {
return keytables;
}

public TagTranslator getTagTranslator() {
return tagTranslator;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

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

import java.sql.DriverManager;
import com.zaxxer.hikari.HikariDataSource;
import java.util.Properties;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.heigit.ohsome.oshdb.api.db.OSHDBH2;
import org.heigit.ohsome.oshdb.api.db.OSHDBIgnite;
import org.heigit.ohsome.oshdb.api.db.OSHDBJdbc;

/**
* A basic OSHDBDriver class for connecting to h2 or ignite oshdb instances.
Expand Down Expand Up @@ -87,14 +86,13 @@ private static int connectToH2(Properties props, Execute connect)
@SuppressWarnings("java:S112")
private static int connectToH2(String h2, String prefix, boolean multithreading,
Execute connect) throws Exception {
try (final var oshdb = new OSHDBH2(h2);
final var keyTables = new OSHDBJdbc(oshdb.getConnection())) {
try (final var oshdb = new OSHDBH2(h2)) {
oshdb.prefix(prefix);
oshdb.multithreading(multithreading);
var props = new Properties();
props.setProperty(OSHDBDriver.OSHDB_PROPERTY_NAME, h2);
props.setProperty(PREFIX_PROPERTY_NAME, prefix);
final var connection = new OSHDBConnection(props, oshdb, keyTables);
final var connection = new OSHDBConnection(props, oshdb);
return connect.apply(connection);
}
}
Expand All @@ -107,17 +105,19 @@ private static int connectToIgnite(Properties props, Execute connect)
.filter(value -> value.toLowerCase().startsWith(IGNITE_URI_PREFIX))
.map(value -> value.substring(IGNITE_URI_PREFIX.length()))
.orElseThrow();
// start ignite
try (var ignite = Ignition.start(cfg)) {
var prefix = getInterpolated(props, PREFIX_PROPERTY_NAME).orElseGet(() -> getActive(ignite));
props.put(PREFIX_PROPERTY_NAME, prefix);
var keyTablesUrl = getInterpolated(props, OSHDBDriver.KEYTABLES_PROPERTY_NAME)
.orElseThrow(() -> new IllegalArgumentException("missing keytables"));
props.put(OSHDBDriver.KEYTABLES_PROPERTY_NAME, keyTablesUrl);
try (var ktConnection = DriverManager.getConnection(keyTablesUrl);
var keytables = new OSHDBJdbc(ktConnection);
var oshdb = new OSHDBIgnite(ignite)) {
// initialize data source for keytables
try (var dsKeytables = new HikariDataSource();
var oshdb = new OSHDBIgnite(ignite, dsKeytables)) {
dsKeytables.setJdbcUrl(keyTablesUrl);
oshdb.prefix(prefix);
var connection = new OSHDBConnection(props, oshdb, keytables);
var connection = new OSHDBConnection(props, oshdb);
return connect.apply(connection);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import java.util.Properties;
import org.heigit.ohsome.oshdb.api.db.OSHDBDatabase;
import org.heigit.ohsome.oshdb.api.db.OSHDBJdbc;
import org.heigit.ohsome.oshdb.util.tagtranslator.TagTranslator;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand All @@ -25,7 +24,6 @@ public OSHDBDriverH2Test() {
private static int testGetters(OSHDBConnection oshdb) {
assertTrue(oshdb.getProps() instanceof Properties);
assertTrue(oshdb.getOSHDB() instanceof OSHDBDatabase);
assertTrue(oshdb.getKeytables() instanceof OSHDBJdbc);
assertTrue(oshdb.getTagTranslator() instanceof TagTranslator);
return 0;
}
Expand Down

0 comments on commit 5773769

Please sign in to comment.