Commit graph

77 commits

Author SHA1 Message Date
Greg Burd
d69d8a3b1e Finish first steps of JCache integration, UnitOfWork statement cache now merges into available JCache at commit. 2018-02-08 10:09:23 -05:00
Greg Burd
6858cf6f48 Integrate JCache for cached objects outside of a UnitOfWork. 2018-02-07 18:41:39 -05:00
pbeaman
2299939be3 Remove test-scope dependency on jamm-0.2.5 because it conflicts with a later version and causes NoSuchMethodError when running unit tests in Eclipse 2018-01-26 10:42:13 -05:00
Greg Burd
7b4e46431f Update DataStax driver version. 2017-12-14 10:19:38 -05:00
Greg Burd
b777e9c051 Remove redundant dependency. 2017-11-03 10:42:46 -04:00
Greg Burd
a65b775faa Abstract the SessionCache and allow outside implementations. 2017-10-27 14:33:04 -04:00
Greg Burd
92f74e41e1 WIP: support other caches 2017-10-27 08:48:42 -04:00
Greg Burd
0c6cda1db6 Switching version so that the build number is the third part of the version number 2017-09-29 10:21:48 -04:00
Greg Burd
bf1d5f217f First fetch from the backingMap. 2017-09-29 09:47:15 -04:00
Greg Burd
265947586c Distinguish this project from 'https://github.com/helenusdriver/helenus' (which is 'helenus.org' where-as we're 'helenus.net'). Both projects aspire to address the same missing pieces from the DataStax Java Cassandra driver, a more friendly POJO mapping layer and domain-specific language/API, and share the same name (naming is hard) but are completely different implementations. 2017-09-26 11:32:23 -04:00
Greg Burd
b370272c3a No change. 2017-09-26 11:20:17 -04:00
Greg Burd
16af6ea175 When items are reset, they may also be null which would incorrectly return false. 2017-09-26 10:18:55 -04:00
Greg Burd
5c8a0360a2 Reset of a value in AbstractEntityDraft should update with the current value is either null or not equal to desired value, fixed logic. 2017-09-26 09:26:06 -04:00
Greg Burd
d3c24b70bf Be sure to pick up all inherited interfaces and scan those with the @InheritedTable annotation for methods. When doing that, if we encounter the same method name twice prefer the least generic implementation. 2017-09-25 15:50:29 -04:00
Greg Burd
844ebd9155 Add support for marking queries as idempotent so that the C* driver will apply the retry policy and in some cases perform speculative execution. (see: https://docs.datastax.com/en/developer/java-driver/3.1/manual/retries/ and https://docs.datastax.com/en/developer/java-driver/3.1/manual/speculative_execution/). 2017-09-22 09:46:59 -04:00
Greg Burd
a7094abdfa Re-work API for UnitOfWork so as to be able to instantiate custom sub-classes if need be. 2017-09-21 14:38:19 -04:00
Greg Burd
67dbb36194 Cache keys must contain all primary key values. 2017-09-18 13:40:06 -04:00
Greg Burd
f9ab9f91a1 Fix cache lookup. 2017-09-18 11:07:09 -04:00
Greg Burd
895921c598 Another spot I missed allowing null UOW in {a}sync(). 2017-09-14 13:16:06 -04:00
Greg Burd
97f74776d5 Allow UOW to be null in {a}sync(UnitOfWork uow). 2017-09-14 09:34:12 -04:00
Greg Burd
8c165a689b Another oversight. 2017-09-13 15:08:50 -04:00
Greg Burd
9e3fabb2f9 Forgot to add type to begin() call in HelenusSession. 2017-09-13 14:27:08 -04:00
Greg Burd
90e1aafd94 Need to parameterize the exception type. 2017-09-13 13:27:34 -04:00
Greg Burd
efca86783c Allow configuration of the exception class used when conflicts arise at UnitOfWork commit time to enable clients to provide custom/advanced/specific exceptions without having to do a bunch of encapsulation. 2017-09-13 12:28:40 -04:00
Greg Burd
66578d77d5 Allow subclasses of UnitOfWork (remove 'final'). 2017-09-13 10:55:23 -04:00
Greg Burd
75aff52312 Honor the ignoreCache() when selecting from UOW cache. 2017-09-13 08:33:48 -04:00
Greg Burd
83ef8d7b0c Adjust how entity draft auditing works. 2017-09-12 15:51:49 -04:00
Greg Burd
1b46ee0ed1 WIP: More work toward entity cache, very broken at this point. 2017-09-01 15:38:58 -04:00
Greg Burd
cb09324ac6 Commented out the UOW cache (as it's not yet finished/working) and updated the version number. 2017-08-31 14:10:26 -04:00
Greg Burd
c35d6d19d1 WIP: toward caching at session and unit of work. 2017-08-25 16:13:31 -04:00
Greg Burd
7ac9288eb8 Added update(draft). 2017-08-25 16:09:06 -04:00
Greg Burd
0fd9ff828c Update version to 2.0.21 2017-08-17 12:15:48 -04:00
Greg Burd
602e3521b4 Values return to the client in a proxy object should be converted to the proper type. 2017-08-16 13:43:46 -04:00
Greg Burd
1c68ebdcb8 Enable serialization of proxied entity objects. Enable the use of default implementation for getter methods to supply default values when the map contains a 'null' (or doesn't contain that key). 2017-08-15 14:05:22 -04:00
Greg Burd
89303f9179 Fix the InsertOperation transform method to properly hydrate the pojo with all property values or, in some cases, their default values before returning it to the caller. 2017-08-11 12:19:53 -04:00
Greg Burd
7f5cc4add6 Merge branch '2.0.15-SNAPSHOT' into develop 2017-08-10 16:15:26 -04:00
Greg Burd
cf2740337e Add 'Drafted' interface and extend the InsertOperation to recognize that so as to be able to persist the mutated set of keys only yet return a pojo with values matching the draft, not just the mutations.
Changed {in,up}sert() to return the instance of the object.
2017-08-10 16:06:31 -04:00
Greg Burd
8569eaa76f Add 'Drafted' interface and extend the InsertOperation to recognize that so as to be able to persist the mutated set of keys only yet return a pojo with values matching the draft, not just the mutations. 2017-08-10 13:09:34 -04:00
Greg Burd
a126607c09 Added check for mutated set so that the backingMap could contain all object values. The other option was to auto-refresh the instance's backing map when a getter is invoked for a valid property that isn't included in the backing map (which still may be handy/required for caching to work). 2017-08-09 16:20:38 -04:00
Greg Burd
871c8d0c90 Fix minor error. 2017-08-09 15:12:24 -04:00
Greg Burd
253816bd8c Remove Integer/Enum conversion, it wasn't necessary. 2017-08-09 11:49:38 -04:00
Greg Burd
512cb0f608 Fix for mapping integers to enum in proxy. 2017-08-09 10:42:28 -04:00
Greg Burd
f008a33e53 Changed Zipkin API a bit, now requires a TraceContext rather than a Span before sync/async calls. 2017-08-09 10:22:59 -04:00
Greg Burd
b9600ac931 Fix Zipkin tracing logic. 2017-08-08 15:28:51 -04:00
Greg Burd
71e84da3bd Start plumbing for Dropwizard metrics and Zipkin tracing. Ensure proper bean value when working with enums. 2017-08-08 12:02:32 -04:00
Greg Burd
f4dbf34920 Remove Scala support and trim Future support at some point I'll re-introduce using Java 8 classes rather than Guava's or Scala's 2017-08-04 11:18:54 -04:00
Greg Burd
7497cf5a18 Add compatibility with Java 8 CompletableFuture converting our Guava-supplied ListenableFuture. 2017-08-03 15:38:13 -04:00
Greg Burd
b44c898682 Add the LOCAL_* consistency levels. Add a way to provide a default consistency level for all session operations. 2017-08-02 12:54:01 -04:00
Greg Burd
18cfc85f45 Move logic that filters out unset columns from INSERT statements into InsertOperations because we need to use the proxy implementation's ability to fetch default type-specific values in other places. This change also enables concrete implementations of mapped interfaces to implement MapExportable and use the same method to filter unset values. 2017-08-02 11:35:11 -04:00
Greg Burd
03567dc57e Enable partial updates using partial entity maps. 2017-08-01 12:48:14 -04:00