Christoph Strobl
7b1a96f4a9
DATAMONGO-2448 - Bump version to 3.0 SNAPSHOT.
...
In preparation for the upcoming breaking changes when switching to the MongoDB Java Driver 4.0 and the breaking changes required for that update (expected for Milestone 2), we eagerly bump the version number to 3.0.
Original pull request: #819 .
2020-01-13 14:29:09 +01:00
Christoph Strobl
4f75fec5c5
DATAMONGO-2447 - Upgrade MongoDB Drivers to 3.12.0 (sync) and 1.13.0 (reactive).
2020-01-10 11:22:49 +01:00
Mark Paluch
61bd56dd74
DATAMONGO-2442 - Polishing.
...
Reduce visibility of test methods for JUnit 5 tests.
Original pull request: #818 .
2020-01-08 15:12:47 +01:00
Christoph Strobl
b4222c5646
DATAMONGO-2442 - Polishing.
...
Transition touched test classes to JUnit Jupiter.
Original pull request: #818 .
2020-01-08 15:12:44 +01:00
Christoph Strobl
4a45928aee
DATAMONGO-2442 - Fix thenValueOf in $cond builder.
...
We now create a field reference when calling the builder instead of using the value as is.
Original pull request: #818 .
2020-01-08 15:12:23 +01:00
Mark Paluch
e2200eccf7
DATAMONGO-2440 - Polishing.
...
Iterate over List instead of using the Stream API.
Reduce visibility of JUnit 5 test methods. Consolidate assertions.
Original pull request: #817 .
2020-01-08 15:01:57 +01:00
Christoph Strobl
96c4901e7f
DATAMONGO-2440 - Fix field target type conversion for collection values.
...
We now preserve the collection nature of the source type when applying custom target type conversions. Prior to this change collection values had been changed to single element causing query errors in MongoDB when using $in queries.
Original pull request: #817 .
2020-01-08 15:01:44 +01:00
Christoph Strobl
1393f23f3b
DATAMONGO-2423 - Polishing.
...
Update nullability annotations and reduce visibility in tests.
Original pull request: #815 .
2020-01-08 13:24:10 +01:00
Christoph Strobl
9bbe1f2a26
DATAMONGO-2423 - Nullability refinements for Update.
...
Ease non null restrictions for operators that may use null values like $set.
Original pull request: #815 .
2020-01-08 13:23:53 +01:00
Mark Paluch
eacfe2b8f7
DATAMONGO-2444 - Update copyright years to 2020.
2020-01-07 08:59:27 +01:00
Jens Schauder
674f0cca2b
DATAMONGO-2422 - Updated changelog.
2019-12-04 14:32:45 +01:00
Jens Schauder
da7b51a51e
DATAMONGO-2421 - Updated changelog.
2019-12-04 12:09:46 +01:00
Mark Paluch
a1b5175299
DATAMONGO-2430 - Upgrade to mongo-java-driver 3.11.2.
2019-12-04 11:43:07 +01:00
Mark Paluch
56fff286aa
DATAMONGO-2418 - Polishing.
...
Reformat code.
Original pull request: #814 .
2019-12-04 10:32:04 +01:00
Christoph Strobl
60112b4d14
DATAMONGO-2418 - Obtain EvaluationContextExtensions lazily when parsing Bson queries.
...
An eager evaluation of the context extension can lead to errors when e.g. the security context was not present.
Original pull request: #814 .
2019-12-04 10:32:04 +01:00
Mark Paluch
277b7a1c7c
DATAMONGO-2410 - Polishing.
...
Simplify cast. Extend test with DBObject interface.
Original pull request: #813 .
2019-12-04 08:56:43 +01:00
Christoph Strobl
c5b892f03b
DATAMONGO-2410 - Fix Document to BasicDBObject conversion.
...
Original pull request: #813 .
2019-12-04 08:56:35 +01:00
Mark Paluch
dbf43941be
DATAMONGO-765 - Polishing.
...
Reformat code. Update ticket references.
Original pull request: #806 .
2019-11-26 15:21:29 +01:00
Denis Zavedeev
1d98b77f3d
DATAMONGO-765 - Support skip and limit parameters in GridFsTemplate and ReactiveGridFsTemplate.
...
Leverage `skip` and `limit` methods exposed in `GridFSFindIterable` to support limiting and skipping results.
In particular these changes allow the `find(Query)` method to correctly consider parameters of a page request.
Original pull request: #806 .
2019-11-26 15:21:04 +01:00
Mark Paluch
cd4e4065ff
DATAMONGO-2370 - Polishing.
...
Align since version to 2.3 until we have an indication for a major version bump. Tweak docs.
Original pull request: #803 .
2019-11-20 10:12:34 +01:00
Christoph Strobl
9f4872de4f
DATAMONGO-2370 - Polishing.
...
Use JUnit Jupiter api for tests of touched classes and fix parsing errors in disabled ones.
Original pull request: #803 .
2019-11-20 10:12:30 +01:00
Christoph Strobl
7abf69e575
DATAMONGO-2370 - Add support for $round aggregation operator.
...
Original pull request: #803 .
2019-11-20 10:12:27 +01:00
Mark Paluch
588ed2b0e2
DATAMONGO-2402 - Updated changelog.
2019-11-18 12:43:26 +01:00
Mark Paluch
8a228f22cd
DATAMONGO-2401 - Updated changelog.
2019-11-18 12:16:26 +01:00
Christoph Strobl
d652b2bdb4
DATAMONGO-2414 - Introduce MongoServerCondition to replace JUnit 4 TestRules.
...
MongoServerCondition replaces the JUnit 4 TestRules (MongoVersionRule & ReplicaSet) with a JUnit Jupiter ExecutionCondition.
Original Pull Request: #807
2019-11-14 11:10:20 +01:00
Mark Paluch
f7e527e45c
DATAMONGO-2414 - Polishing.
...
Use longer timeout to cater for slower CI environments.
Original Pull Request: #807
2019-11-14 11:09:58 +01:00
Mark Paluch
aede7c9cad
DATAMONGO-2414 - Guard drain loop in AsyncInputStreamHandler with state switch.
...
We now use a non-blocking state switch to determine whether to invoke drainLoop(…) from Subscriber completion.
Previously, we relied on same thread identification assuming if the subscription thread and the completion thread were the same, that we're already running inside the drain loop.
It turns out that a I/O thread could also run in event-loop mode where subscription and completion happens on the same thread but in between there's some processing and so the the call to completion is a delayed signal and not being called on the same stack as drainLoop(…).
The same-thread assumption was in place to avoid StackOverflow caused by infinite recursions.
We now use a state lock to enter the drain loop. Any concurrent attempts to re-enter the drain loop in Subscriber completion is now prevented to make sure that we continue draining while not causing stack recursions.
Original Pull Request: #807
2019-11-14 11:09:19 +01:00
Mark Paluch
1a5de2e1db
DATAMONGO-2331 - Polishing.
...
Remove deprecated methods accepting Update in favor of methods accepting UpdateDefinition in Template APIs.
Hide AggregationUpdate constructor.
Tweak Javadoc and reference documentation.
Original pull request: #789 .
2019-11-13 09:51:46 +01:00
Christoph Strobl
cc07a1bbb4
DATAMONGO-2331 - Guard test execution.
...
Original pull request: #789 .
2019-11-13 09:51:39 +01:00
Christoph Strobl
32cbae0e5f
DATAMONGO-2331 - Add support for Update with an aggregation pipeline.
...
Now the update methods exposed by (Reactive)MongoOperations also accept an Aggregation Pipeline via AggregationUpdate.
The update can consist of the following stages:
* AggregationUpdate.set(...).toValue(...) -> $set : { ... }
* AggregationUpdate.unset(...) -> $unset : [ ... ]
* AggregationUpdate.replaceWith(...) -> $replaceWith : { ... }
AggregationUpdate update = Aggregation.newUpdate()
.set("average").toValue(ArithmeticOperators.valueOf("tests").avg())
.set("grade").toValue(ConditionalOperators.switchCases(
when(valueOf("average").greaterThanEqualToValue(90)).then("A"),
when(valueOf("average").greaterThanEqualToValue(80)).then("B"),
when(valueOf("average").greaterThanEqualToValue(70)).then("C"),
when(valueOf("average").greaterThanEqualToValue(60)).then("D"))
.defaultTo("F")
);
template.update(Student.class)
.apply(update)
.all();
Original pull request: #789 .
2019-11-13 09:51:22 +01:00
Mark Paluch
9eaf67148d
DATAMONGO-2385 - Polishing.
...
Remove null checks for arguments known to be not-null. Remove Nullable annotations from methods that never return null.
Original pull request: #802 .
2019-11-11 14:17:01 +01:00
Christoph Strobl
ff60149166
DATAMONGO-2385 - Remove unnecessary null checks in MongoConverters.
...
Original pull request: #802 .
2019-11-11 14:10:00 +01:00
Mark Paluch
f7a010827d
DATAMONGO-2409 - Polishing.
...
Adapt also ExecutableFindOperation.DistinctWithProjection.asType() to return the appropriate TerminatingDistinct.
Original pull request: #805 .
2019-11-11 10:22:27 +01:00
Christoph Strobl
1e8c4cec5b
DATAMONGO-2409 - Fix return type of Kotlin extension function for ReactiveFindOperation.DistinctWithProjection.asType().
...
Original pull request: #805 .
2019-11-11 10:22:22 +01:00
Mark Paluch
0e0b45597b
DATAMONGO-2403 - Polishing.
...
Use handle(…) to skip values instead of flatMap(…) to reduce overhead.
Original pull request: #804 .
2019-11-08 13:51:41 +01:00
Christoph Strobl
b014fe4c7c
DATAMONGO-2403 - Fix aggregation simple type result retrieval from empty document.
...
Projections used within an aggregation pipeline can result in empty documents emitted by the driver. We now guarded those cases and skip those documents within a Flux or simply return an empty Mono depending on the methods signature.
Original pull request: #804 .
2019-11-08 13:47:56 +01:00
Christoph Strobl
ead7679f21
DATAMONGO-2382 - Updated changelog.
2019-11-04 15:39:54 +01:00
Christoph Strobl
18cf94dc34
DATAMONGO-2381 - Updated changelog.
2019-11-04 10:34:50 +01:00
Christoph Strobl
30d99445e2
DATAMONGO-2393 - Remove capturing lambdas and extract methods.
...
Original Pull Request: #799
2019-10-31 12:50:33 +01:00
Mark Paluch
839aecee84
DATAMONGO-2393 - Support configurable chunk size.
...
We now allow consuming GridFS files using a configurable chunk size. The default chunk size is now 256kb.
Original Pull Request: #799
2019-10-31 12:50:09 +01:00
Mark Paluch
c6592b01b0
DATAMONGO-2393 - Polishing.
...
Extract read requests into inner class.
Original Pull Request: #799
2019-10-31 12:49:45 +01:00
Mark Paluch
48176a833c
DATAMONGO-2393 - Fix BufferOverflow in GridFS upload.
...
AsyncInputStreamAdapter now properly splits and buffers incoming DataBuffers according the read requests of AsyncInputStream.read(…) calls.
Previously, the adapter used the input buffer size to be used as the output buffer size. A larger DataBuffer than the transfer buffer handed in through read(…) caused a BufferOverflow.
Original Pull Request: #799
2019-10-31 12:49:18 +01:00
Mark Paluch
0facdcfa98
DATAMONGO-2393 - Use drain loop for same-thread processing in GridFS download stream.
...
We now rely on an outer drain-loop when GridFS reads complete on the same thread instead of using recursive subscriptions to avoid StackOverflow. Previously, we recursively invoked subscriptions that lead to an increased stack size.
Original Pull Request: #799
2019-10-31 12:48:55 +01:00
Christoph Strobl
837a9885f2
DATAMONGO-2399 - Upgrade to MongoDB Java Driver 3.11.1
2019-10-30 10:47:47 +01:00
Mark Paluch
6cc5bc627a
DATAMONGO-2388 - Polishing.
...
Use StringJoiner to create comma-delimited String. Add nullability annotations.
Original pull request: #797 .
2019-10-28 10:58:17 +01:00
Christoph Strobl
84f7f433f7
DATAMONGO-2388 - Fix CodecConfigurationException when reading index info that contains DbRef.
...
Provide the default CodecRegistry when converting partial index data to its String representation used in IndexInfo.
Original pull request: #797 .
2019-10-28 10:47:22 +01:00
Mark Paluch
7df9e932f7
DATAMONGO-2390 - Polishing.
...
Reformat code.
Original pull request: #800 .
2019-10-28 10:10:26 +01:00
Christoph Strobl
5308e6c37f
DATAMONGO-2390 - Polishing.
...
Switch touched test files to JUnit Jupiter.
Original pull request: #800 .
2019-10-28 10:07:16 +01:00
Christoph Strobl
bc1c6c9a64
DATAMONGO-2390 - Add support for maxTimeMS to AggregationOptions.
...
maxTimeMs defines the time limit for the aggregation operations. If not specified or set to zero, operations will not time out.
Original pull request: #800 .
2019-10-28 10:07:08 +01:00
Mark Paluch
62006129ca
DATAMONGO-2394 - Polishing.
...
Reformat code.
Original pull request: #798 .
2019-10-28 09:31:53 +01:00