Commit Graph

826 Commits

Author SHA1 Message Date
Michael Reiche
03ad3697ae DATACOUCH-550 - Autoindexing does not work spring-boot application. (#297)
Due to the interdependencies of beans, autoindexing does not work
in the startup of a normal spring-boot application. Processing of
entities occurs during the initialization of CouchbaseMappinContext,
which occurs before initialization of MappingCouchbaseConverter,
which occurs before the initialization of CouchbaseTemplate -
which creates the indexCreator listener. So when the
AbstractMappingContext (CouchbaseMappingContext) is publishing
MappingContextEvents - there is not yet any indexCreator.
And subsequent processing of entities finds the entities cached,
and therefore does not publish MappingContextEvents. This change
overrides the addPersistentEntity() and getPersistentEntity()
methods of AbstractMappingContext such that caching does not
preven the MappingContextEvents from being published.  This change
also exposes indexCreator classesSeen map to CouchbaseMappingContext
so that once an entity has been processed by indexCreator, it is
not published again.

Autoindexing by SpringJUnitConfig did work prior to this change.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-16 15:02:46 -08:00
mikereiche
6c6dc13de4 DATACOUCH-677 - Revert "Datacouch 550 autoindex not working in spring boot app (#295)"
This reverts commit 8ebb81b62d.
2020-12-16 14:58:06 -08:00
Michael Reiche
8ebb81b62d Datacouch 550 autoindex not working in spring boot app (#295)
* DATACOUCH-550 Autoindexing only works from SpringJunitConfig

Due to the interdependency in bean creation, Autoindexing does not
work in a normal spring-boot application. This change overrides
the addPersistentEntity and getPersistentEntity of CouchbaseMappingContext
to avoid entries cached before the indexCreator was listening from
preventing MappingContextEvents from being published after the indexCreator
is listening. It also exposes the indexCreators classesSeen map so that
MappingEvents for an entity are not re-published after the indexCreator
has seen them.

* DATACOUCH-550 - Autoindexing does not work spring-boot application.

Due to the interdependencies of beans, autoindexing does not work
in the startup of a normal spring-boot application. Processing of
entities occurs during the initialization of CouchbaseMappinContext,
which occurs before initialization of MappingCouchbaseConverter,
which occurs before the initialization of CouchbaseTemplate -
which creates the indexCreator listener. So when the
AbstractMappingContext (CouchbaseMappingContext) is publishing
MappingContextEvents - there is not yet any indexCreator.
And subsequent processing of entities finds the entities cached,
and therefore does not publish MappingContextEvents. This change
overrides the addPersistentEntity() and getPersistentEntity()
methods of AbstractMappingContext such that caching does not
preven the MappingContextEvents from being published.  This change
also exposes indexCreator classesSeen map to CouchbaseMappingContext
so that once an entity has been processed by indexCreator, it is
not published again.

Autoindexing by SpringJUnitConfig did work prior to this change.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-16 14:23:24 -08:00
Greg L. Turnquist
f7b6765c30 DATACOUCH-664 - Use Docker hub credentials for all CI jobs. 2020-12-15 11:56:56 -06:00
Michael Reiche
608b013de8 DATACOUCH-675 - Factor out interfaces for common methods. (#293)
Added interfaces for apis on core objects which are common among
many objects. For instance withExpiry and withExpirty on all the
insert/replace/upsert/remove objects.  The definition of an interface
simplyfies testing of all the possible combinations - instead of having
four (or eight, counting Reactive), there is one interface to test
them all.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-14 13:50:04 -08:00
Michael Reiche
0494247cb1 DATACOUCH-526 - N1qlJoinResolver not escaping bucketNames with special characters (#291)
It escape the first bucket name, but not the second one.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-09 23:50:26 -08:00
Michael Reiche
662a84bba6 DATACOUCH-672 - reinstate replace expiry tests (#289)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-09 08:44:23 -08:00
Michael Reiche
69e0a1dc33 DATACOUCH-666 - Handle immutable entity in replace. (#288)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-09 08:44:17 -08:00
Michael Reiche
bce764c712 DATACOUCH-630 - Add expiry to replace 4.2.x (#287)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-09 07:56:08 -08:00
Mark Paluch
af51c27015 DATACOUCH-648 - Updated changelog. 2020-12-09 16:47:44 +01: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
Mark Paluch
83e3e3af9c DATACOUCH-640 - Updated changelog. 2020-12-09 15:21:27 +01:00
Mark Paluch
d325d98a4a DATACOUCH-638 - Updated changelog. 2020-12-09 12:42:28 +01:00
Mark Paluch
214d0765cd DATACOUCH-637 - Updated changelog. 2020-12-09 09:59:13 +01:00
Michael Reiche
3c59af3cc8 DATACOUCH-661 - Fix integrations tests from 650. (#281)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-08 00:30:45 -08: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
Michael Reiche
8c1a24c619 DATACOUCH-653 - Update example versions in documentation. (#280)
The format has changed as well. The release versions no longer have
the .RELEASE suffix - they are just the version number (i.e. 4.1.1)
And the snapshot versions have the suffix -SNAPSHOT (i.e. 4.2.0-SNAPSHOT)
instead of 4.1.0.BUILD-SNAPSHOT

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-12-04 10:25:58 -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
605285188b DATACOUCH-639 - Updated changelog. 2020-11-11 12:34:41 +01:00
Mark Paluch
851dcb0c8a DATACOUCH-641 - Enable Maven caching for Jenkins jobs. 2020-10-30 08:33:19 +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
Mark Paluch
3d52b583b8 DATACOUCH-635 - Updated changelog. 2020-10-28 15:46:28 +01:00
Mark Paluch
7c5be60f9e DATACOUCH-611 - Updated changelog. 2020-10-28 15:03:04 +01:00
Mark Paluch
29c37ba80d DATACOUCH-610 - Updated changelog. 2020-10-28 12:15:06 +01:00
Mark Paluch
eb35485f2d DATACOUCH-636 - Updated changelog. 2020-10-28 11:32:32 +01:00
Greg L. Turnquist
b170c3e3f3 DATACOUCH-614 - Use JDK 15 for latest CI jobs. 2020-10-26 13:01:45 -05:00
Michael Reiche
182d45ab6e DATACOUCH-625 - Save doesn't return updated entity if immutable. (#274)
Modified applyUpdatedCas() to return accessor.getBean() which will
occur if the version property is Immutable.
Created applyUpdateId() that is analogous to applyUpdatedCas()
Factored out the equals() method that was used by a number of
test entity objects.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-22 10:54:43 -07:00
Haris Alesevic
a85720c8f4 DATACOUCH-619 - FindByMatchingQuery integration test
Verify that findByQuery works as expected (fixed as part of DATACOUCH-603)
2020-10-14 14:55:40 -07:00
Michael Reiche
1955cf45cd DATACOUCH-626 - Handle reading into entity with only all-args constructor; version primative type.
The version arg - which is not in the document - will be passed
into the constructor as a null which will fail if it is a primitive
type. This change will pre-populated the converted object with
the version/cas, so that it is not null.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-14 14:54:01 -07: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
Christoph Strobl
cc15cd50c8 DATACOUCH-612 - Updated changelog. 2020-10-14 14:27:37 +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
Michael Reiche
0ce0f36b49 DATACOUCH-623 - Add replace() method to CouchbaseRepository for CAS usage. (#268)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-12 17:16:01 -07:00
Michael Reiche
7c431d640f DATACOUCH-583 - Nested properties in queries not working. (#270)
The complete property path was being quoted instead of the individual
components.  ie.  `address.street` instead of `address`.`street`
Also fixed another issue - changed the maybeQuote() method for
property names to correctly look for back-tics instead of double
quotes and changed the name accordingly.

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-12 13:22:19 -07:00
Michael Reiche
ed02ed535e DATACOUCH-632 - Fix compilation error introduced in DATACOUCH-603. (#269)
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-09 18:04:03 -07:00
Michael Reiche
1b5c32150e DATACOUCH-603 Do not cast query parameters in N1qlQueryCreator.
For IN and NOT_IN - they can take varargs, an array or a JsonArray
Don't cast query criteria parameters, let parameter accessor handle that.
Fixed conversion of query criteria values to parameters
Cleaned up QueryCriteria

Co-authored-by: mikereiche <michael.reiche@couchbase.com>
2020-10-09 14:59:16 -07:00
mikereiche
e72cdba6ee DATACOUCH-616 - Fix parsing of String Query containing conditionals in quotes
For a query as below that has conditional portions, the parsing for
parameters was being done before the conditional portions were being
resolved, which left the parameters between quotes where they wre
not being recognized as query parameters.

@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} " +
	" #{#projectIds != null ? 'AND iata IN $1' : ''} ")
Long count(@Param("projectIds") List<String> projectIds)
2020-10-05 10:45:40 -07:00
mikereiche
82edad5759 DATACOUCH-605 - Support ScanConsistency in n1ql queries 2020-10-05 10:14:03 -07:00
Haris Alesevic
fab72ee9c9 DATACOUCH-615 Use query in removeByQuery (#264)
* DATACOUCH-615 Use query in removeByQuery

Use provided query instead of hardcoded statement.

* DATACOUCH-615 Better method naming in Query class

* DATACOUCH-615 Replace hard-coded meta fields

* DATACOUCH-615 Test findByQuery.matching

* DATACOUCH-615 Remove failing test
2020-10-05 10:11:37 -07:00
mikereiche
2a06578145 DATACOUCH-620 - Fix nested object id/@Id issue.
Only treat the id (or @Id) field in top-level objects as the id.
2020-10-05 10:01:15 -07:00