From 34794283f60ced5809b4929974c8f203a8147e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de> Date: Wed, 29 Sep 2021 11:44:46 +0200 Subject: [PATCH] Make Database non-generic --- .../org/briarproject/mailbox/core/db/Database.kt | 14 +++++++------- .../briarproject/mailbox/core/db/DatabaseModule.kt | 3 +-- .../briarproject/mailbox/core/db/JdbcDatabase.kt | 2 +- .../mailbox/core/lifecycle/LifecycleManagerImpl.kt | 3 +-- .../mailbox/core/db/JdbcDatabaseTest.kt | 7 +++---- 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt index 336cac11..d1c225ff 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt @@ -4,7 +4,7 @@ import org.briarproject.mailbox.core.api.Contact import org.briarproject.mailbox.core.settings.Settings import java.sql.Connection -interface Database<T> { +interface Database { /** * Opens the database and returns true if the database already existed. @@ -22,20 +22,20 @@ interface Database<T> { * Starts a new transaction and returns an object representing it. */ @Throws(DbException::class) - fun startTransaction(): T + fun startTransaction(): Connection /** * Aborts the given transaction - no changes made during the transaction * will be applied to the database. */ - fun abortTransaction(txn: T) + fun abortTransaction(txn: Connection) /** * Commits the given transaction - all changes made during the transaction * will be applied to the database. */ @Throws(DbException::class) - fun commitTransaction(txn: T) + fun commitTransaction(txn: Connection) @Throws(DbException::class) fun getSettings(txn: Connection, namespace: String?): Settings @@ -44,12 +44,12 @@ interface Database<T> { fun mergeSettings(txn: Connection, s: Settings, namespace: String?) @Throws(DbException::class) - fun addContact(txn: T, contact: Contact) + fun addContact(txn: Connection, contact: Contact) @Throws(DbException::class) - fun getContact(txn: T, id: Int): Contact? + fun getContact(txn: Connection, id: Int): Contact? @Throws(DbException::class) - fun removeContact(txn: T, id: Int) + fun removeContact(txn: Connection, id: Int) } diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt index 50fd36f3..e32d0fc7 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt @@ -5,7 +5,6 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import org.briarproject.mailbox.core.system.Clock -import java.sql.Connection import javax.inject.Singleton @Module @@ -14,7 +13,7 @@ internal class DatabaseModule { @Provides @Singleton - fun provideDatabase(config: DatabaseConfig, clock: Clock): Database<Connection> { + fun provideDatabase(config: DatabaseConfig, clock: Clock): Database { return H2Database(config, clock) } diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt index a0433b48..befc146c 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt @@ -25,7 +25,7 @@ import java.util.concurrent.locks.ReentrantLock import javax.annotation.concurrent.GuardedBy abstract class JdbcDatabase(private val dbTypes: DatabaseTypes, private val clock: Clock) : - Database<Connection> { + Database { internal companion object { diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt index 4b1f8b91..1ab9b354 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt @@ -23,7 +23,6 @@ import org.briarproject.mailbox.core.util.LogUtils.logException import org.briarproject.mailbox.core.util.LogUtils.now import org.briarproject.mailbox.core.util.LogUtils.trace import org.slf4j.LoggerFactory.getLogger -import java.sql.Connection import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.CountDownLatch import java.util.concurrent.ExecutorService @@ -32,7 +31,7 @@ import javax.annotation.concurrent.ThreadSafe import javax.inject.Inject @ThreadSafe -internal class LifecycleManagerImpl @Inject constructor(private val db: Database<Connection>) : +internal class LifecycleManagerImpl @Inject constructor(private val db: Database) : LifecycleManager, MigrationListener { companion object { diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt index f2e0018a..25e3aac1 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt @@ -6,7 +6,6 @@ import org.briarproject.mailbox.core.system.Clock import org.junit.jupiter.api.Test import org.junit.jupiter.api.io.TempDir import java.io.File -import java.sql.Connection import kotlin.test.assertEquals import kotlin.test.assertNull @@ -23,8 +22,8 @@ abstract class JdbcDatabaseTest { @Throws(java.lang.Exception::class) fun open( resume: Boolean, - ): Database<Connection> { - val db: Database<Connection> = createDatabase( + ): Database { + val db: Database = createDatabase( TestDatabaseConfig(testDir) ) { System.currentTimeMillis() } if (!resume) deleteTestDirectory(testDir) @@ -36,7 +35,7 @@ abstract class JdbcDatabaseTest { @Throws(Exception::class) open fun testPersistence() { // Store some records - var db: Database<Connection> = open(false) + var db: Database = open(false) var txn = db.startTransaction() val contact1 = Contact( -- GitLab