diff --git a/bosk-bson/README.md b/bosk-bson/README.md deleted file mode 100644 index 5e4e4529..00000000 --- a/bosk-bson/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## bosk-bson - -This is the subproject for the published `bosk-bson` library, -containing facilities for manipulating MongoDB's binary JSON data structures. -Outside of MongoDB itself, we also use BSON as a handy utility -for divide up and re-combine large JSON documents, -which is useful even outside of MongoDB. diff --git a/bosk-bson/build.gradle b/bosk-bson/build.gradle deleted file mode 100644 index 648ba9df..00000000 --- a/bosk-bson/build.gradle +++ /dev/null @@ -1,47 +0,0 @@ - -plugins { - id 'bosk.development' - id 'bosk.maven-publish' - id 'info.solidsoft.pitest' version '1.15.0' - id 'com.github.spotbugs' version '5.1.5' -} - -base { - archivesName = 'bosk-bson' -} - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(jdkVersion) - } -} - -compileJava { - options.release = prodJavaVersion -} - -compileTestJava { - options.release = null -} - -dependencies { - api project(":bosk-core") - api 'org.mongodb:bson:5.1.2' - implementation 'com.github.spotbugs:spotbugs-annotations:4.8.6' // To stop warnings about When from MongoDB driver - - testImplementation project(":bosk-logback") - testImplementation project(":bosk-testing") - testImplementation project(":lib-testing") -} - -pitest { - pitestVersion = '1.15.0' - junit5PluginVersion = '1.2.0' - jvmArgs = ['-ea'] // Our unit tests check for assert statements - targetClasses = ['works.bosk.drivers.mongo.BsonSurgeon'] - targetTests = ['works.bosk.drivers.mongo.BsonSurgeonTest'] - threads = 4 - outputFormats = ['XML', 'HTML'] - timestampedReports = false - //verbose = true -} diff --git a/bosk-mongo/build.gradle b/bosk-mongo/build.gradle index 46f5c6fa..5ecc51c1 100644 --- a/bosk-mongo/build.gradle +++ b/bosk-mongo/build.gradle @@ -26,7 +26,6 @@ compileTestJava { dependencies { api project(":bosk-core") - implementation project(":bosk-bson") api 'org.mongodb:mongodb-driver-sync:5.1.2' implementation 'com.github.spotbugs:spotbugs-annotations:4.8.6' // To stop warnings about When from MongoDB driver diff --git a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/Formatter.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/Formatter.java index 5ca96a5e..1e0665c9 100644 --- a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/Formatter.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/Formatter.java @@ -26,8 +26,8 @@ import works.bosk.MapValue; import works.bosk.Reference; import works.bosk.SerializationPlugin; -import works.bosk.bson.BsonPlugin; -import works.bosk.bson.BsonFormatter; +import works.bosk.drivers.mongo.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonFormatter; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; diff --git a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MainDriver.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MainDriver.java index 2098b4ff..74c7ce54 100644 --- a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MainDriver.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MainDriver.java @@ -29,8 +29,8 @@ import works.bosk.Identifier; import works.bosk.Reference; import works.bosk.StateTreeNode; -import works.bosk.bson.BsonPlugin; -import works.bosk.bson.BsonFormatter.DocumentFields; +import works.bosk.drivers.mongo.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonFormatter.DocumentFields; import works.bosk.drivers.mongo.MappedDiagnosticContext.MDCScope; import works.bosk.drivers.mongo.MongoDriverSettings.DatabaseFormat; import works.bosk.drivers.mongo.MongoDriverSettings.InitialDatabaseUnavailableMode; diff --git a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MongoDriver.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MongoDriver.java index 1a5476bb..3b8941f4 100644 --- a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MongoDriver.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/MongoDriver.java @@ -7,7 +7,7 @@ import works.bosk.BoskInfo; import works.bosk.DriverFactory; import works.bosk.StateTreeNode; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.drivers.mongo.status.MongoStatus; /** diff --git a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/PandoFormatDriver.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/PandoFormatDriver.java index 9a2f4c08..133be018 100644 --- a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/PandoFormatDriver.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/PandoFormatDriver.java @@ -40,9 +40,9 @@ import works.bosk.Reference; import works.bosk.RootReference; import works.bosk.StateTreeNode; -import works.bosk.bson.BsonFormatter; -import works.bosk.bson.BsonPlugin; -import works.bosk.bson.BsonSurgeon; +import works.bosk.drivers.mongo.bson.BsonFormatter; +import works.bosk.drivers.mongo.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonSurgeon; import works.bosk.exceptions.FlushFailureException; import works.bosk.exceptions.InvalidTypeException; import works.bosk.exceptions.NotYetImplementedException; @@ -60,7 +60,7 @@ import static java.util.stream.Collectors.toList; import static org.bson.BsonBoolean.TRUE; import static works.bosk.Path.parseParameterized; -import static works.bosk.bson.BsonFormatter.docBsonPath; +import static works.bosk.drivers.mongo.bson.BsonFormatter.docBsonPath; import static works.bosk.util.Classes.enumerableByIdentifier; /** diff --git a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/SequoiaFormatDriver.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/SequoiaFormatDriver.java index 9453d511..43d45e63 100644 --- a/bosk-mongo/src/main/java/works/bosk/drivers/mongo/SequoiaFormatDriver.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/SequoiaFormatDriver.java @@ -28,8 +28,8 @@ import works.bosk.MapValue; import works.bosk.Reference; import works.bosk.StateTreeNode; -import works.bosk.bson.BsonPlugin; -import works.bosk.bson.BsonFormatter.DocumentFields; +import works.bosk.drivers.mongo.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonFormatter.DocumentFields; import works.bosk.exceptions.FlushFailureException; import works.bosk.exceptions.InvalidTypeException; @@ -43,7 +43,7 @@ import static org.bson.BsonBoolean.FALSE; import static works.bosk.drivers.mongo.Formatter.REVISION_ZERO; import static works.bosk.drivers.mongo.Formatter.dottedFieldNameOf; -import static works.bosk.bson.BsonFormatter.referenceTo; +import static works.bosk.drivers.mongo.bson.BsonFormatter.referenceTo; import static works.bosk.drivers.mongo.MainDriver.MANIFEST_ID; import static works.bosk.drivers.mongo.MongoDriverSettings.ManifestMode.CREATE_IF_ABSENT; diff --git a/bosk-bson/src/main/java/works/bosk/bson/BsonFormatException.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonFormatException.java similarity index 87% rename from bosk-bson/src/main/java/works/bosk/bson/BsonFormatException.java rename to bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonFormatException.java index 7de567ef..be1de800 100644 --- a/bosk-bson/src/main/java/works/bosk/bson/BsonFormatException.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonFormatException.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; class BsonFormatException extends IllegalStateException { public BsonFormatException(String s) { super(s); } diff --git a/bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonFormatter.java similarity index 99% rename from bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java rename to bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonFormatter.java index 33c45cc2..1be60e4b 100644 --- a/bosk-bson/src/main/java/works/bosk/bson/BsonFormatter.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonFormatter.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.lang.reflect.Type; import java.net.URLDecoder; diff --git a/bosk-bson/src/main/java/works/bosk/bson/BsonPlugin.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonPlugin.java similarity index 99% rename from bosk-bson/src/main/java/works/bosk/bson/BsonPlugin.java rename to bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonPlugin.java index 87c9afa8..0069d78f 100644 --- a/bosk-bson/src/main/java/works/bosk/bson/BsonPlugin.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonPlugin.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles.Lookup; @@ -65,8 +65,8 @@ import static works.bosk.ReferenceUtils.getterMethod; import static works.bosk.ReferenceUtils.parameterType; import static works.bosk.ReferenceUtils.rawClass; -import static works.bosk.bson.BsonFormatter.dottedFieldNameSegment; -import static works.bosk.bson.BsonFormatter.undottedFieldNameSegment; +import static works.bosk.drivers.mongo.bson.BsonFormatter.dottedFieldNameSegment; +import static works.bosk.drivers.mongo.bson.BsonFormatter.undottedFieldNameSegment; public final class BsonPlugin extends SerializationPlugin { private final ValueCodecProvider valueCodecProvider = new ValueCodecProvider(); diff --git a/bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonSurgeon.java similarity index 97% rename from bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java rename to bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonSurgeon.java index 6ab596b2..a693b5c6 100644 --- a/bosk-bson/src/main/java/works/bosk/bson/BsonSurgeon.java +++ b/bosk-mongo/src/main/java/works/bosk/drivers/mongo/bson/BsonSurgeon.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.util.ArrayList; import java.util.Arrays; @@ -15,15 +15,14 @@ import works.bosk.Identifier; import works.bosk.Path; import works.bosk.Reference; -import works.bosk.bson.BsonFormatter.DocumentFields; +import works.bosk.drivers.mongo.bson.BsonFormatter.DocumentFields; import works.bosk.exceptions.InvalidTypeException; import static java.util.Collections.emptyList; -import static java.util.Collections.unmodifiableList; import static java.util.Comparator.comparing; import static java.util.Objects.requireNonNull; -import static works.bosk.bson.BsonFormatter.containerSegments; -import static works.bosk.bson.BsonFormatter.undottedFieldNameSegment; +import static works.bosk.drivers.mongo.bson.BsonFormatter.containerSegments; +import static works.bosk.drivers.mongo.bson.BsonFormatter.undottedFieldNameSegment; /** * Splits up a single large BSON document into multiple self-describing pieces, diff --git a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/AbstractMongoDriverTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/AbstractMongoDriverTest.java index 9643119a..05b98070 100644 --- a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/AbstractMongoDriverTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/AbstractMongoDriverTest.java @@ -26,7 +26,7 @@ import works.bosk.Reference; import works.bosk.SideTable; import works.bosk.annotations.ReferencePath; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.drivers.mongo.MongoDriverSettings.MongoDriverSettingsBuilder; import works.bosk.drivers.state.TestEntity; import works.bosk.drivers.state.TestValues; diff --git a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverConformanceTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverConformanceTest.java index 070d1d20..397effb2 100644 --- a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverConformanceTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverConformanceTest.java @@ -8,7 +8,7 @@ import org.junit.jupiter.api.BeforeEach; import works.bosk.DriverFactory; import works.bosk.StateTreeNode; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.drivers.DriverConformanceTest; import works.bosk.drivers.mongo.TestParameters.EventTiming; import works.bosk.drivers.mongo.TestParameters.ParameterSet; diff --git a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverHanoiTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverHanoiTest.java index f83865ea..3b681f44 100644 --- a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverHanoiTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverHanoiTest.java @@ -8,7 +8,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestInfo; import works.bosk.DriverStack; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.drivers.HanoiTest; import works.bosk.junit.ParametersByName; import works.bosk.junit.Slow; diff --git a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverSpecialTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverSpecialTest.java index c06212dc..012bcad6 100644 --- a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverSpecialTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/MongoDriverSpecialTest.java @@ -30,7 +30,7 @@ import works.bosk.Reference; import works.bosk.SideTable; import works.bosk.annotations.Polyfill; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.drivers.BufferingDriver; import works.bosk.drivers.state.TestEntity; import works.bosk.drivers.state.TestValues; diff --git a/bosk-bson/src/test/java/works/bosk/bson/BsonFormatterTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonFormatterTest.java similarity index 97% rename from bosk-bson/src/test/java/works/bosk/bson/BsonFormatterTest.java rename to bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonFormatterTest.java index 1b65954d..5212d6f1 100644 --- a/bosk-bson/src/test/java/works/bosk/bson/BsonFormatterTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonFormatterTest.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.io.IOException; import java.util.ArrayList; @@ -18,7 +18,6 @@ import works.bosk.util.Types; import static org.junit.jupiter.api.Assertions.assertEquals; -import static works.bosk.TypeValidation.validateType; class BsonFormatterTest extends AbstractBoskTest { Bosk bosk; diff --git a/bosk-bson/src/test/java/works/bosk/bson/BsonPluginTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonPluginTest.java similarity index 98% rename from bosk-bson/src/test/java/works/bosk/bson/BsonPluginTest.java rename to bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonPluginTest.java index dd945177..326ca3f0 100644 --- a/bosk-bson/src/test/java/works/bosk/bson/BsonPluginTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonPluginTest.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import lombok.experimental.FieldNameConstants; import org.bson.BsonDocument; diff --git a/bosk-bson/src/test/java/works/bosk/bson/BsonSurgeonTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonSurgeonTest.java similarity index 98% rename from bosk-bson/src/test/java/works/bosk/bson/BsonSurgeonTest.java rename to bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonSurgeonTest.java index 3bb11d41..ae4fb002 100644 --- a/bosk-bson/src/test/java/works/bosk/bson/BsonSurgeonTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/BsonSurgeonTest.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.io.IOException; import java.util.LinkedHashSet; @@ -28,7 +28,7 @@ import static java.util.stream.Collectors.toList; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import static works.bosk.bson.BsonFormatter.docBsonPath; +import static works.bosk.drivers.mongo.bson.BsonFormatter.docBsonPath; public class BsonSurgeonTest extends AbstractDriverTest { BsonSurgeon surgeon; diff --git a/bosk-bson/src/test/java/works/bosk/bson/DottedFieldNameTest.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/DottedFieldNameTest.java similarity index 99% rename from bosk-bson/src/test/java/works/bosk/bson/DottedFieldNameTest.java rename to bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/DottedFieldNameTest.java index 28fc0733..8b7cbb4c 100644 --- a/bosk-bson/src/test/java/works/bosk/bson/DottedFieldNameTest.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/DottedFieldNameTest.java @@ -1,4 +1,4 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; diff --git a/bosk-bson/src/test/java/works/bosk/bson/DottedFieldNameTest2.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/DottedFieldNameTest2.java similarity index 91% rename from bosk-bson/src/test/java/works/bosk/bson/DottedFieldNameTest2.java rename to bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/DottedFieldNameTest2.java index 9f601f6a..7c663bcf 100644 --- a/bosk-bson/src/test/java/works/bosk/bson/DottedFieldNameTest2.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/bson/DottedFieldNameTest2.java @@ -1,11 +1,11 @@ -package works.bosk.bson; +package works.bosk.drivers.mongo.bson; import java.util.stream.Stream; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; class DottedFieldNameTest2 { diff --git a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/example/ExampleBosk.java b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/example/ExampleBosk.java index 40c14491..6c3328f5 100644 --- a/bosk-mongo/src/test/java/works/bosk/drivers/mongo/example/ExampleBosk.java +++ b/bosk-mongo/src/test/java/works/bosk/drivers/mongo/example/ExampleBosk.java @@ -5,7 +5,7 @@ import works.bosk.DriverFactory; import works.bosk.Reference; import works.bosk.annotations.ReferencePath; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.drivers.mongo.MongoDriver; import works.bosk.drivers.mongo.MongoDriverSettings; import works.bosk.exceptions.InvalidTypeException; diff --git a/lib-testing/build.gradle b/lib-testing/build.gradle index b57d5549..6651c428 100644 --- a/lib-testing/build.gradle +++ b/lib-testing/build.gradle @@ -18,7 +18,7 @@ dependencies { implementation project(":bosk-testing") // These are for AbstractRoundTripTest. That logic ought to be moved to their respective sub-projects implementation project(":bosk-jackson") - implementation project(":bosk-bson") + implementation project(":bosk-mongo") // The bosk.development plugin brings these in as test dependencies, // but we need them as main dependencies. diff --git a/lib-testing/src/main/java/works/bosk/AbstractRoundTripTest.java b/lib-testing/src/main/java/works/bosk/AbstractRoundTripTest.java index e1f98593..948b7f4a 100644 --- a/lib-testing/src/main/java/works/bosk/AbstractRoundTripTest.java +++ b/lib-testing/src/main/java/works/bosk/AbstractRoundTripTest.java @@ -28,7 +28,7 @@ import org.bson.codecs.configuration.CodecRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import works.bosk.bson.BsonPlugin; +import works.bosk.drivers.mongo.bson.BsonPlugin; import works.bosk.exceptions.InvalidTypeException; import works.bosk.jackson.JacksonPlugin; import works.bosk.jackson.JacksonPluginConfiguration; diff --git a/settings.gradle b/settings.gradle index e029e397..0fd8d717 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,7 +1,6 @@ rootProject.name = 'bosk' include 'bosk-annotations' -include 'bosk-bson' include 'bosk-core' include 'bosk-jackson' include 'bosk-logback'