From 3dd5ace673145de8deb6c731cfe6d8e38af3e4d6 Mon Sep 17 00:00:00 2001 From: Bichitra Kumar Sahoo <32828151+bichitra95@users.noreply.github.com> Date: Thu, 16 May 2024 11:50:21 +0530 Subject: [PATCH 1/2] Add differential entity details for kafka event --- .../v2/preprocessor/contract/ContractPreProcessor.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java index bc9ff76cbd..038558dac2 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java @@ -193,6 +193,16 @@ private void updateExistingVersion(EntityMutationContext context, AtlasEntity en context.addUpdated(entity.getGuid(), entity, entityType, vertex); + AtlasEntityComparator entityComparator = new AtlasEntityComparator(typeRegistry, entityRetriever, context.getGuidAssignments(), true, true); + AtlasEntityComparator.AtlasEntityDiffResult diffResult = entityComparator.getDiffResult(entity, vertex, !storeDifferentialAudits); + RequestContext reqContext = RequestContext.get(); + if (diffResult.hasDifference()) { + if (storeDifferentialAudits) { + diffResult.getDiffEntity().setGuid(entity.getGuid()); + reqContext.cacheDifferentialEntity(diffResult.getDiffEntity()); + } + } + } public AtlasEntity getCurrentVersion(String datasetGuid) throws AtlasBaseException { From ef2d14ab92066cb6291a32874900475148207125 Mon Sep 17 00:00:00 2001 From: Bichitra Kumar Sahoo <32828151+bichitra95@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:36:30 +0530 Subject: [PATCH 2/2] Make common method to record mutatedDetails --- .../contract/ContractPreProcessor.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java index 038558dac2..98add96a39 100644 --- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java +++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v2/preprocessor/contract/ContractPreProcessor.java @@ -192,16 +192,7 @@ private void updateExistingVersion(EntityMutationContext context, AtlasEntity en AtlasEntityType entityType = ensureEntityType(entity.getTypeName()); context.addUpdated(entity.getGuid(), entity, entityType, vertex); - - AtlasEntityComparator entityComparator = new AtlasEntityComparator(typeRegistry, entityRetriever, context.getGuidAssignments(), true, true); - AtlasEntityComparator.AtlasEntityDiffResult diffResult = entityComparator.getDiffResult(entity, vertex, !storeDifferentialAudits); - RequestContext reqContext = RequestContext.get(); - if (diffResult.hasDifference()) { - if (storeDifferentialAudits) { - diffResult.getDiffEntity().setGuid(entity.getGuid()); - reqContext.cacheDifferentialEntity(diffResult.getDiffEntity()); - } - } + recordEntityMutatedDetails(context, entity, vertex); } @@ -293,11 +284,14 @@ private void datasetAttributeSync(EntityMutationContext context, AtlasEntity ass AtlasVertex vertex = AtlasGraphUtilsV2.findByGuid(entity.getGuid()); AtlasEntityType entityType = ensureEntityType(entity.getTypeName()); + context.addUpdated(entity.getGuid(), entity, entityType, vertex); + recordEntityMutatedDetails(context, entity, vertex); + } + + private void recordEntityMutatedDetails(EntityMutationContext context, AtlasEntity entity, AtlasVertex vertex) throws AtlasBaseException { AtlasEntityComparator entityComparator = new AtlasEntityComparator(typeRegistry, entityRetriever, context.getGuidAssignments(), true, true); AtlasEntityComparator.AtlasEntityDiffResult diffResult = entityComparator.getDiffResult(entity, vertex, !storeDifferentialAudits); RequestContext reqContext = RequestContext.get(); - context.addUpdated(entity.getGuid(), entity, entityType, vertex); - if (diffResult.hasDifference()) { if (storeDifferentialAudits) { diffResult.getDiffEntity().setGuid(entity.getGuid());