From 5773769935d1562d2c47a8ef1ac950753b5f1196 Mon Sep 17 00:00:00 2001 From: Johannes Visintini Date: Thu, 10 Nov 2022 13:23:36 +0100 Subject: [PATCH] apply changes of #470 to oshdb-database-driver new Dependency hikaricp --- oshdb-helpers/oshdb-database-driver/pom.xml | 7 +++++++ .../oshdb/helpers/db/OSHDBConnection.java | 15 ++++----------- .../ohsome/oshdb/helpers/db/OSHDBDriver.java | 18 +++++++++--------- .../oshdb/helpers/db/OSHDBDriverH2Test.java | 2 -- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/oshdb-helpers/oshdb-database-driver/pom.xml b/oshdb-helpers/oshdb-database-driver/pom.xml index bbbd34a00..bd1664f62 100644 --- a/oshdb-helpers/oshdb-database-driver/pom.xml +++ b/oshdb-helpers/oshdb-database-driver/pom.xml @@ -13,6 +13,7 @@ TODO + 5.0.1 @@ -22,6 +23,12 @@ ${project.version} compile + + + com.zaxxer + HikariCP + ${hikaricp.version} + diff --git a/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBConnection.java b/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBConnection.java index ff984595e..02cbdeea1 100644 --- a/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBConnection.java +++ b/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBConnection.java @@ -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; @@ -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 getContributionView() { - return OSMContributionView.on(oshdb).keytables(keytables); + return OSMContributionView.on(oshdb); } public MapReducer getSnapshotView() { - return OSMEntitySnapshotView.on(oshdb).keytables(keytables); + return OSMEntitySnapshotView.on(oshdb); } public Properties getProps() { @@ -42,10 +39,6 @@ public OSHDBDatabase getOSHDB() { return oshdb; } - public OSHDBJdbc getKeytables() { - return keytables; - } - public TagTranslator getTagTranslator() { return tagTranslator; } diff --git a/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriver.java b/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriver.java index 23d26a122..cb03ad02a 100644 --- a/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriver.java +++ b/oshdb-helpers/oshdb-database-driver/src/main/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriver.java @@ -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. @@ -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); } } @@ -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); } } diff --git a/oshdb-helpers/oshdb-database-driver/src/test/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriverH2Test.java b/oshdb-helpers/oshdb-database-driver/src/test/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriverH2Test.java index 43026edbe..b3c4f6ece 100644 --- a/oshdb-helpers/oshdb-database-driver/src/test/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriverH2Test.java +++ b/oshdb-helpers/oshdb-database-driver/src/test/java/org/heigit/ohsome/oshdb/helpers/db/OSHDBDriverH2Test.java @@ -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; @@ -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; }