Commit graph

363 commits

Author SHA1 Message Date
Greg Burd
828c456814 Add MaterialziedView entity support and the beginnings of a CoveringIndex (which is another name for MaterializedView). 2017-10-10 13:40:41 -04:00
Greg Burd
01102e2299 Enabled Helenus.dsl() to return a valid object even when the cluster metadata isn't known in advance and later learn more when it is. Changed the AbstractEntityDraft to have both by-string and by-getter mutation/accessor methods. These two combine to make Draft objects more type safe. 2017-10-10 13:40:41 -04:00
Greg Burd
0e9d1086ed Use backingMap for the mutated key set (and save some space/overhead). 2017-10-10 13:40:41 -04:00
Greg Burd
1c37d817b6 Add code formatting standard to project. 2017-10-06 11:40:19 -04:00
Greg Burd
306c9e68ef Merge branch 'develop' into gburd/wip-facet-cache 2017-10-05 09:42:32 -04:00
Greg Burd
25c5c6b969 Enabled Helenus.dsl() to return a valid object even when the cluster metadata isn't known in advance and later learn more when it is. Changed the AbstractEntityDraft to have both by-string and by-getter mutation/accessor methods. These two combine to make Draft objects more type safe. 2017-10-04 15:46:01 -04:00
Greg Burd
be8d1bf029 Use backingMap for the mutated key set (and save some space/overhead). 2017-09-29 10:48:37 -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
7e6863fc84 Merge branch 'develop' into gburd/wip-facet-cache 2017-09-28 13:43:03 -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
efa87b2d4f WIP: working toward a faceted cache. 2017-09-26 10:37:08 -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
ac7db5f243 Alias writeTime and ttl on SELECT/caching. Shorten UOW log to avoid leaking information. 2017-09-20 10:48:47 -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
58b29ad181 Caching entity results within the context of a UOW (even nested) seems to be working. 2017-09-12 14:09:51 -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
5089be2c22 Adding more support for the Draft/Builder pattern for entity objects. Fixed a number of issues and added more tests. 2017-08-31 14:06:44 -04:00
Greg Burd
3cd889ea61 WIP: More work toward UOW caching but mainly a lot of work to cleanup the API. 2017-08-30 13:41:15 -04:00
Greg Burd
09b06f4ca4 WIP: Fixed the ordering of commit.andThen(() -> {}) to match the nesting and fire iff the outter most UOW has committed. Made UnitOfWork Closable which will abort the work iff it has not previously been committed or aborted. Started to add tests to exercise Helenus UnitOfWork (transactions). 2017-08-29 10:13:29 -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
84bb6b5fae WIP: moving maven build to gradle 2017-08-18 16:50:05 -04:00
Greg Burd
933526b05b WIP: still working toward a solid caching scheme, progress but far from done. 2017-08-18 16:44:30 -04:00
Greg Burd
28aa3b1bae WIP: Working toward a solution that can cache result sets and/or transformed entity instances when annotated with @Cacheable in the Session cache. 2017-08-17 16:00:19 -04:00
Greg Burd
0fd9ff828c Update version to 2.0.21 2017-08-17 12:15:48 -04:00
Greg Burd
94ce778451 formatting 2017-08-17 12:14:00 -04:00
Greg Burd
142688a215 Funnel all paths to the database through one single method implementation (the 'Executioner') so as to ensure all calls into Cassandra are wrapped in a common way (traced, measured, cached, etc.) in a single place. 2017-08-17 12:05:50 -04:00
Greg Burd
6ad99fc459 formatting 2017-08-17 10:22:03 -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
007b6a51ae Merge branch 'develop' into 2.0.19-SNAPSHOT 2017-08-15 15:14:45 -04:00
Greg Burd
9c4d14cc93 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:58:07 -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