Commit Graph

327 Commits

Author SHA1 Message Date
Michael Reiche
0e8d5a255a DATACOUCH-588 - Part 2 of framework changes. Add support for projection and distinct. (#1040)
Support for projection is only for properties of the top-level entity. For instance, in UserSubmission, only the properties below can be specified in the projection. Projection support does not provide means of specifying something like address.street - you can only project (or not project) the whole address property. However, the address type in your resultType could have a subset of the properties in Address.

If the corresponding submissions in the resultType contained only the userId property

public class UserSubmission extends ComparableEntity {
	private String id;
	private String username;
	private List<String> roles;
	private Address address;
	private List<Submission> submissions;

Support for Distinct - I have appropriated the MongoDB model for Distinct.  It defines a separate DistinctOperationSupport class (within ExecutableFindByQuerySupport) which supports the distinct( distinctFields ) api and execution. The DistinctOperationSupport class has only a distinctFields member, and a 'delegate' member, which is an ExecutableFindByQuerySupport object. TBH, I don't see the advantage over simply adding a distinctFields member to ExecutableFindByQuerySupport

Amend #1 - changes as discussed in Pull Request
         - clean up test entity types

Amend #2
- Eliminate DistinctOperationSupport class. In MongoDB, only distinct on a single field is supported, so the returnType from distinct was very different from the returnType of other query operations (all(), one() etc. (but so is count(), and it doesn't need it's own class)). In Couchbase, distinct on any fields in the entity is allowed - so the returned type could be the domainType or resultType. And as(resultType) still allows any resultType to be specified. This makes it unnecessary to have combinations of interfaces such as DistinctWithProjection and DistinctWithQuery.

- Clean up the interfaces in ExecutableFindByQuery. There are two types of interfaces (a) the TerminatingFindByQuery which has the one(), oneValue() first(), firstValue(), all(), count(), exists() and stream(); and (b) the option interfaces (FindByQueryWithConsistency etc), which are essentially with-er interfaces. The changes are:
1) make all the with-er interfaces base interfaces instead of chaining them together. (I don't know why there isn't simply one interface with all the with-er methods).
2) make the ExecutableFindByQuery interface extend the Terminating interface and all the with-er interfaces.

Amend #3
- Add execution support for collections

Amend #4
- Add tests for collections. This includes a new CollectionAwareIntegrationTests class which extends a new JavaIntegratationTests class which extends the existing ClusterAwareIntegrationTests.
- Fixed up several issues collections issues that were uncovered by the tests.
- Did further cleanup of OperationSupport interfaces.

Amend #5
- Revert changes to interfaces in *Operation
- Sorted interfaces in same order for consistency (because of the chaining of interfaces, fluent methods must be called in order).

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2021-01-14 11:03:20 -08:00
Christoph Strobl
a4e6027f01 After release cleanups.
See #978
2021-01-13 15:47:00 +01:00
Christoph Strobl
6574c55133 Prepare next development iteration.
See #978
2021-01-13 15:46:59 +01:00
Christoph Strobl
a61f4df636 Release version 4.2 M2 (2021.0.0).
See #978
2021-01-13 15:34:04 +01:00
Christoph Strobl
1738028359 Prepare 4.2 M2 (2021.0.0).
See #978
2021-01-13 15:33:34 +01:00
Michael Reiche
3364e0fa7f DATACOUCH-588 - Refactoring part 1 of n. (#278)
* DATACOUCH-588 - Implement pageable and realign repo query

This implements pageable for non-reactive queries and
realigns reactive queries with other spring-data projects
to facilitate the implementaion of pageable (done) and other
types of queries such as projection and distinct (not yet
done)

* DATACOUCH-588 - Implement pageable and realign repo query

This implements pageable for non-reactive queries and
realigns reactive queries with other spring-data projects
to facilitate the implementaion of pageable (done) and other
types of queries such as projection and distinct (not yet
done)

* DATACOUCH-588 - Refactoring part 1 of n.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-21 13:48:50 -08:00
Greg L. Turnquist
f7b6765c30 DATACOUCH-664 - Use Docker hub credentials for all CI jobs. 2020-12-15 11:56:56 -06:00
Mark Paluch
599e4a4250 DATACOUCH-640 - After release cleanups. 2020-12-09 15:32:21 +01:00
Mark Paluch
419cad7ae4 DATACOUCH-640 - Prepare next development iteration. 2020-12-09 15:32:17 +01:00
Mark Paluch
5a2826f852 DATACOUCH-640 - Release version 4.2 M1 (2021.0.0). 2020-12-09 15:21:57 +01:00
Mark Paluch
93fc6891fa DATACOUCH-640 - Prepare 4.2 M1 (2021.0.0). 2020-12-09 15:21:30 +01:00
Michael Reiche
d592758ae0 DATACOUCH-660 - Upgrade Couchbase Java SDK to 3.1.0 for 4.2. (#282)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-08 00:27:57 -08:00
Mark Paluch
94e6308123 DATACOUCH-650 - Polishing.
Reorder methods. Remove superfluous final keyword. Reformat pom. Fix dependency to Spring Data Commons.

Original pull request: #279.
2020-11-25 11:48:04 +01:00
Jens Schauder
3aeff66a3b DATACOUCH-650 - Implements CrudRepository and ReactiveCrudRepository.deleteById(Iterable<ID> ids).
Original pull request: #279.
2020-11-25 11:47:49 +01:00
Mark Paluch
aa0a9623b2 DATACOUCH-635 - After release cleanups. 2020-10-28 16:10:25 +01:00
Mark Paluch
e4777dd280 DATACOUCH-635 - Prepare next development iteration. 2020-10-28 16:10:22 +01:00
Mark Paluch
3c69b45854 DATACOUCH-635 - Release version 4.1 GA (2020.0.0). 2020-10-28 15:46:57 +01:00
Mark Paluch
6a51b0c573 DATACOUCH-635 - Prepare 4.1 GA (2020.0.0). 2020-10-28 15:46:33 +01:00
Christoph Strobl
97eda5441b DATACOUCH-612 - After release cleanups. 2020-10-14 14:48:48 +02:00
Christoph Strobl
242ce87628 DATACOUCH-612 - Prepare next development iteration. 2020-10-14 14:48:46 +02:00
Christoph Strobl
46cf6f1d78 DATACOUCH-612 - Release version 4.1 RC2 (2020.0.0). 2020-10-14 14:28:56 +02:00
Christoph Strobl
192fb27b60 DATACOUCH-612 - Prepare 4.1 RC2 (2020.0.0). 2020-10-14 14:27:38 +02:00
Michael Reiche
3cccf1f2c3 DATACOUCH-634 - Upgrade Couchbase Java SDK to 3.0.9. (#271)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-13 14:58:22 -07:00
Mark Paluch
07c28fe7fe DATACOUCH-601 - After release cleanups. 2020-09-16 14:05:29 +02:00
Mark Paluch
a32f2df5d0 DATACOUCH-601 - Prepare next development iteration. 2020-09-16 14:05:26 +02:00
Mark Paluch
bd4ca4cb6f DATACOUCH-601 - Release version 4.1 RC1 (2020.0.0). 2020-09-16 13:57:43 +02:00
Mark Paluch
b69fcb8afe DATACOUCH-601 - Prepare 4.1 RC1 (2020.0.0). 2020-09-16 13:57:09 +02:00
Mark Paluch
0b79dabfc7 DATACOUCH-607 - Upgrade to Couchbase SDK 3.0.8. 2020-09-14 15:15:32 +02:00
Mark Paluch
ddeca8868b DATACOUCH-578 - After release cleanups. 2020-08-12 12:00:24 +02:00
Mark Paluch
ff193996a7 DATACOUCH-578 - Prepare next development iteration. 2020-08-12 12:00:21 +02:00
Mark Paluch
8799ab0aed DATACOUCH-578 - Release version 4.1 M2 (2020.0.0). 2020-08-12 11:52:07 +02:00
Mark Paluch
a047126c36 DATACOUCH-578 - Prepare 4.1 M2 (2020.0.0). 2020-08-12 11:51:41 +02:00
Mark Paluch
88492c743b DATACOUCH-599 - Upgrade to Couchbase SDK 3.0.7. 2020-08-10 11:15:48 +02:00
Mark Paluch
8107f984cc DATACOUCH-586 - Upgrade to Couchbase Driver 3.0.6. 2020-07-22 08:55:23 +02:00
Mark Paluch
3c6f245802 DATACOUCH-548 - After release cleanups. 2020-06-25 11:58:24 +02:00
Mark Paluch
8d8dd6a03d DATACOUCH-548 - Prepare next development iteration. 2020-06-25 11:58:21 +02:00
Mark Paluch
324056d933 DATACOUCH-548 - Release version 4.1 M1 (2020.0.0). 2020-06-25 11:48:51 +02:00
Mark Paluch
1053a9b929 DATACOUCH-548 - Prepare 4.1 M1 (2020.0.0). 2020-06-25 11:48:20 +02:00
Michael Nitschinger
7ea8284b6f DATACOUCH-562 - Upgrade Couchbase SDK to 3.0.5 2020-06-09 13:59:12 +02:00
Mark Paluch
3f3bd9d1a8 DATACOUCH-530 - After release cleanups. 2020-05-12 12:40:31 +02:00
Mark Paluch
a5a28b42fd DATACOUCH-530 - Prepare next development iteration. 2020-05-12 12:40:29 +02:00
Mark Paluch
5cd52331a7 DATACOUCH-530 - Release version 4.0 GA (Neumann). 2020-05-12 12:28:24 +02:00
Mark Paluch
80afd8dd4f DATACOUCH-530 - Prepare 4.0 GA (Neumann). 2020-05-12 12:28:01 +02:00
Mark Paluch
e1adafc851 DATACOUCH-544 - Upgrade to Couchbase SDK 3.0.3. 2020-05-12 09:22:15 +02:00
Mark Paluch
ebb8d39afd DATACOUCH-514 - After release cleanups. 2020-04-28 15:11:43 +02:00
Mark Paluch
460d9a71be DATACOUCH-514 - Prepare next development iteration. 2020-04-28 15:11:42 +02:00
Mark Paluch
39fa5a906b DATACOUCH-514 - Release version 4.0 RC2 (Neumann). 2020-04-28 15:03:53 +02:00
Mark Paluch
14044c0f68 DATACOUCH-514 - Prepare 4.0 RC2 (Neumann). 2020-04-28 15:03:33 +02:00
Michael Nitschinger
a8980c8cf9 DATACOUCH-517 - Update SDK to 3.0.3 2020-04-13 09:03:42 +02:00
Mark Paluch
0eaf1c7c65 DATACOUCH-512 - After release cleanups. 2020-03-31 15:08:05 +02:00