Skip to content

Changes

Summary

  1. #1869 use cache in order to load imported policies when policies are loaded after invalidation in search (commit: 0182f9b) (details)
  2. #1869 provided missing javadocs, fixed test (commit: 76c0e67) (details)
  3. provided unit test for testing an imported policy is only loaded once by using cache (commit: 22bc3ed) (details)
  4. fixed trying to process empty "currentWriteModel" leading to BsonException (commit: 222de26) (details)
Commit 0182f9b1e5c427b7412d4cdf5626c35734442d5a by Thomas Jaeckle
#1869 use cache in order to load imported policies when policies are loaded after invalidation in search

* cache is used in ResolvedPolicyCacheLoader
* it is now added that an invalidation caused by a policy contains the "causingPolicyTag" - which is then also invalidated
* however, the "causingPolicyTag" is only invalidated once (per search cluster node) to not overwhelm the cluster again due to too many invalidations

Signed-off-by: Thomas Jäckle <thomas.jaeckle@beyonnex.io>
(commit: 0182f9b)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/BackgroundSyncStreamTest.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/BackgroundSyncStream.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/EnforcementFlowTest.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/MetadataTest.java (diff)
The file was modified policies/enforcement/src/main/java/org/eclipse/ditto/policies/enforcement/PolicyEnforcerCache.java (diff)
The file was modified internal/utils/cache/src/main/java/org/eclipse/ditto/internal/utils/cache/ProjectedCache.java (diff)
The file was modified internal/utils/cache/src/main/java/org/eclipse/ditto/internal/utils/cache/CaffeineCache.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/updater/actors/BackgroundSyncActorTest.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/updater/actors/ThingUpdater.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/updater/actors/ThingUpdaterTest.java (diff)
The file was modified internal/utils/cache/src/main/java/org/eclipse/ditto/internal/utils/cache/Cache.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/ResolvedPolicyCacheLoader.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/read/MongoThingsSearchPersistence.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/read/SudoIT.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/BulkWriteResultAckFlowTest.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/TestSearchUpdaterStream.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/ThingWriteModelIT.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/Metadata.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/updater/actors/ThingsMetadataSource.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/EnforcementFlow.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/mapping/BsonDiffVisitorIT.java (diff)
Commit 76c0e675ae09e75f76356faa892add18fd7ce6cd by Thomas Jaeckle
#1869 provided missing javadocs, fixed test

Signed-off-by: Thomas Jäckle <thomas.jaeckle@beyonnex.io>
(commit: 76c0e67)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/Metadata.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/updater/actors/ThingUpdaterTest.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/mapping/EnforcedThingMapper.java (diff)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/MetadataTest.java (diff)
The file was modified internal/utils/cache/src/main/java/org/eclipse/ditto/internal/utils/cache/Cache.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/EnforcementFlow.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/updater/actors/ThingUpdater.java (diff)
Commit 22bc3ede55e8ed7ecef153cc20fe2d47511307a1 by Thomas Jaeckle
provided unit test for testing an imported policy is only loaded once by using cache

* also made sure that invalidation triggered by change of an imported policy only invalidates the cache entry once
* fixed ordering of `allReferencedPolicies` in Metadata by using a LinkedHashSet

Signed-off-by: Thomas Jäckle <thomas.jaeckle@beyonnex.io>
(commit: 22bc3ed)
The file was modified thingsearch/service/src/test/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/EnforcementFlowTest.java (diff)
The file was modified policies/model/src/main/java/org/eclipse/ditto/policies/model/PolicyImport.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/updater/actors/ThingUpdater.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/mapping/EnforcedThingMapper.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/Metadata.java (diff)
Commit 222de26d1ba87b142beb07c8562cec2458264c9a by Thomas Jaeckle
fixed trying to process empty "currentWriteModel" leading to BsonException

Signed-off-by: Thomas Jäckle <thomas.jaeckle@beyonnex.io>
(commit: 222de26)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/streaming/SearchUpdateMapper.java (diff)
The file was modified thingsearch/service/src/main/java/org/eclipse/ditto/thingsearch/service/persistence/write/model/ThingWriteModel.java (diff)