profile
viewpoint
Christoph Strobl christophstrobl Pivotal Software, Inc. Linz, Austria https://twitter.com/stroblchristoph

christophstrobl/spring-data-solr-showcase 84

Sample Spring MVC Application demonstrating usage of Spring Data Solr.

mp911de/microbenchmark-runner 53

JUnit extensions to launch JMH benchmarks from your IDE during development

springone2gx2015/whats-new-in-spring-data 20

Sample code for the "What's new in Spring Data?" session at SpringOne 2015

SpringOnePlatform2016/whats-new-in-spring-data 15

Sample code for the "What's new in Spring Data?" session at SpringOne 2016

christophstrobl/going-reactive-with-spring-data 6

Demo application for reactive data access with Spring Data and Spring Framework 5.

christophstrobl/mongodb-bookstore 5

SpringBoot application outlining usage of different MongoDB Data Models for atomic operations / transactions. Referring to and extending the MongoDB Model Data for Atomic Operations example.

christophstrobl/spring-data-reactive-demo 2

Spring Data Ractive Demo application for non blocking data access.

christophstrobl/spring-data-redis 2

Provides support to increase developer productivity in Java when using Redis, a key-value store. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2476

created branch time in 15 hours

create barnchspring-projects/spring-data-redis

branch : issue/DATAREDIS-1084

created branch time in 17 hours

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 35214b9dd5a0cd9c9e7eae9a9cea54beb9e55bed

SO-60250019 - Add test.

view details

push time in 2 days

create barnchspring-projects/spring-data-mongodb

branch : issue/SO-60250019

created branch time in 2 days

issue openedlettuce-io/lettuce-core

Use domain specific value object as return type for xpending.

Feature Request

interface RedisStreamCommands<K,V> {

    // instead of: List<Object> xpending(K key, K group); 
    PendingMessagesSummary xpending(K key, K group);

    // instead of: List<Object> xpending(K key, K group, Range<String> range, Limit limit); 
    List<PendingMessage> xpending(K key, K group, Range<String> range, Limit limit)
}
interface RedisStreamReactiveCommands<K,V> {

    // instead of: Flux<Object> xpending(K key, K group); 
    Mono<PendingMessagesSummary> xpending(K key, K group);

    // instead of: List<Object> xpending(K key, K group, Range<String> range, Limit limit); 
    Flux<PendingMessage> xpending(K key, K group, Range<String> range, Limit limit)
}

Is your feature request related to a problem? Please describe

xpending uses List<Object> | Flux<Object> that require the user to run the result through the PendingParser to extract PendingMessages or List<PendingMessage> from the command result.

In a reactive scenario this requires to collectList() the command output first, to then pass it on. Because null values are omitted a result like

127.0.0.1:6379> "XPENDING" "key-1" "my-group"
1) (integer) 0
2) (nil)
3) (nil)
4) (nil)

ends up as [0, []] where it should have been [0, null, null, []]. This causes trouble with the PendingParser. Additionally the values (all ByteBuffer or List containing ByteBuffer) have to be converted into the correct format to pass type casts within the PendingParser.

Describe the solution you'd like

Change the method signature and apply required parsing internally. Drawback: breaking API change.

Describe alternatives you've considered

change nothing - let the user deal with it (not recommended)

Teachability, Documentation, Adoption, Migration Strategy

would be way easier than:

reactiveClient.xpending(key, grup).collectList().map(it -> {

	ArrayList<Object> fixMissingNulls = new ArrayList<>(it);
	if (fixMissingNulls.size() == 2 && fixMissingNulls.get(1) instanceof List) {
		fixMissingNulls.add(1, null);
		fixMissingNulls.add(1, null);
	}
        List<Object> target = fixMissingNulls.stream()
		.map(LettuceConverters::preConvertNativeValues) // convert ByteBuffer to String/Long/... believe me you don't want to see this ;)
                .collect(Collectors.toList());
        return PendingParser.parser(target);	
});

created time in 5 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha f153399c3b383f142e9de67abaad4fd46dedd175

DATAMONGO-2474 - Upgrade to MongoDB driver 4.0.0-rc0.

view details

push time in 5 days

delete branch spring-projects/spring-data-redis

delete branch : issue/DATAREDIS-1096

delete time in 7 days

push eventspring-projects/spring-data-redis

Mark Paluch

commit sha 871c6713dde35b823b74cfb0091b76d6dc2b1e21

DATAREDIS-1096 - Move off deprecated Lettuce API. Original Pull Request: #510

view details

Christoph Strobl

commit sha bbb4e10a851d5647d87bd08ffb1295bec0fe3d0d

DATAREDIS-1096 - Polishing. Remove unused imports and transition to java.time API. Original Pull Request: #510

view details

push time in 7 days

PR closed spring-projects/spring-data-redis

DATAREDIS-1095 - Use Flux.usingWhen(…) in DefaultReactiveScriptExecutor.execute(…)

We now consistently use Flux.usingWhen(…) to obtain and release Redis connections without blocking the calling thread.


Related ticket: DATAREDIS-1095.

+20 -19

0 comment

4 changed files

mp911de

pr closed time in 8 days

delete branch spring-projects/spring-data-redis

delete branch : issue/DATAREDIS-1095

delete time in 8 days

push eventspring-projects/spring-data-redis

Mark Paluch

commit sha 349e37a4a9f8f8a06078d4dd0df477178c9038df

DATAREDIS-1095 - Use Flux.usingWhen(…) in DefaultReactiveScriptExecutor.execute(…). We now consistently use Flux.usingWhen(…) to obtain and release Redis connections without blocking the calling thread. Original Pull Request: #509

view details

push time in 8 days

push eventspring-projects/spring-data-redis

Mark Paluch

commit sha f3fd59ad965a8fda1c2607e119f2c5a4f49aaeb5

DATAREDIS-1095 - Use Flux.usingWhen(…) in DefaultReactiveScriptExecutor.execute(…). We now consistently use Flux.usingWhen(…) to obtain and release Redis connections without blocking the calling thread. Original Pull Request: #509

view details

Mark Paluch

commit sha 68f2b6e83ad41a305770d475b666b404acef9bc2

DATAREDIS-1095 - Polishing. Move off deprecated methods. Original Pull Request: #509

view details

push time in 8 days

push eventspring-projects/spring-data-redis

Mark Paluch

commit sha 87bbee4310f2ff5e721a14df6339c26169092d94

DATAREDIS-1095 - Use Flux.usingWhen(…) in DefaultReactiveScriptExecutor.execute(…). We now consistently use Flux.usingWhen(…) to obtain and release Redis connections without blocking the calling thread. Original Pull Request: #509

view details

Mark Paluch

commit sha 86bdbb70a145d00384776f2a944e3077a1146700

DATAREDIS-1095 - Polishing. Move off deprecated methods. Original Pull Request: #509

view details

Mark Paluch

commit sha 9ddc60f3e1001e3f9fa28f284625928b46434a11

DATAREDIS-1095 - Polishing. Use .as(StepVerifier::create) syntax in tests. Original Pull Request: #509

view details

push time in 8 days

PR closed spring-projects/spring-data-keyvalue

Reviewers
DATAKV-290 - Synchronize creation of keyspace map

The method getKeySpaceMap in MapKeyValueAdapter does not synchronize creation of the key space map. This results in data loss if multiple threads attempt to create the keyspace map as the map will be overwritten in the store after data is saved.

To resolve, adding the keyspace map to the store should be synchronized.

+1 -13

5 comments

1 changed file

Skylark95

pr closed time in 8 days

pull request commentspring-projects/spring-data-keyvalue

DATAKV-290 - Synchronize creation of keyspace map

Thank you @Skylark95! That's been merged to master via dc936f7.

Skylark95

comment created time in 8 days

push eventspring-projects/spring-data-keyvalue

Derek Cochran

commit sha dc936f7267b02f768075ca863901fa41af810737

DATAKV-290 - Synchronize creation of keyspace map. Original Pull Request: #47

view details

push time in 8 days

PR closed spring-projects/spring-data-commons

DATACMNS-1665 - Consider store conversions as ConverterRegistrationIntent

Store converters are now properly considered as registration candidates.


Related ticket: DATACMNS-1665.

+35 -2

0 comment

3 changed files

mp911de

pr closed time in 8 days

delete branch spring-projects/spring-data-commons

delete branch : issue/DATACMNS-1665

delete time in 8 days

push eventspring-projects/spring-data-commons

Mark Paluch

commit sha 148c859be661659c011d2b2add1d395b5d65da38

DATACMNS-1665 - Consider store conversions as ConverterRegistrationIntent. Store converters are now properly considered as registration candidates. Original Pull Request: #430

view details

push time in 8 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 837a9885f2707f364e4bea03da37f11d1f35c3d3

DATAMONGO-2399 - Upgrade to MongoDB Java Driver 3.11.1

view details

Mark Paluch

commit sha 0facdcfa9859f780b2d700bce7350dd5f176f712

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

view details

Mark Paluch

commit sha 48176a833c173febb7d24ae7dc1b9a630eb9b674

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

view details

Mark Paluch

commit sha c6592b01b0c99f2e8967a5a3f11749ea9398e10a

DATAMONGO-2393 - Polishing. Extract read requests into inner class. Original Pull Request: #799

view details

Mark Paluch

commit sha 839aecee84b196bd6659868cea858bdf9af11019

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

view details

Christoph Strobl

commit sha 30d99445e24bea40012be20bcd4dba5e2f632031

DATAMONGO-2393 - Remove capturing lambdas and extract methods. Original Pull Request: #799

view details

Christoph Strobl

commit sha 18cf94dc346c46d63824bdfad9728cc3df49060c

DATAMONGO-2381 - Updated changelog.

view details

Christoph Strobl

commit sha ead7679f212bfbb3a52d197846398abb75eb16f6

DATAMONGO-2382 - Updated changelog.

view details

Christoph Strobl

commit sha b014fe4c7cb6d69662fb82e1de607e16dafc67fa

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.

view details

Mark Paluch

commit sha 0e0b45597b62725cfcfa2f9dfeab44c19a4271bc

DATAMONGO-2403 - Polishing. Use handle(…) to skip values instead of flatMap(…) to reduce overhead. Original pull request: #804.

view details

Christoph Strobl

commit sha 1e8c4cec5b4d87f3a4d1677afd58be6ddd8d6898

DATAMONGO-2409 - Fix return type of Kotlin extension function for ReactiveFindOperation.DistinctWithProjection.asType(). Original pull request: #805.

view details

Mark Paluch

commit sha f7a010827de51fad91b255f120a616e05cfeaa8d

DATAMONGO-2409 - Polishing. Adapt also ExecutableFindOperation.DistinctWithProjection.asType() to return the appropriate TerminatingDistinct. Original pull request: #805.

view details

Christoph Strobl

commit sha ff601491668fcf2829ed028e407a9a298e8591d5

DATAMONGO-2385 - Remove unnecessary null checks in MongoConverters. Original pull request: #802.

view details

Mark Paluch

commit sha 9eaf67148de725de598d3c43de1bec62c6b69c1a

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.

view details

Christoph Strobl

commit sha 32cbae0e5f813fb662f8fb0f54d9c642f25d983d

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.

view details

Christoph Strobl

commit sha cc07a1bbb483885f9268351d4588b1f0722908d5

DATAMONGO-2331 - Guard test execution. Original pull request: #789.

view details

Mark Paluch

commit sha 1a5de2e1db939f7b35579f11815894fd637fc227

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.

view details

Mark Paluch

commit sha aede7c9cadd2bc24af5a53afbd5c6bce9c6946aa

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

view details

Mark Paluch

commit sha f7e527e45c202ee6489fd74da096f55340decdbc

DATAMONGO-2414 - Polishing. Use longer timeout to cater for slower CI environments. Original Pull Request: #807

view details

Christoph Strobl

commit sha d652b2bdb464bcebdd6c27aee9319d1f729413a0

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

view details

push time in 8 days

PR opened spring-projects/spring-data-mongodb

DATAMONGO-2341 - Support shard key in template.save via Sharded annotation.

Spring Data MongoDB uses the @Sharded annotation to identify entities stored in sharded collections. The shard key consists of a single or multiple properties present in every document within the target collection, and is used to distribute them across shards.

Spring Data MongoDB will do best effort optimisations for sharded scenarios when using repositories by adding required shard key information, if not already present, to replaceOne filter queries when upserting entities. This may require an additional server round trip to determine the actual value of the current shard key.

By setting @Sharded(immutableKey = true) no attempt will be made to check if an entities shard key changed.

Please see the MongoDB Documentation for further details and the list below for which operations are eligible to auto include the shard key.

  • Reactive/CrudRepository.save(...)
  • Reactive/CrudRepository.saveAll(...)
  • Reactive/MongoTemplate.save(...)
+1097 -28

0 comment

24 changed files

pr created time in 9 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 993018feb1fb8c865e5d3ea73a4e9a06b1588377

DATAMONGO-2461 - Efficient resource usage and ci related improvments. - Give the server a little time to think on ci system. - Reuse and Close MongoClients in tests. - Use WriteConcern majority in setup. - Use longer transaction timeout on server - Use junit-pioneer to repeatable tests known to fail due to network errors. Original pull request: #831.

view details

Mark Paluch

commit sha 0b77906a831033b494212133fa87e35ec0193362

DATAMONGO-2461 - Polishing. Extend Javadoc. Reformat code. Reduce log level to info. Refactor resource disposal to use Store.CloseableResource. Original pull request: #831.

view details

Christoph Strobl

commit sha 3b6880edfd91d9012ffbcdf9573a91b13e8a2779

DATAMONGO-2400 - Consider java.time.Instant a store supported native type and add configuration options for other java.time types. We now use the MongoDB Java driver InstantCodec instead of a dedicated converter. Other java.time types like LocalDate use a different zone offset when writing values which can lead to unexpected behavior. Therefore we added configuration options to MongoCustomConversions that allow to tell the conversion sub system which approach to use when writing those kind of types. Original pull request: #810.

view details

Mark Paluch

commit sha e9d14f41a54acd71125e39ec26916e4a42bbd74e

DATAMONGO-2400 - Polishing. Adapt to changes in commons. Add functional create method to MongoCustomConversions. Update Javadoc and reference documentation. Truncate precision for Java 11 build compatibility in tests. Original pull request: #810.

view details

Christoph Strobl

commit sha ae2543fc2014e9ced9630ecdbc3703a96724ef84

DATAMONGO-2341 - Prepare issue branch.

view details

Christoph Strobl

commit sha a318d0f011fcf5cc6e3f51e72e8d846f97612221

DATAMONGO-2341 - Support shard key in template.save via @Sharded annotation. Spring Data MongoDB uses the @Sharded annotation to identify entities stored in sharded collections as shown below. The shard key consists of a single or multiple properties present in every document within the target collection, and is used to distribute them across shards. Spring Data MongoDB will do best effort optimisations for sharded scenarios when using repositories by adding required shard key information, if not already present, to replaceOne filter queries when upserting entities. This may require an additional server round trip to determine the actual value of the current shard key. By setting @Sharded(immutableKey = true) no attempt will be made to check if an entities shard key changed. Please see the MongoDB Documentation for further details and the list below for which operations are eligible to auto include the shard key. * Reactive/CrudRepository.save(...) * Reactive/CrudRepository.saveAll(...) * Reactive/MongoTemplate.save(...)

view details

push time in 9 days

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2341

created branch time in 11 days

PR closed spring-projects/spring-data-mongodb

DATAMONGO-2079 - MappingMongoConverter no longer implements ValueResolver

MappingMongoConverter no longer implements a package-private interface so that converter instances can be proxied.


Related ticket: DATAMONGO-2079.

Should be backported to 2.1.x and 2.2.x. 6946c24 should be merged only for 3.0.

+15 -16

2 comments

6 changed files

mp911de

pr closed time in 15 days

delete branch spring-projects/spring-data-mongodb

delete branch : issue/DATAMONGO-2079

delete time in 15 days

push eventspring-projects/spring-data-mongodb

Mark Paluch

commit sha 1f5553d2d8d9ac601c8ce586cfefb9d701d54500

DATAMONGO-2079 - MappingMongoConverter no longer implements ValueResolver. MappingMongoConverter no longer implements a package-private interface so that converter instances can be proxied. Original Pull Request: #832

view details

push time in 15 days

push eventspring-projects/spring-data-mongodb

Mark Paluch

commit sha cd714b1ba847bf5be5348af1bb0ad39403bf5fe0

DATAMONGO-2079 - MappingMongoConverter no longer implements ValueResolver. MappingMongoConverter no longer implements a package-private interface so that converter instances can be proxied. Original Pull Request: #832

view details

push time in 15 days

push eventspring-projects/spring-data-mongodb

Mark Paluch

commit sha f6c62d6e2f58ab57add1330e413b8c372f3148fc

DATAMONGO-2079 - MappingMongoConverter no longer implements ValueResolver. MappingMongoConverter no longer implements a package-private interface so that converter instances can be proxied. Original Pull Request: #832

view details

Mark Paluch

commit sha dd15bbc5c10cfa1c866314ff00efbad388361619

DATAMONGO-2079 - Reduce visibility of MappingMongoConverter.getValueInternal. Do not expose a method that is used internally. Original Pull Request: #832

view details

push time in 15 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 5f86292e65e4363a5886a2bb9c8534705c7314d4

DATAMONGO-2203 - Add tests.

view details

push time in 15 days

create barnchspring-projects/spring-data-mongodb

branch : issue/2.1.x/DATAMONGO-2203

created branch time in 15 days

PR closed spring-projects/spring-data-mongodb

DATAMONGO-2417 - Typesafe Kotlin Extension for distinct queries

We now provide extensions for imperative and reactive distinct queries accepting Kotlin's KProperty and KProperty1 to express type-safe queries:

mongo.query<Customer>().distinct(Customer::name)

mongo.distinct(Customer::name)

Related ticket: DATAMONGO-2417.

+97 -4

0 comment

8 changed files

mp911de

pr closed time in 15 days

delete branch spring-projects/spring-data-mongodb

delete branch : issue/DATAMONGO-2417

delete time in 15 days

push eventspring-projects/spring-data-mongodb

Mark Paluch

commit sha 2c9956723e3994a5981c2e6f617d860139ceb78c

DATAMONGO-2417 - Typesafe Kotlin Extension for distinct queries. We now provide extensions for imperative and reactive distinct queries accepting Kotlin's KProperty and KProperty1 to express type-safe queries: mongo.query<Customer>().distinct(Customer::name) mongo.distinct(Customer::name) Original Pull Request: #809

view details

Christoph Strobl

commit sha 632c499cf1a54a3c3e42b36d01e81a18bf3fde04

DATAMONGO-2417 - Update Copyright headers of Kotlin extensions and test. Original Pull Request: #809

view details

push time in 15 days

PR closed spring-projects/spring-data-redis

DATAREDIS-538 - Allow @TimeToLive methods that are not accessible by default.

We allow now the use of non-public classes with a @TimeToLive method and @TimeToLive on non-public methods.


Related ticket: DATAREDIS-538

+30 -1

0 comment

3 changed files

mp911de

pr closed time in 16 days

delete branch spring-projects/spring-data-redis

delete branch : issue/DATAREDIS-538

delete time in 16 days

push eventspring-projects/spring-data-redis

Mark Paluch

commit sha e62ecbb1a9c777f61ce1afc9f49f9ee90f3f5059

DATAREDIS-538 - Allow @TimeToLive methods that are not accessible by default. We allow now the use of non-public classes with a @TimeToLive method and @TimeToLive on non-public methods. Original Pull Request: #231

view details

push time in 16 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha ecc9f3fd607941c8113a3668d62c01e9f0e54d29

DATAMONGO-2457 - Fix id type explanation in repository documentation. Original pull request: #829.

view details

Christoph Strobl

commit sha 29053154526dbbdcd5467cbba39f13bb4abc6a8c

DATAMONGO-2459 - Add sample for passing on limit and offset using reactive repositories. Original pull request: #829.

view details

Mark Paluch

commit sha 708466b323be91c5d125e4adeb8e6f84f05dfd60

DATAMONGO-2459 - Polishing. Slightly tweak wording. Original pull request: #829

view details

Christoph Strobl

commit sha 80da9e21ed083dae61fde326e22dbf32b25bde3e

DATAMONGO-2406 - Derived reactive deleteBy query execution should allow Mono<Void> result. Mono<Void> is now a supported return type of derived reactive deleteBy queries like: Mono<Void> deleteByLastname(String lastname); Original pull request: #825.

view details

Mark Paluch

commit sha 0a2ea88f3c96b4555f98bb4967f7e8e98e755dae

DATAMONGO-2406 - Polishing. Add optimization for Mono. Original pull request: #825.

view details

Christoph Strobl

commit sha c56a13ad009805946bd38d9fb2b1334259fbfff3

DATAMONGO-1997 - Add support to return the single deleted item for a deleteBy query method. Added support for: @Nullable Person deleteSingleByLastname(String lastname); Optional<Person> deleteByBirthdate(Date birthdate); Mono<Person> deleteSinglePersonByLastname(String lastname); Original pull request: #826.

view details

Mark Paluch

commit sha 44017485fc0a77f9d78660eab31b989cfc18ab34

DATAMONGO-1997 - Polishing. Tweak documentation. Reformat code. Remove commented code. Original pull request: #826.

view details

Mark Paluch

commit sha c21b35973dad64dd6852fc79ab1cc7eb8620f3c8

DATAMONGO-2462 - Move off deprecated EntityInstantiators. We now use the newly introduced EntityInstantiator at o.s.d.mapping.model and moved off the deprecated one in o.s.d.convert.

view details

Christoph Strobl

commit sha 0bc0fff24ec29b1bd8b0def1f9555802f55c4b7c

DATAMONGO-2365 - Pass on index name to query hint. Original pull request: #828.

view details

Christoph Strobl

commit sha c7f9274480e163369bbfab5053c4944a3103ba5e

DATAMONGO-2365 - Extract common functionality to centralized component. Share common code paths between reactive and imperative implementation. Original pull request: #828.

view details

Mark Paluch

commit sha f8ee9648da1d976f3de18916ff0fca3e8ad10b84

DATAMONGO-2365 - Polishing. Reformat code. Fix method name and generics. Whitespaces. Original pull request: #828.

view details

Christoph Strobl

commit sha 85519eb84d5a42b5478d99483d5ac158fd1202b5

DATAMONGO-2449 - Evaluate allowDiskUse added to Meta annotation when executing derived Aggregation. @Meta(allowDiskUse...) allows to set the according aggregation option when executing a String based annotation via a repository definition. Original pull request: #827.

view details

Mark Paluch

commit sha 46806a5606edde68781c8b1aabe426a9a8b674ff

DATAMONGO-2449 - Polishing. Reformat code. Tweak Javadoc. Original pull request: #827.

view details

Christoph Strobl

commit sha 291d84591cd982394b3cb6d5fc453dd4691dd314

DATAMONGO-2460 - Fix target type computation for complex id properties with @Field annotation. We now set the target type to org.bson.Document for id properties annotated with @Field having the implicit target type derived from the annotation. Along the lines we fixed warn message when an id property with explicit (unsupported) field name is detected. Original pull request: #830.

view details

Mark Paluch

commit sha 073668b1d16221242bba73fd1bd0e35ee2066f05

DATAMONGO-2460 - Polishing. Reformat code. Use diamond syntax. Original pull request: #830.

view details

LiangYong

commit sha f69ddb6c61d68b522a8af59fce36d314ddbc6113

DATAMONGO-2464 - Fix code examples in reference documentation. fixed repository miss "{" issue. Original pull request: #816.

view details

Mark Paluch

commit sha d0c2c820d712a98d77ca03641afaff50150bbb44

DATAMONGO-2464 - Polishing. Apply fix also to reactive MongoDB repository documentation. Original pull request: #816.

view details

Christoph Strobl

commit sha 735e93dbd6958dba6a6c2feb7ff5754672ad0662

DATAMONGO-Prepare issue branch.

view details

Christoph Strobl

commit sha 9ea616af516ad691930b2bad8353129f199a4098

DATAMONGO-2461 - Efficient resource usage and ci related improvments. - Give the server a little time to think on ci system. - Reuse and Close MongoClients in tests. - Use WriteConcern majority in setup. - Use longer transaction timeout on server - Use junit-pioneer to repeatable tests known to fail due to network errors.

view details

push time in 16 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 557d769e8cc419e195b270291e3817daf2144ead

hcaking

view details

push time in 16 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 1643f8ef1d59efa03211c58992e27b04eb4865ea

RepeateFailedTest does not work with SpringExtension

view details

push time in 16 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 696d0aee9c1c7a65cf4d2e269a9bfd70f211f0cc

hacking: Retry tests on failure

view details

push time in 16 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 653949aacfad72539d0571673d0e95833cc58d96

please please please

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 53891b9308d2cd18da33acc070c0e62dd5d23379

Hacking: Disable test on ci

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 4759b63c73836a962576e15cfbc5dfcdf5550d5f

Hacking: fix http url

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 514fddef3ce6a49f9a85a40a084b30398a6cd0ba

Hacking: Silence Mockito

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 8cd381cb59656e5da86ab9bdc8e96eeb05963c46

hacking: disable test on ci

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 727338332ff6fd17e28fda5aeb88d8cc9020eb8b

hacking: disable test on ci

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 172f39c86ad976b86d1982b097e087a59e88f396

Hacking: use flux merge

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 13fa2b9c735b363c3bb34785a4d427fdf75108a6

Give the transaction lock timeout a try

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 84950c678eed1948c68a6dc93ed7794f91bf6817

Hacking: Add Junit5 Extension for MongoClients

view details

push time in 19 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 42c7afead0695f0e14eaefb317e800340f1a05fd

Hacking: Add Junit5 Extension for MongoClients

view details

push time in 20 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha fa49209a28b7a09a5594572c9541af48481c4542

Hacking: longer transaction timeout

view details

push time in 21 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha a1761cdc949d5740bf7e3d941fbbb24f7b9a8b00

Hacking: More resource sharing

view details

push time in 21 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 0a908d2ca892bb36d201f328d000ebfb39156267

Hacking: Update writeConcern in infrastructure setup

view details

push time in 21 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 34ef6dc117beb3eedf19a41807a4229b4b333229

Hacking: Reuse and Close MongoClients in tests.

view details

Christoph Strobl

commit sha be4d9c27dd5937149492c06c9db8d596ed8c8536

Hacking: Print ServerAddress in case of connection failure to disk.

view details

push time in 21 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha b7132820f25ecb486b2b22381b64d208ea3c9393

Hacking: Give the server a little time to think.

view details

push time in 21 days

Pull request review commentspring-projects/spring-boot

Upgrade to SpringData MongoDB 3.0 and MongoDB Java Driver 4.0 beta1

+/*+ * Copyright 2019 the original author or authors.+ *+ * Licensed under the Apache License, Version 2.0 (the "License");+ * you may not use this file except in compliance with the License.+ * You may obtain a copy of the License at+ *+ *      https://www.apache.org/licenses/LICENSE-2.0+ *+ * Unless required by applicable law or agreed to in writing, software+ * distributed under the License is distributed on an "AS IS" BASIS,+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+ * See the License for the specific language governing permissions and+ * limitations under the License.+ */+package org.springframework.boot.autoconfigure.mongo;++import java.util.Collections;+import java.util.List;++import com.mongodb.ConnectionString;+import com.mongodb.MongoClientSettings;+import com.mongodb.MongoClientSettings.Builder;+import com.mongodb.MongoCredential;+import com.mongodb.MongoDriverInformation;+import com.mongodb.ServerAddress;++import org.springframework.core.env.Environment;+import org.springframework.util.Assert;++/**+ * Base class for common setup bits (aka {@link MongoClientSettings}) required for+ * instantiating a MongoClient.+ *+ * @author Christoph Strobl+ * @since 2.3.0+ */+public abstract class MongoClientFactorySupport<T> {++	private final MongoProperties properties;++	private final Environment environment;++	private final List<MongoClientSettingsBuilderCustomizer> builderCustomizers;++	public MongoClientFactorySupport(MongoProperties properties, Environment environment,+			List<MongoClientSettingsBuilderCustomizer> builderCustomizers) {+		this.properties = properties;+		this.environment = environment;+		this.builderCustomizers = (builderCustomizers != null) ? builderCustomizers : Collections.emptyList();+	}++	public T createMongoClient(MongoClientSettings settings) {+		MongoClientSettings targetSettings = computeClientSettings(settings);+		return (getEmbeddedPort() != null) ? createEmbeddedMongoClient(targetSettings)+				: createNetworkMongoClient(targetSettings);+	}++	private MongoClientSettings computeClientSettings(MongoClientSettings settings) {++		Builder settingsBuilder = (settings != null) ? MongoClientSettings.builder(settings)+				: MongoClientSettings.builder();+		applyHostAndPort(settingsBuilder);+		applyCredentials(settingsBuilder);++		customize(settingsBuilder);+		return settingsBuilder.build();+	}++	private void applyHostAndPort(MongoClientSettings.Builder settings) {++		if (isEmbedded()) {+			settings.applyConnectionString(new ConnectionString("mongodb://localhost:" + getEmbeddedPort()));+			return;+		}+		if (!this.properties.determineUri().equals(MongoProperties.DEFAULT_URI)) {+			if (hasCustomAddress()) {+				Assert.state(this.properties.getUri() == null,

It seems to be a mismatch that existed between the reactive and imperative implementation. If you remove that if statement ReactiveMongoClientFactoryTests.uriCannotBeSetWithHostPort will fail which contradicts MongoPropertiesTests.uriOverridesHostAndPort.

christophstrobl

comment created time in 21 days

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 010e8eb3a66016920aa1e6944f68ec4f0859e838

Hacking: give --setParameter enableTestCommands=1 a spin.

view details

push time in 22 days

delete branch spring-projects/spring-data-mongodb

delete branch : flakey-ci

delete time in 22 days

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2461

created branch time in 22 days

create barnchspring-projects/spring-data-mongodb

branch : flakey-ci

created branch time in 22 days

PR opened spring-projects/spring-boot

Update to MongoDB Driver 4.0 beta1 and Spring Data Neumann-Snapshots

Upgrade to Spring Data MongoDB 3.0 (Neumann). The update requires MongoDB Driver 4.0 (beta1 at this time).

Switch from com.mongodb.MongoClient and com.mongodb.MongoClientOptions to com.mongodb.client.MongoClient & com.mongodb.MongoClientSettings and share code paths for MongoClientSettings between reactive and imperative configuration.

Closes: #19356

+320 -366

0 comment

26 changed files

pr created time in 22 days

push eventchristophstrobl/spring-boot

Christoph Strobl

commit sha e56186554a44744c9d2e6b7a66a558102e2941e1

Update to MongoDB Driver 4.0 beta1 and Spring Data Neumann-Snapshots

view details

push time in 22 days

push eventchristophstrobl/spring-boot

Spring Buildmaster

commit sha e5303ab755a2dbf0dc3bf9f9c88534b47e404bfe

Next development version (v2.1.12.BUILD-SNAPSHOT)

view details

Spring Buildmaster

commit sha 5b92cd841d505d23c456e068d753b308127f11a0

Next development version (v2.2.3.BUILD-SNAPSHOT)

view details

dreis2211

commit sha b1158bf35d4be6a871530d18f404b4fd511b6bb2

Simplify some Stream API usages See gh-19291

view details

Stephane Nicoll

commit sha 9136f54a5c091c4845a61d0281d751cd8feb0870

Merge pull request #19291 from dreis2211 * pr/19291: Simplify some Stream API usages Closes gh-19291

view details

Stephane Nicoll

commit sha 20bebdc07d874fb622d52a8ce699eec7981a496c

Merge branch '2.2.x' Closes gh-19331

view details

Filip Hrisafov

commit sha c108d2d01190ee527411f34b50ed6dec39ce2cc0

Detect DirContextAuthenticationStrategy bean This commit improves the LDAP auto-configuration to detect if a DirContextAuthenticationStrategy bean is defined and, if so, associates it with the auto-configured `LdapContextSource`. See gh-19328

view details

Stephane Nicoll

commit sha aa821151bb7a01f603c6c760438693a2da1f8438

Polish "Detect DirContextAuthenticationStrategy bean" See gh-19328

view details

Stephane Nicoll

commit sha e2a8017aff1ec0e0a604073c731a0473c167db28

Merge pull request #19328 from filiphr * pr/19328: Polish "Detect DirContextAuthenticationStrategy bean" Detect DirContextAuthenticationStrategy bean Closes gh-19328

view details

Jorge Cordoba

commit sha f22d0c7d8e1c677b516300e543cc5128f12aff5d

Add missing assertion to SampleTestApplicationWebIntegrationTests.test() See gh-19326

view details

Stephane Nicoll

commit sha cd085e0641c47490e771625202a648e4de0970fa

Polish contribution See gh-19326

view details

Stephane Nicoll

commit sha bf397412e6e7d7f4ffd218c55b939509107481d0

Merge pull request #19326 from jcordoba95 * pr/19326: Polish contribution Add missing assertion to SampleTestApplicationWebIntegrationTests.test() Closes gh-19326

view details

Stephane Nicoll

commit sha 01753ab5a011396629107b34d42b8241782627da

Merge branch '2.1.x' into 2.2.x Closes gh-19358

view details

Stephane Nicoll

commit sha 2c38f09911fa275e66c1792e9676ac0b81ae3c16

Merge branch '2.2.x' Closes gh-19359

view details

dreis2211

commit sha 29b602d6a08a4a7686e79d0e307c83ae78e19448

Fix link to Vaadin Spring Boot starter See gh-19338

view details

Stephane Nicoll

commit sha 283b60d24b6a7b08abc97830be6e7969cd5ee604

Merge pull request #19338 from dreis2211 * pr/19338: Fix link to Vaadin Spring Boot starter Closes gh-19338

view details

Stephane Nicoll

commit sha fc35384b037ed0ecb95f4b2b355942aee8cd7aa0

Merge branch '2.1.x' into 2.2.x Closes gh-19360

view details

Stephane Nicoll

commit sha 1d3554de060afc7cb02256d1fc709e5b6a26134e

Merge branch '2.2.x' Closes gh-19361

view details

dreis2211

commit sha 207a5c5022a34387e2f79e44c01774ca6bff3f0e

Link consistently to Tomcat 9.0 docs See gh-19340

view details

Stephane Nicoll

commit sha d93206f5c66cdf9642d4d13f1e89b5182a813058

Merge pull request #19340 from dreis2211 * pr/19340: Link consistently to Tomcat 9.0 docs Closes gh-19340

view details

Stephane Nicoll

commit sha c3ae8bcfdc2be7a6797b606a3b6ef6efdcd3381a

Merge branch '2.1.x' into 2.2.x Closes gh-19362

view details

push time in 22 days

PR opened spring-projects/spring-data-mongodb

DATAMONGO-2460 - Fix target type computation for complex id properties with @Field annotation.

We now set the target type to org.bson.Document for id properties annotated with @Field having the implicit target type derived from the annotation. Along the lines we fixed warning when an id property with explicit (unsupported) field name is detected.

+37 -6

0 comment

6 changed files

pr created time in 22 days

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2460

created branch time in 22 days

push eventchristophstrobl/technologieplauscherl.github.io

Christoph Strobl

commit sha e61b0943dbfb33f16af20fa3ba062bd465348cc6

Add next eJUG Event to community.yml

view details

push time in 22 days

issue commentspring-projects/spring-boot

Upgrade to SpringData MongoDB 3.0 and MongoDB Java Driver 4.0

SD-MongoDB 4.0 (beta1) driver changes are on master now. I'll update https://github.com/christophstrobl/spring-boot/tree/mongo-driver-4_0 and open a PR.

christophstrobl

comment created time in 23 days

PR closed spring-projects/spring-data-redis

DATAREDIS-611 - Add overloads accepting Duration and Instant

We revised our imperative Template API by accepting Duration and Instant types in addition to methods accepting timeout/TimeUnit respective Date.


Related ticket: DATAREDIS-611.

+258 -23

0 comment

8 changed files

mp911de

pr closed time in 23 days

delete branch spring-projects/spring-data-redis

delete branch : issue/DATAREDIS-611

delete time in 23 days

push eventspring-projects/spring-data-redis

Mark Paluch

commit sha 31d4730222247dc106866c1db5b45166f3a3363e

DATAREDIS-611 - Add overloads accepting Duration and Instant. We revised our imperative Template API by accepting Duration and Instant types in addition to methods accepting timeout/TimeUnit respective Date. Original Pull Request: #501

view details

Christoph Strobl

commit sha 75fcb0ec3df3b44b0fbc15a81aaea0c6293934f6

DATAREDIS-611 - Update Javadoc and remove superfluous negativity limitations. Original Pull Request: #501

view details

push time in 23 days

PR opened spring-projects/spring-data-mongodb

DATAMONGO-2457, DATAMONGO-2457 - Documentation update.

Fix id type explanation in repository documentation. Add sample for passing on limit and offset using reactive repositories.

+25 -6

0 comment

6 changed files

pr created time in 23 days

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2457

created branch time in 23 days

create barnchspring-projects/spring-data-redis

branch : issue/DATAREDIS-1079

created branch time in a month

PR opened spring-projects/spring-data-mongodb

DATAMONO-2365 - Pass on index name to query hint.

along the lines extract some common functionality to centralized component.

+886 -302

0 comment

12 changed files

pr created time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 45a0d01bf262092e807311087d06fd89a9cf219a

DATAMONGO-2365 - Extract common functionality to centralized component. Share common code paths between reactive and imperative implementation.

view details

push time in a month

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2365

created branch time in a month

PR opened spring-projects/spring-data-mongodb

DATAMONGO-2449 - Evaluate allowDiskUse added to Meta annotation when executing derived Aggregation.

In some scenarios aggregations might require additional options like a maximum execution time, additional log comments or the permission to temporarily write data to disk. Use the @Meta annotation to set those options via maxExecutionTimeMs, comment or allowDiskUse.

public interface PersonRepository extends CrudReppsitory<Person, String> {

  @Meta(allowDiskUse = true)
  @Aggregation("{ $group: { _id : $lastname, names : { $addToSet : $firstname } } }")
  List<PersonAggregate> groupByLastnameAndFirstnames();
}
+87 -10

0 comment

10 changed files

pr created time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 63bc2dbf8bf71ea26035ba814de4606188cf42f3

DATAMONGO-2449 - Evaluate allowDiskUse added to Meta annotation when executing derived Aggregation. @Meta(allowDiskUse...) allows to set the according aggregation option when executing a String based annotation via a repository definition.

view details

push time in a month

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2449

created branch time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha e6d4054f6fd49537036d87c63ac731109f705817

hacking

view details

push time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 3b019de9680c455190f8bc3be8f5d52062ec9c5a

hacking

view details

push time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha bb10f935f77bc424215d04b95263aed62303702a

DATAMONGO-2427 - Enable disabled tests.

view details

Christoph Strobl

commit sha 518dd83dbb656f6636ac64e69484c146747aabcf

DATAMONGO-2427 - Use WriteConcern.MAJORITY in tests.

view details

Christoph Strobl

commit sha a264b183c6c4f549b10f2c8ff3d8f48a476293bd

hacking

view details

push time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 4413f65cb703932dc399f54eba4fd6a55af52a13

hacking

view details

push time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 09b11fafa5a7e68af1570ab5a918a704a0814c3c

DATAMONGO-2427 - Enable disabled tests.

view details

Christoph Strobl

commit sha 35615451d1cb44416b4428b7a66751f9961c82b2

DATAMONGO-2427 - Use WriteConcern.MAJORITY in tests.

view details

push time in a month

push eventspring-projects/spring-data-mongodb

Mark Paluch

commit sha cbf87e6e493f84152394c9bf592646a1145595e4

DATAMONGO-2383 - Updated changelog.

view details

Mark Paluch

commit sha fca1a79f81da215e9d243c23c296c1f8922cc46a

DATAMONGO-2383 - Prepare 3.0 M1 (Neumann).

view details

Mark Paluch

commit sha a1fbe31551da8e5720bbe0b6387afe876de5fe55

DATAMONGO-2383 - Release version 3.0 M1 (Neumann).

view details

Mark Paluch

commit sha f2fb05662ff26173e42b3f7ea3db1520a781c16c

DATAMONGO-2383 - Prepare next development iteration.

view details

Mark Paluch

commit sha 44e6f5fa3f80e2de4f78f021788884b605834d02

DATAMONGO-2383 - After release cleanups.

view details

Mark Paluch

commit sha 62be436569acc52dc4650af800da24c4f5640903

DATAMONGO-2454 - Updated changelog.

view details

Mark Paluch

commit sha 8394523645dfa2a67f042b89366b9abeeb589bb3

DATAMONGO-2454 - Prepare 3.0 M2 (Neumann).

view details

Mark Paluch

commit sha 83307c424f2d4045af9ce4601868acd7ef4011b5

DATAMONGO-2454 - Release version 3.0 M2 (Neumann).

view details

Mark Paluch

commit sha 1a19e140ee0952bc82a24c02fdbeff18191b18a4

DATAMONGO-2454 - Prepare next development iteration.

view details

Mark Paluch

commit sha 5b8037a0adc5a092292813363b334280df53a05d

DATAMONGO-2454 - After release cleanups.

view details

Christoph Strobl

commit sha 89b9ca9bfd1fec1312ded5b1c8f85ebd40c75fe8

DATAMONGO-2427 - Prepare issue branch.

view details

Christoph Strobl

commit sha 624239924e0d3b09065b278a945ee6d0bf76a95b

DATAMONGO-2427 - Upgrade to MongoDb 4.0 Driver Snapshot This change switches to the MongoDB 4.0 driver and introduces configuration options for com.mongodb.client.MongoClient. The XML namespace changed from client-options to client-settings and removed already deprecated elements and attributes. Imports are switched from single artifact uber jar to split imports for driver-core, -sync and -reactivestreams. Deprecations have been removed.

view details

Mark Paluch

commit sha 036886dbe7794aee869be92c53b73ed838a796bc

DATAMONGO-2427 - Rename MongoDbFactory to MongoDatabaseFactory. Rename to follow MongoDB's naming scheme. Re-introduce deprecated MongoDbFactory to aid migration.

view details

Mark Paluch

commit sha 78b95c6208509e6bc30f300ebec744d5779c2e74

DATAMONGO-2427 - Polishing. Replace leftovers to Mongo 2.x API with Document and MongoDatabase references and tweak Javadoc. Reorder field declarations to class header. Reflect 3.0 versions in schema configuration. Add TODO markers to disabled tests. Reflect changes in documentation. Enable disabled test.

view details

Mark Paluch

commit sha 66fb62bc72ddb7916296107f7398f6227fd79f9a

DATAMONGO-2427 - Disable flakey test.

view details

Christoph Strobl

commit sha 8304fd4dd506e05080509f29a49765e6a626eb04

DATAMONGO-2427 - Update GridFS API to use MongoDB native ByteBuffer Publisher API and introduce UUID format configuration options. Move from AsyncInputStream handling to Publisher for GridFS. UUID types require additional configuration setup to prevent errors while processing legacy (type 3) binary types. We still use type 3 as default but allow codec configuration for type 4 via Java and XML configuration. Updated migration guide.

view details

Christoph Strobl

commit sha d3358e41e43013d7825adaf64c2c5f05015286be

DATAMONGO-2427 - Update ReactiveGridFS after driver fix for JAVARS-224.

view details

Christoph Strobl

commit sha 5773696032aeee7f10a568b3de379e55bcdb9faf

DATAMONGO-2427 - Switch to MongoDB Driver 4.0.0-beta1

view details

Christoph Strobl

commit sha a6b9497c47bbb5b59b28ef0c6e833b13a561b3b1

DATAMONGO-2427 - Use WriteConcern.JOURNALED in tests.

view details

push time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha 2ea9d675abaeb56114a4b1f89e8622f85b36044e

DATAMONGO-2427 - Switch to MongoDB Driver 4.0.0-beta1

view details

push time in a month

PR opened spring-projects/spring-data-mongodb

DATAMONGO-1997 - Add support to return the single deleted item for a deleteBy query method.

Added support for:

@Nullable
Person deleteSingleByLastname(String lastname);

Optional<Person> deleteByBirthdate(Date birthdate);

Mono<Person> deleteSinglePersonByLastname(String lastname);
+100 -10

0 comment

11 changed files

pr created time in a month

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-1997

created branch time in a month

PR opened spring-projects/spring-data-mongodb

DATAMONGO-2406 - Derived reactive deleteBy query execution should allow Mono<Void> result.

Mono<Void> is now a supported return type of derived reactive deleteBy queries like:

Mono<Void> deleteByLastname(String lastname);
+29 -4

0 comment

6 changed files

pr created time in a month

create barnchspring-projects/spring-data-mongodb

branch : issue/DATAMONGO-2406

created branch time in a month

PR closed spring-projects/spring-data-mongodb

Update README.adoc unlikely waiting for feedback

Using CrudRepository needs add the maven dependency called spring-data-jpa

<!--

Thank you for proposing a pull request. This template will guide you through the essential steps necessary for a pull request. Make sure that:

-->

  • [x] You have read the Spring Data contribution guidelines.
  • [x] There is a ticket in the bug tracker for the project in our JIRA.
  • [x] You use the code formatters provided here and have them applied to your changes. Don’t submit any formatting related changes.
  • [x] You submit test cases (unit or integration tests) that back your changes.
  • [x] You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).
+5 -0

4 comments

1 changed file

stefango

pr closed time in a month

PR closed spring-projects/spring-data-mongodb

DATAMONGO-2427 - Upgrade to MongoDB Driver 4.0 (Snapshot)

DO NOT MERGE - Work in Progress - Feedback welcome!

This change switches to the MongoDB 4.0 driver and introduces configuration options for com.mongodb.client.MongoClient. The XML namespace changed from client-options to client-settings and removed already deprecated elements and attributes.

Imports are switched from single artifact uber jar to split imports for driver-core, -sync and -reactivestreams.

Deprecations have been removed.

Bump version to 3.0 (Move current iteration @since 2.3 tags to 3.0 as well)

Changed Java API

Type Comment
MongoClientFactoryBean Creates com.mongodb.client.MongoClient instead of com.mongodb.MongoClient. Uses MongoClientSettings instead of MongoClientOptions.
MongoDataIntegrityViolationException Uses WriteConcernResult instead of WriteResult.
BulkOperationException Uses MongoBulkWriteException and com.mongodb.bulk.BulkWriteError instead of BulkWriteException and com.mongodb.BulkWriteError
ReactiveMongoClientFactoryBean Uses com.mongodb.MongoClientSettings instead of com.mongodb.async.client.MongoClientSettings
ReactiveMongoClientSettingsFactoryBean Now produces com.mongodb.MongoClientSettings instead of com.mongodb.async.client.MongoClientSettings

Removed Java API

2.x Replacement in 3.x Comment
MongoClientOptionsFactoryBean MongoClientSettingsFactoryBean Creating a com.mongodb.MongoClientSettings.
AbstractMongoConfiguration AbstractMongoClientConfiguration (Available since 2.1) Using com.mongodb.client.MongoClient.
MongoDbFactory#getLegacyDb() - -
SimpleMongoDbFactory SimpleMongoClientDbFactory (Available since 2.1) -
MapReduceOptions#getOutputType() MapReduceOptions#getMapReduceAction() Returns MapReduceAction instead of MapReduceCommand.OutputType.
Meta\|Query maxScan & snapshot - -

Changed XML Namespace Elements and Attributes:

Element / Attribute 2.x 3.x
<mongo:mongo-client /> Used to create a com.mongodb.MongoClient Now exposes a com.mongodb.client.MongoClient
<mongo:mongo-client replica-set="..." /> Was a comma delimited list of replica set members (host/port) Now defines the replica set name. Use <mongo:client-settings cluster-hosts="..." /> instead
<mongo:db-factory writeConcern="..." /> NONE, NORMAL, SAFE, FSYNC_SAFE, REPLICAS_SAFE, MAJORITY W1, W2, W3, UNAKNOWLEDGED, AKNOWLEDGED, JOURNALED, MAJORITY

Removed XML Namespace Elements and Attributes:

Element / Attribute Replacement in 3.x Comment
<mongo:db-factory mongo-ref="..." /> <mongo:db-factory mongo-client-ref="..." /> Referencing a com.mongodb.client.MongoClient.
<mongo:mongo-client credentials="..." /> <mongo:mongo-client credential="..." /> Single authentication data instead of list.
<mongo:client-options /> <mongo:client-settings /> See com.mongodb.MongoClientSettings for details.

New XML Namespace Elements and Attributes:

Element Comment
<mongo:db-factory mongo-client-ref="..." /> Replacement for <mongo:db-factory mongo-ref="..." />
<mongo:db-factory connection-string="..." /> Replacement for uri and client-uri.
<mongo:mongo-client connection-string="..." /> Replacement for uri and client-uri.
<mongo:client-settings /> Namespace element for com.mongodb.MongoClientSettings.
+4418 -3676

1 comment

201 changed files

christophstrobl

pr closed time in a month

pull request commentspring-projects/spring-data-mongodb

DATAMONGO-2427 - Upgrade to MongoDB Driver 4.0 (Snapshot)

superseded by: #823

christophstrobl

comment created time in a month

PR opened spring-projects/spring-data-mongodb

DATAMONGO-2427 - Upgrade to MongoDB Driver 4.0 Snapshot

This ⚠️ breaking ⚠️ change switches to the MongoDB 4.0 driver and introduces configuration options for com.mongodb.client.MongoClient. The XML namespace changes from client-options to client-settings and removes already deprecated elements and attributes.

Imports are switched from single artifact uber jar (mongo-java-driver) to split imports for driver-core, -sync and -reactivestreams (one of the latter 2 required).

API deprecations from previous versions have now been removed.

Changed Java API

Type Comment
MongoClientFactoryBean Creates com.mongodb.client.MongoClient instead of com.mongodb.MongoClient. Uses MongoClientSettings instead of MongoClientOptions.
MongoDataIntegrityViolationException Uses WriteConcernResult instead of WriteResult.
BulkOperationException Uses MongoBulkWriteException and com.mongodb.bulk.BulkWriteError instead of BulkWriteException and com.mongodb.BulkWriteError
ReactiveMongoClientFactoryBean Uses com.mongodb.MongoClientSettings instead of com.mongodb.async.client.MongoClientSettings
ReactiveMongoClientSettingsFactoryBean Now produces com.mongodb.MongoClientSettings instead of com.mongodb.async.client.MongoClientSettings

Removed Java API

2.x Replacement in 3.x Comment
MongoClientOptionsFactoryBean MongoClientSettingsFactoryBean Creating a com.mongodb.MongoClientSettings.
AbstractMongoConfiguration AbstractMongoClientConfiguration (Available since 2.1) Using com.mongodb.client.MongoClient.
MongoDbFactory#getLegacyDb() - -
SimpleMongoDbFactory SimpleMongoClientDbFactory (Available since 2.1) -
MapReduceOptions#getOutputType() MapReduceOptions#getMapReduceAction() Returns MapReduceAction instead of MapReduceCommand.OutputType.
Meta\|Query maxScan & snapshot - -

Changed XML Namespace Elements and Attributes:

Element / Attribute 2.x 3.x
<mongo:mongo-client /> Used to create a com.mongodb.MongoClient Now exposes a com.mongodb.client.MongoClient
<mongo:mongo-client replica-set="..." /> Was a comma delimited list of replica set members (host/port) Now defines the replica set name. Use <mongo:client-settings cluster-hosts="..." /> instead
<mongo:db-factory writeConcern="..." /> NONE, NORMAL, SAFE, FSYNC_SAFE, REPLICAS_SAFE, MAJORITY W1, W2, W3, UNAKNOWLEDGED, AKNOWLEDGED, JOURNALED, MAJORITY

Removed XML Namespace Elements and Attributes:

Element / Attribute Replacement in 3.x Comment
<mongo:db-factory mongo-ref="..." /> <mongo:db-factory mongo-client-ref="..." /> Referencing a com.mongodb.client.MongoClient.
<mongo:mongo-client credentials="..." /> <mongo:mongo-client credential="..." /> Single authentication data instead of list.
<mongo:client-options /> <mongo:client-settings /> See com.mongodb.MongoClientSettings for details.

New XML Namespace Elements and Attributes:

Element Comment
<mongo:db-factory mongo-client-ref="..." /> Replacement for <mongo:db-factory mongo-ref="..." />
<mongo:db-factory connection-string="..." /> Replacement for uri and client-uri.
<mongo:mongo-client connection-string="..." /> Replacement for uri and client-uri.
<mongo:client-settings /> Namespace element for com.mongodb.MongoClientSettings.

UUID Type Changes

The MongoDB UUID representation can now be configured with different formats. This has to be done via MongoClientSettings as shown in the snippet below.

class Config extends AbstractMongoClientConfiguration {

    @Override
    public void configureClientSettings(MongoClientSettings.Builder builder) {
        builder.uuidRepresentation(UuidRepresentation.STANDARD);
    }

    // ...
}

Supersedes: #812

+3790 -3681

0 comment

187 changed files

pr created time in a month

push eventspring-projects/spring-data-mongodb

Christoph Strobl

commit sha d824f3b8b2138673ef8fba2d6be702c974521661

DATAMONGO-2437 - Fix complex id handling when reading aggregation results. Removed Unwrapping complex id values. Template.aggregate now behaves like aggregateStream or its reactive counterpart. Original pull request: #821.

view details

Mark Paluch

commit sha 284f547e993748b0c420d79cfa36447b0cc7c43a

DATAMONGO-2437 - Polishing. Mention changes in Aggregation _id handling in what's new. Reformat code. Original pull request: #821.

view details

Mark Paluch

commit sha bcc2c94e036e00072ad19df43744323ee5f316aa

DATAMONGO-2440 - Polishing. Replace SpringJUnit4ClassRunner with SpringRunner. Original pull request: #821.

view details

Christoph Strobl

commit sha fb499f8c698ec9763d0c4346a98031deec9971b4

DATAMONGO-2450 - Apply array filters to bulk write. Original pull request: #820.

view details

Mark Paluch

commit sha 48f51d0fb06cd0273ecd78ca01de6ee0301e58dd

DATAMONGO-2450 - Polishing. Replace stream with for-loop. Original pull request: #820.

view details

Mark Paluch

commit sha 3a5876537bb8a2a8d6bb32098f14ff7512a9003f

DATAMONGO-2431 - Updated changelog.

view details

Christoph Strobl

commit sha ab5b1f01409b301483a0692a9417522731ce40a5

DATAMONGO-2451 - Fix value conversion for id properties used in sort expression. Previously we falsely converted the sort value (1/-1) into the id types target value when a Field annotation had been present. Original pull request: #822.

view details

Mark Paluch

commit sha af133c26d0922025e299e267d15419f23f12d785

DATAMONGO-2432 - Updated changelog.

view details

Christoph Strobl

commit sha 91e0a5c0620e1143859b98244f09f2ea7cc40fbd

DATAMONGO-2427 - Prepare issue branch.

view details

Christoph Strobl

commit sha d897e2c0ef49062b233c432b8d1a8fe490d959a5

DATAMONGO-2427 - Upgrade to MongoDb 4.0 Driver Snapshot This change switches to the MongoDB 4.0 driver and introduces configuration options for com.mongodb.client.MongoClient. The XML namespace changed from client-options to client-settings and removed already deprecated elements and attributes. Imports are switched from single artifact uber jar to split imports for driver-core, -sync and -reactivestreams. Deprecations have been removed.

view details

Mark Paluch

commit sha 6375a3684fb6b80625f5fb9ab7559b6cc09aaab1

DATAMONGO-2427 - Rename MongoDbFactory to MongoDatabaseFactory. Rename to follow MongoDB's naming scheme. Re-introduce deprecated MongoDbFactory to aid migration.

view details

Mark Paluch

commit sha b44514c74c410f20cc53bb5e734e9b04280bfa30

DATAMONGO-2427 - Polishing. Replace leftovers to Mongo 2.x API with Document and MongoDatabase references and tweak Javadoc. Reorder field declarations to class header. Reflect 3.0 versions in schema configuration. Add TODO markers to disabled tests. Reflect changes in documentation. Enable disabled test.

view details

Mark Paluch

commit sha dcb07c445fdd699587e9ab025509c5300a0d2049

DATAMONGO-2427 - Disable flakey test.

view details

Christoph Strobl

commit sha fedfacf6992072ad0917c8033cc3c5ae9b0727be

DATAMONGO-2427 - Update GridFS API to use MongoDB native ByteBuffer Publisher API and introduce UUID format configuration options. Move from AsyncInputStream handling to Publisher for GridFS. UUID types require additional configuration setup to prevent errors while processing legacy (type 3) binary types. We still use type 3 as default but allow codec configuration for type 4 via Java and XML configuration. Updated migration guide.

view details

Christoph Strobl

commit sha 126cdbcc15a27022007eae6cdfa3106398abc1b2

DATAMONGO-2427 - Update ReactiveGridFS after driver fix for JAVARS-224.

view details

push time in a month

more