google-nomulus/core
Michael Muller 3327c1ae9b Add a "ReplaySpecializer" to fix certain replays (#989)
* Add a "ReplaySpecializer" to fix certain replays

Due to the fact that a given entity in either database type can map to
multiple entities in the other database, there are certain replication
scenarios that don't quite work.  Current known examples include:

- propagation of cascading deletes from datastore to SQL
- creation of datastore indexed entities for SQL entities (where indexes are a
  first-class concept)

This change introduces a ReplaySpecializer class, which allows us to declare
static method hooks at the entity class level that define any special
operations that need to be performed before or after replaying a mutation for
any given entity type.

Currently, "before SQL delete" is the only supported hook.  A change to
DomainContent demonstrating how this facility can be used to fix problems in
cascading delete propagation will be sent as a subsequent PR.

* Throw exception on beforeSqlDelete failures

* Changes for review
2021-03-09 07:12:15 -05:00
..
gradle/dependency-locks Update a few plugins for Java 11 compatibility (#966) 2021-03-02 21:01:30 -05:00
src Add a "ReplaySpecializer" to fix certain replays (#989) 2021-03-09 07:12:15 -05:00
WEB-INF/appengine-generated Enable Cloud SQL when Datastore is enabled for unit test (#502) 2020-03-10 12:26:25 -04:00
build.gradle Disable whois caching in nomulus tool (#980) 2021-03-08 12:33:23 -05:00
Dockerfile Build docker image of nomulus tool (#142) 2019-07-16 20:18:44 -04:00
karma.conf.js Clean up generated sources configuration (#724) 2020-07-30 15:43:42 -04:00