Omit annotations from the repository and domaintype in
CrudMethodMetadata as they may be different for the same method.
The annotations from the repository and domaintype are obtained directly
in CouchbaseRepositoryBase.
Closes#1168.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
* Add support for scopes and collections for repositories.
Adds DynamicProxyable and DynamicInvocationHandler to
set scope/collection/options on PseudoArgs when calling
operations via repository interfaces.
Closes#963.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
1) the previous change (#955) to CouchbaseAuditingRegister intended to register
AuditingEntityCallback instead of AuditingEventListener but only changed the
name that AuditingEventListener was registered with. Since
AuditingEventListener does exactly the same thing as AuditingEntityCallback,
it behaved as those AuditingEntityCallback was being used.
2) It seems that the two mechanisms - EntityCallback and EventListener
both do more-or-less the same thing. I'm not sure why there are two
mechanisms to do the same thing.
3) Although the ReactiveAuditingEntityCallback mechanism is triggered
only for reactive operations and the non-reactive AuditingEntityCallback
is triggered only for non-reactive operations, the events are triggered
for both. Since there was a desire to have distinct callbacks for
reactive/non-reactive operations, I also made distinct events for
reactive/non-reactive operations. However both the reactive and non-reactive
event mechanisms are triggered for either reactive and non-reactive operations,
so it is necessary for the mechanism to determine if it should act on the
event.
4) Although there is an AbstractCouchbaseEventListener that is extended by
LoggingEventListener and ValidatingEventListener, AuditingEventListener does
not extend it (maybe it should).
Closes#1074.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
1) change examples in Config to show creating repository mappings using
existing MappingCouchbaseConverter (which have customConversions /
BeanNames.COUCHBASE_CUSTOM_CONVERSIONS and applicationContext)
instead of creating their own and then adding the customConversion and
applicationContext.
2) replace @Autowired couchbaseObjectMapper with couchbaseObjectMapper()
to avoid the following when using @ComponentScan :
Unsatisfied dependency expressed through field 'couchbaseObjectMapper';
nested exception is org.springframework.beans.factory.
BeanCurrentlyInCreationException: Error creating bean with name
'couchbaseObjectMapper': Requested bean is currently in creation: Is
there an unresolvable circular reference?
3) remove unused members fro StringBasedN1qlQueryParser
Closes#1141.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
Add support for reactive auditing and ReactiveEntityCallbacks.
Also, adapt CouchbaseAuditingRegistrar for support AuditingEntityCallback.
Closes#955.
Original pull request: #1102.
Co-authored-by: Carlos Espinado <carlosemart>
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
DefaultCouchbaseTypeMapper uses TypeAlias annotation if present.
Test case also uncovered that TypeAlias was being ignored for
string queries.
Closes#1119.
Original pull request: #1120.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
com.couchbase.client.core.error.CouchbaseException: query did not project __id.
Either use #{#n1ql.selectEntity} or project __id and __cas :
SELECT __cas, * from `b406ab45-ef95-441f-a318-76b8e8af2d76` where iata = $1
Closes#1097.
Original pull request: #1114.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
Support enum in AbstractCouchbaseConverter.convertForWriteIfNeeded()
and also call that from
MappingCouchbaseConverter.getPotentiallyConvertedSimpleWrite()
Closes#1069.
Original pull request: #1112.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
It was present on non-Reactive, but missing from reactive.
Closes#1096.
Original pull request: #1108.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>
This is a merge of mmonti's changeset into master. The changeset was made
on top of 4.1.x instead of master so it has a little catching up to do.
Co-authored-by: mikereiche <michael.reiche@couchbase.com>