diff --git a/pom.xml b/pom.xml
index 657607148..a18c83b4d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
multi
spring-data-mongodb
2.2.0.BUILD-SNAPSHOT
- 3.8.2
+ 3.10.1
1.9.2
1.19
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java
index d57268388..167281276 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java
@@ -123,6 +123,10 @@ class AsyncInputStreamAdapter implements AsyncInputStream {
});
}
+ public Publisher skip(long bytesToSkip) {
+ throw new UnsupportedOperationException("Skip is currently not implemented");
+ }
+
/*
* (non-Javadoc)
* @see com.mongodb.reactivestreams.client.gridfs.AsyncInputStream#close()
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java
index ab44ec9a5..3ea557063 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java
@@ -90,7 +90,7 @@ public class DefaultIndexOperationsIntegrationTests {
assertThat(info.getIndexFields().get(0).isGeo()).isEqualTo(true);
}
- @Test // DATAMONGO-1467
+ @Test // DATAMONGO-1467, DATAMONGO-2198
public void shouldApplyPartialFilterCorrectly() {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
@@ -101,10 +101,10 @@ public class DefaultIndexOperationsIntegrationTests {
indexOps.ensureIndex(id);
IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-criteria");
- assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"q-t-y\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"q-t-y\" : { \"$gte\" : 10 } }"));
}
- @Test // DATAMONGO-1467
+ @Test // DATAMONGO-1467, DATAMONGO-2198
public void shouldApplyPartialFilterWithMappedPropertyCorrectly() {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
@@ -115,10 +115,10 @@ public class DefaultIndexOperationsIntegrationTests {
indexOps.ensureIndex(id);
IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-mapped-criteria");
- assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
}
- @Test // DATAMONGO-1467
+ @Test // DATAMONGO-1467, DATAMONGO-2198
public void shouldApplyPartialDBOFilterCorrectly() {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
@@ -129,10 +129,10 @@ public class DefaultIndexOperationsIntegrationTests {
indexOps.ensureIndex(id);
IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-dbo");
- assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
}
- @Test // DATAMONGO-1467
+ @Test // DATAMONGO-1467, DATAMONGO-2198
public void shouldFavorExplicitMappingHintViaClass() {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
@@ -147,7 +147,7 @@ public class DefaultIndexOperationsIntegrationTests {
indexOps.ensureIndex(id);
IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-inheritance");
- assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"a_g_e\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"a_g_e\" : { \"$gte\" : 10 } }"));
}
@Test // DATAMONGO-1518
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java
index 45a723ce2..33ac33041 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java
@@ -133,7 +133,7 @@ public class DefaultReactiveIndexOperationsTests {
.verifyComplete();
}
- @Test // DATAMONGO-1682
+ @Test // DATAMONGO-1682, DATAMONGO-2198
public void shouldApplyPartialFilterCorrectly() {
assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO));
@@ -145,12 +145,12 @@ public class DefaultReactiveIndexOperationsTests {
StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-criteria"))) //
.consumeNextWith(indexInfo -> {
- assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"q-t-y\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"q-t-y\" : { \"$gte\" : 10 } }"));
}) //
.verifyComplete();
}
- @Test // DATAMONGO-1682
+ @Test // DATAMONGO-1682, DATAMONGO-2198
public void shouldApplyPartialFilterWithMappedPropertyCorrectly() {
assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO));
@@ -162,11 +162,11 @@ public class DefaultReactiveIndexOperationsTests {
StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-mapped-criteria"))) //
.consumeNextWith(indexInfo -> {
- assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
}).verifyComplete();
}
- @Test // DATAMONGO-1682
+ @Test // DATAMONGO-1682, DATAMONGO-2198
public void shouldApplyPartialDBOFilterCorrectly() {
assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO));
@@ -178,13 +178,13 @@ public class DefaultReactiveIndexOperationsTests {
StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-dbo"))) //
.consumeNextWith(indexInfo -> {
- assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
}) //
.verifyComplete();
}
- @Test // DATAMONGO-1682
+ @Test // DATAMONGO-1682, DATAMONGO-2198
public void shouldFavorExplicitMappingHintViaClass() {
assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO));
@@ -200,7 +200,7 @@ public class DefaultReactiveIndexOperationsTests {
StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-inheritance"))) //
.consumeNextWith(indexInfo -> {
- assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"a_g_e\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"a_g_e\" : { \"$gte\" : 10 } }"));
}) //
.verifyComplete();
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java
index 55ced92f8..492d80d01 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java
@@ -41,7 +41,7 @@ public class SerializationUtilsUnitTests {
public void writesSimpleDocument() {
Document document = new Document("foo", "bar");
- assertThat(serializeToJsonSafely(document), is("{ \"foo\" : \"bar\" }"));
+ assertThat(serializeToJsonSafely(document), is(document.toJson()));
}
@Test
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java
index 2039ea5a2..b44e7706d 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java
@@ -1191,11 +1191,16 @@ public class MappingMongoConverterUnitTests {
assertThat(((Person) value).lastname, is("converter"));
}
- @Test // DATAMONGO-743
+ @Test // DATAMONGO-743, DATAMONGO-2198
public void readsIntoStringsOutOfTheBox() {
- org.bson.Document document = new org.bson.Document("firstname", "Dave");
- assertThat(converter.read(String.class, document), is("{ \"firstname\" : \"Dave\" }"));
+
+ String target = converter.read(String.class, new org.bson.Document("firstname", "Dave"));
+
+ assertThat(target, Matchers.startsWith("{"));
+ assertThat(target, Matchers.endsWith("}"));
+ assertThat(target, Matchers.containsString( "\"firstname\""));
+ assertThat(target, Matchers.containsString( "\"Dave\""));
}
@Test // DATAMONGO-766
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java
index b328040e5..6a0b0081a 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java
@@ -52,8 +52,8 @@ public class IndexInfoUnitTests {
@Test // DATAMONGO-2170
public void partialFilterExpressionShouldMatchSource() {
- assertThat(getIndexInfo(INDEX_WITH_PARTIAL_FILTER).getPartialFilterExpression())
- .isEqualTo("{ \"quantity\" : { \"$gte\" : 10 } }");
+ assertThat(Document.parse(getIndexInfo(INDEX_WITH_PARTIAL_FILTER).getPartialFilterExpression()))
+ .isEqualTo(Document.parse("{ \"quantity\" : { \"$gte\" : 10 } }"));
}
private static IndexInfo getIndexInfo(String documentJson) {
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java
index 710554235..43bcb2643 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java
@@ -204,13 +204,12 @@ public class QueryTests {
new Query().with(Sort.by(new Sort.Order("foo").ignoreCase()));
}
- @Test // DATAMONGO-709, DATAMONGO-1735
+ @Test // DATAMONGO-709, DATAMONGO-1735, // DATAMONGO-2198
@SuppressWarnings("unchecked")
public void shouldReturnClassHierarchyOfRestrictedTypes() {
Query query = new Query(where("name").is("foo")).restrict(SpecialDoc.class);
- assertThat(query.toString(), is(
- "Query: { \"name\" : \"foo\", \"_$RESTRICTED_TYPES\" : [ { \"$java\" : class org.springframework.data.mongodb.core.SpecialDoc } ] }, Fields: { }, Sort: { }"));
+
assertThat(query.getRestrictedTypes(), is(notNullValue()));
assertThat(query.getRestrictedTypes().size(), is(1));
assertThat(query.getRestrictedTypes(), hasItems(Arrays.asList(SpecialDoc.class).toArray(new Class>[0])));
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java
index ffc8c44d3..a191bef86 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java
@@ -474,11 +474,11 @@ public class UpdateTests {
"{ \"$push\" : { \"key\" : { \"$java\" : { \"$position\" : { \"$java\" : { \"$position\" : 0} }, \"$each\" : { \"$java\" : { \"$each\" : [ \"Arya\"]} } } } } }");
}
- @Test // DATAMONGO-1777
+ @Test // DATAMONGO-1777, DATAMONGO-2198
public void toStringConsidersIsolated() {
assertThat(new Update().set("key", "value").isolated().toString())
- .isEqualTo("{ \"$set\" : { \"key\" : \"value\" }, \"$isolated\" : 1 }");
+ .contains("\"$isolated\"");
}
@Test // DATAMONGO-1778