Initial Development #1

Merged
danieljsummers merged 88 commits from v1-rc into main 2025-04-16 01:29:20 +00:00
35 changed files with 129 additions and 61 deletions
Showing only changes of commit c184ea7e79 - Show all commits

3
.gitignore vendored
View File

@ -29,3 +29,6 @@ replay_pid*
# Temporary output directories
**/target
# Maven Central Repo settings
settings.xml

View File

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="mavenCentral" />
<option name="name" value="mavenCentral" />
<option name="url" value="https://repo1.maven.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="mavenCentral" />
<option name="name" value="mavenCentral" />
<option name="url" value="https://repo1.maven.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />

45
pom.xml
View File

@ -6,7 +6,34 @@
<groupId>solutions.bitbadger</groupId>
<artifactId>documents</artifactId>
<version>4.0-ALPHA</version>
<version>4.0.0-alpha1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>${project.groupId}:${project.artifactId}</name>
<description>Expose a document store interface for PostgreSQL and SQLite</description>
<url>https://bitbadger.solutions/open-source/solutions.bitbadger.documents</url>
<licenses>
<license>
<name>MIT License</name>
<url>https://www.opensource.org/licenses/mit-license.php</url>
</license>
</licenses>
<developers>
<developer>
<name>Daniel J. Summers</name>
<email>daniel@bitbadger.solutions</email>
<organization>Bit Badger Solutions</organization>
<organizationUrl>https://bitbadger.solutions</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:https://git.bitbadger.solutions/bit-badger/solutions.bitbadger.documents.git</connection>
<developerConnection>scm:git:https://git.bitbadger.solutions/bit-badger/solutions.bitbadger.documents.git</developerConnection>
<url>https://git.bitbadger.solutions/bit-badger/solutions.bitbadger.documents</url>
</scm>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@ -16,12 +43,12 @@
<serialization.version>1.8.0</serialization.version>
</properties>
<repositories>
<!-- <repositories>
<repository>
<id>mavenCentral</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>
</repositories> -->
<build>
<sourceDirectory>src/main/kotlin</sourceDirectory>
@ -67,6 +94,14 @@
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
@ -111,13 +146,13 @@
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.46.1.2</version>
<scope>integration-test</scope>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.5</version>
<scope>integration-test</scope>
<scope>test</scope>
</dependency>
</dependencies>

View File

@ -2,6 +2,7 @@ package solutions.bitbadger.documents
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
import solutions.bitbadger.documents.integration.TEST_TABLE
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue

View File

@ -1,4 +1,4 @@
package solutions.bitbadger.documents
package solutions.bitbadger.documents.integration
import java.sql.Connection

View File

@ -1,6 +1,7 @@
package solutions.bitbadger.documents
package solutions.bitbadger.documents.integration
import kotlinx.serialization.Serializable
import solutions.bitbadger.documents.insert
/** The test table name to use for integration tests */
const val TEST_TABLE = "test_table"
@ -18,7 +19,8 @@ data class ArrayDocument(val id: String, val values: List<String>) {
val testDocuments = listOf(
ArrayDocument("first", listOf("a", "b", "c")),
ArrayDocument("second", listOf("c", "d", "e")),
ArrayDocument("third", listOf("x", "y", "z")))
ArrayDocument("third", listOf("x", "y", "z"))
)
}
}
@ -31,7 +33,8 @@ data class JsonDocument(val id: String, val value: String = "", val numValue: In
JsonDocument("two", "another", 10, SubDocument("green", "blue")),
JsonDocument("three", "", 4, null),
JsonDocument("four", "purple", 17, SubDocument("green", "red")),
JsonDocument("five", "purple", 18, null))
JsonDocument("five", "purple", 18, null)
)
fun load(db: ThrowawayDatabase, tableName: String = TEST_TABLE) =
testDocuments.forEach { db.conn.insert(tableName, it) }

View File

@ -1,6 +1,9 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.JsonDocument
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import kotlin.test.assertEquals
/**

View File

@ -1,6 +1,9 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.JsonDocument
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import solutions.bitbadger.documents.query.Count
import solutions.bitbadger.documents.query.Delete
import solutions.bitbadger.documents.query.Find

View File

@ -1,6 +1,8 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import kotlin.test.assertFalse
import kotlin.test.assertTrue

View File

@ -1,6 +1,9 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.JsonDocument
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import kotlin.test.assertEquals
/**

View File

@ -1,6 +1,7 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.*
import kotlin.test.*
/**

View File

@ -1,6 +1,9 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.JsonDocument
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import kotlin.test.assertFalse
import kotlin.test.assertTrue

View File

@ -1,6 +1,7 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.*
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
import kotlin.test.assertNull

View File

@ -1,6 +1,9 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.JsonDocument
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertNotNull

View File

@ -1,6 +1,9 @@
package solutions.bitbadger.documents.common
package solutions.bitbadger.documents.integration.common
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.JsonDocument
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import kotlin.test.*

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Count
import solutions.bitbadger.documents.integration.common.Count
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Custom
import solutions.bitbadger.documents.integration.common.Custom
import kotlin.test.Test

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Definition
import solutions.bitbadger.documents.integration.common.Definition
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Delete
import solutions.bitbadger.documents.integration.common.Delete
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Document
import solutions.bitbadger.documents.integration.common.Document
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Exists
import solutions.bitbadger.documents.integration.common.Exists
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Find
import solutions.bitbadger.documents.integration.common.Find
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Patch
import solutions.bitbadger.documents.integration.common.Patch
import kotlin.test.Test
/**

View File

@ -1,6 +1,8 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
/**
* A wrapper for a throwaway PostgreSQL database

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.postgresql
package solutions.bitbadger.documents.integration.postgresql
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.RemoveFields
import solutions.bitbadger.documents.integration.common.RemoveFields
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.DocumentException
import solutions.bitbadger.documents.common.Count
import solutions.bitbadger.documents.integration.common.Count
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Custom
import solutions.bitbadger.documents.integration.common.Custom
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.common.Definition
import solutions.bitbadger.documents.integration.common.Definition
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.DocumentException
import solutions.bitbadger.documents.common.Delete
import solutions.bitbadger.documents.integration.common.Delete
import kotlin.test.Test
/**

View File

@ -1,7 +1,7 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import solutions.bitbadger.documents.common.Document
import solutions.bitbadger.documents.integration.common.Document
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.DocumentException
import solutions.bitbadger.documents.common.Exists
import solutions.bitbadger.documents.integration.common.Exists
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.DocumentException
import solutions.bitbadger.documents.common.Find
import solutions.bitbadger.documents.integration.common.Find
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.DocumentException
import solutions.bitbadger.documents.common.Patch
import solutions.bitbadger.documents.integration.common.Patch
import kotlin.test.Test
/**

View File

@ -1,9 +1,9 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.assertThrows
import solutions.bitbadger.documents.DocumentException
import solutions.bitbadger.documents.common.RemoveFields
import solutions.bitbadger.documents.integration.common.RemoveFields
import kotlin.test.Test
/**

View File

@ -1,6 +1,8 @@
package solutions.bitbadger.documents.sqlite
package solutions.bitbadger.documents.integration.sqlite
import solutions.bitbadger.documents.*
import solutions.bitbadger.documents.integration.TEST_TABLE
import solutions.bitbadger.documents.integration.ThrowawayDatabase
import java.io.File
/**