You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by sa...@apache.org on 2018/05/15 21:25:08 UTC
atlas git commit: ATLAS-2632 Tag Propagation : Tag is added to
propagatedClassification twice when relationship is updated to BOTH
Repository: atlas
Updated Branches:
refs/heads/master 0eaefe38f -> 801db28bf
ATLAS-2632 Tag Propagation : Tag is added to propagatedClassification twice when relationship is updated to BOTH
Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/801db28b
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/801db28b
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/801db28b
Branch: refs/heads/master
Commit: 801db28bf772b111b776a0dda0d305344c2eef4d
Parents: 0eaefe3
Author: Sarath Subramanian <ss...@hortonworks.com>
Authored: Tue May 15 14:24:55 2018 -0700
Committer: Sarath Subramanian <ss...@hortonworks.com>
Committed: Tue May 15 14:24:55 2018 -0700
----------------------------------------------------------------------
.../atlas/model/instance/AtlasRelationship.java | 21 ++++++++++----------
.../graph/v1/AtlasRelationshipStoreV1.java | 2 +-
.../store/graph/v1/EntityGraphRetriever.java | 11 +++++-----
.../ClassificationPropagationTest.java | 21 ++++++++++----------
4 files changed, 29 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/atlas/blob/801db28b/intg/src/main/java/org/apache/atlas/model/instance/AtlasRelationship.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/model/instance/AtlasRelationship.java b/intg/src/main/java/org/apache/atlas/model/instance/AtlasRelationship.java
index d04daa5..debaeef 100644
--- a/intg/src/main/java/org/apache/atlas/model/instance/AtlasRelationship.java
+++ b/intg/src/main/java/org/apache/atlas/model/instance/AtlasRelationship.java
@@ -30,12 +30,13 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
@@ -82,8 +83,8 @@ public class AtlasRelationship extends AtlasStruct implements Serializable {
public enum Status { ACTIVE, DELETED }
- private List<AtlasClassification> propagatedClassifications;
- private List<AtlasClassification> blockedPropagatedClassifications;
+ private Set<AtlasClassification> propagatedClassifications;
+ private Set<AtlasClassification> blockedPropagatedClassifications;
@JsonIgnore
private static AtomicLong s_nextId = new AtomicLong(System.nanoTime());
@@ -198,7 +199,7 @@ public class AtlasRelationship extends AtlasStruct implements Serializable {
}
if (CollectionUtils.isNotEmpty((List) propagatedClassifications)) {
- this.propagatedClassifications = new ArrayList<>();
+ this.propagatedClassifications = new HashSet<>();
for (Object elem : (List) propagatedClassifications) {
if (elem instanceof AtlasClassification) {
@@ -210,7 +211,7 @@ public class AtlasRelationship extends AtlasStruct implements Serializable {
}
if (CollectionUtils.isNotEmpty((List) blockedPropagatedClassifications)) {
- this.blockedPropagatedClassifications = new ArrayList<>();
+ this.blockedPropagatedClassifications = new HashSet<>();
for (Object elem : (List) blockedPropagatedClassifications) {
if (elem instanceof AtlasClassification) {
@@ -308,19 +309,19 @@ public class AtlasRelationship extends AtlasStruct implements Serializable {
return "-" + Long.toString(s_nextId.getAndIncrement());
}
- public List<AtlasClassification> getPropagatedClassifications() {
+ public Set<AtlasClassification> getPropagatedClassifications() {
return propagatedClassifications;
}
- public void setPropagatedClassifications(List<AtlasClassification> propagatedClassifications) {
+ public void setPropagatedClassifications(Set<AtlasClassification> propagatedClassifications) {
this.propagatedClassifications = propagatedClassifications;
}
- public List<AtlasClassification> getBlockedPropagatedClassifications() {
+ public Set<AtlasClassification> getBlockedPropagatedClassifications() {
return blockedPropagatedClassifications;
}
- public void setBlockedPropagatedClassifications(List<AtlasClassification> blockedPropagatedClassifications) {
+ public void setBlockedPropagatedClassifications(Set<AtlasClassification> blockedPropagatedClassifications) {
this.blockedPropagatedClassifications = blockedPropagatedClassifications;
}
@@ -330,7 +331,7 @@ public class AtlasRelationship extends AtlasStruct implements Serializable {
private void init(String guid, AtlasObjectId end1, AtlasObjectId end2, String label, PropagateTags propagateTags,
Status status, String createdBy, String updatedBy, Date createTime, Date updateTime, Long version,
- List<AtlasClassification> propagatedClassifications, List<AtlasClassification> blockedPropagatedClassifications) {
+ Set<AtlasClassification> propagatedClassifications, Set<AtlasClassification> blockedPropagatedClassifications) {
setGuid(guid);
setEnd1(end1);
setEnd2(end2);
http://git-wip-us.apache.org/repos/asf/atlas/blob/801db28b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasRelationshipStoreV1.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasRelationshipStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasRelationshipStoreV1.java
index 9fcba6d..a600b20 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasRelationshipStoreV1.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasRelationshipStoreV1.java
@@ -357,7 +357,7 @@ public class AtlasRelationshipStoreV1 implements AtlasRelationshipStore {
return entityRetriever.mapEdgeToAtlasRelationship(relationshipEdge);
}
- private void handleBlockedClassifications(AtlasEdge edge, List<AtlasClassification> blockedPropagatedClassifications) throws AtlasBaseException {
+ private void handleBlockedClassifications(AtlasEdge edge, Set<AtlasClassification> blockedPropagatedClassifications) throws AtlasBaseException {
if (blockedPropagatedClassifications != null) {
List<AtlasVertex> propagatedClassificationVertices = getClassificationVertices(edge);
List<String> currentClassificationIds = getBlockedClassificationIds(edge);
http://git-wip-us.apache.org/repos/asf/atlas/blob/801db28b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java
index 7ca51e4..0f9f877 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphRetriever.java
@@ -65,6 +65,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -1042,11 +1043,11 @@ public final class EntityGraphRetriever {
}
private void readClassificationsFromEdge(AtlasEdge edge, AtlasRelationshipWithExtInfo relationshipWithExtInfo, boolean extendedInfo) throws AtlasBaseException {
- List<AtlasVertex> classificationVertices = getClassificationVertices(edge);
- List<String> blockedClassificationIds = getBlockedClassificationIds(edge);
- List<AtlasClassification> propagatedClassifications = new ArrayList<>();
- List<AtlasClassification> blockedClassifications = new ArrayList<>();
- AtlasRelationship relationship = relationshipWithExtInfo.getRelationship();
+ List<AtlasVertex> classificationVertices = getClassificationVertices(edge);
+ List<String> blockedClassificationIds = getBlockedClassificationIds(edge);
+ AtlasRelationship relationship = relationshipWithExtInfo.getRelationship();
+ Set<AtlasClassification> propagatedClassifications = new HashSet<>();
+ Set<AtlasClassification> blockedClassifications = new HashSet<>();
for (AtlasVertex classificationVertex : classificationVertices) {
String classificationId = classificationVertex.getIdForDisplay();
http://git-wip-us.apache.org/repos/asf/atlas/blob/801db28b/repository/src/test/java/org/apache/atlas/repository/tagpropagation/ClassificationPropagationTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/repository/tagpropagation/ClassificationPropagationTest.java b/repository/src/test/java/org/apache/atlas/repository/tagpropagation/ClassificationPropagationTest.java
index 56e7b96..151211e 100644
--- a/repository/src/test/java/org/apache/atlas/repository/tagpropagation/ClassificationPropagationTest.java
+++ b/repository/src/test/java/org/apache/atlas/repository/tagpropagation/ClassificationPropagationTest.java
@@ -52,6 +52,7 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -350,8 +351,8 @@ public class ClassificationPropagationTest {
assertClassificationExistInEntity(EMPLOYEES_UNION_TABLE, PII_tag3.getTypeName(), employees2.getGuid());
AtlasRelationship process3_employee_union_relationship = getRelationship(EMPLOYEES_UNION_PROCESS, EMPLOYEES_UNION_TABLE);
- List<AtlasClassification> propagatedClassifications = process3_employee_union_relationship.getPropagatedClassifications();
- List<AtlasClassification> blockedClassifications = process3_employee_union_relationship.getBlockedPropagatedClassifications();
+ Set<AtlasClassification> propagatedClassifications = process3_employee_union_relationship.getPropagatedClassifications();
+ Set<AtlasClassification> blockedClassifications = process3_employee_union_relationship.getBlockedPropagatedClassifications();
assertNotNull(propagatedClassifications);
assertClassificationEquals(propagatedClassifications, PII_tag1);
@@ -363,7 +364,7 @@ public class ClassificationPropagationTest {
PII_tag2.setEntityGuid(employees1.getGuid());
PII_tag3.setEntityGuid(employees2.getGuid());
- process3_employee_union_relationship.setBlockedPropagatedClassifications(Arrays.asList(PII_tag2, PII_tag3));
+ process3_employee_union_relationship.setBlockedPropagatedClassifications(new HashSet<>(Arrays.asList(PII_tag2, PII_tag3)));
relationshipStore.update(process3_employee_union_relationship);
process3_employee_union_relationship = getRelationship(EMPLOYEES_UNION_PROCESS, EMPLOYEES_UNION_TABLE);
@@ -383,7 +384,7 @@ public class ClassificationPropagationTest {
assertClassificationExistInEntity(EMPLOYEES_UNION_TABLE, PII_tag1.getTypeName(), hdfs_path.getGuid());
}
- private void assertClassificationEquals(List<AtlasClassification> propagatedClassifications, AtlasClassification expected) {
+ private void assertClassificationEquals(Set<AtlasClassification> propagatedClassifications, AtlasClassification expected) {
String expectedTypeName = expected.getTypeName();
for (AtlasClassification c : propagatedClassifications) {
if(c.getTypeName().equals(expectedTypeName)) {
@@ -417,19 +418,19 @@ public class ClassificationPropagationTest {
AtlasRelationship process3_employee_union_relationship = getRelationship(EMPLOYEES_UNION_PROCESS, EMPLOYEES_UNION_TABLE);
// remove blocked propagated classification entry for PII (from employees2) - allow PII from employees2 to propagate to employee_union
- process3_employee_union_relationship.setBlockedPropagatedClassifications(Arrays.asList(PII_tag3));
+ process3_employee_union_relationship.setBlockedPropagatedClassifications(new HashSet<>(Arrays.asList(PII_tag3)));
relationshipStore.update(process3_employee_union_relationship);
- process3_employee_union_relationship = getRelationship(EMPLOYEES_UNION_PROCESS, EMPLOYEES_UNION_TABLE);
- List<AtlasClassification> propagatedClassifications = process3_employee_union_relationship.getPropagatedClassifications();
- List<AtlasClassification> blockedClassifications = process3_employee_union_relationship.getBlockedPropagatedClassifications();
+ process3_employee_union_relationship = getRelationship(EMPLOYEES_UNION_PROCESS, EMPLOYEES_UNION_TABLE);
+ Set<AtlasClassification> propagatedClassifications = process3_employee_union_relationship.getPropagatedClassifications();
+ Set<AtlasClassification> blockedClassifications = process3_employee_union_relationship.getBlockedPropagatedClassifications();
assertClassificationExistInList(propagatedClassifications, PII_tag1);
assertClassificationExistInList(propagatedClassifications, PII_tag2);
assertClassificationExistInList(blockedClassifications, PII_tag3);
// remove all blocked propagated classification entry
- process3_employee_union_relationship.setBlockedPropagatedClassifications(Collections.emptyList());
+ process3_employee_union_relationship.setBlockedPropagatedClassifications(Collections.emptySet());
relationshipStore.update(process3_employee_union_relationship);
process3_employee_union_relationship = getRelationship(EMPLOYEES_UNION_PROCESS, EMPLOYEES_UNION_TABLE);
@@ -442,7 +443,7 @@ public class ClassificationPropagationTest {
assertTrue(blockedClassifications.isEmpty());
}
- private void assertClassificationExistInList(List<AtlasClassification> classifications, AtlasClassification classification) {
+ private void assertClassificationExistInList(Set<AtlasClassification> classifications, AtlasClassification classification) {
String classificationName = classification.getTypeName();
String entityGuid = classification.getEntityGuid();
boolean foundClassification = false;