You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by su...@apache.org on 2016/05/09 23:07:55 UTC
incubator-atlas git commit: ATLAS-754 InstanceSerialization does not
serialize Reference in the values array of Reference. (harishjp via sumasai)
Repository: incubator-atlas
Updated Branches:
refs/heads/master 856ee6b5d -> 4f9cba4b0
ATLAS-754 InstanceSerialization does not serialize Reference in the values array of Reference. (harishjp via sumasai)
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/4f9cba4b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/4f9cba4b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/4f9cba4b
Branch: refs/heads/master
Commit: 4f9cba4b031fe25d394f61d4a43283dadc0856f9
Parents: 856ee6b
Author: Suma Shivaprasad <su...@gmail.com>
Authored: Mon May 9 16:07:38 2016 -0700
Committer: Suma Shivaprasad <su...@gmail.com>
Committed: Mon May 9 16:07:38 2016 -0700
----------------------------------------------------------------------
release-log.txt | 1 +
.../typesystem/json/InstanceSerialization.scala | 7 +-
.../json/InstanceSerializationTest.scala | 154 ++++++++++---------
3 files changed, 82 insertions(+), 80 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/4f9cba4b/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 152314c..1dcabed 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -20,6 +20,7 @@ ATLAS-409 Atlas will not import avro tables with schema read from a file (dosset
ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via shwethags)
ALL CHANGES:
+ATLAS-754 InstanceSerialization does not serialize Reference in the values array of Reference.(harishjp via sumasai)
ATLAS-626 Hive temporary table metadata is captured in atlas (sumasai)
ATLAS-747 Hive CTAS entity registration fails because userName is null (shwethags)
ATLAS-759 HiveHookIT.testAlterTableChangeColumn is consistently failing on master (yhemanth)
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/4f9cba4b/typesystem/src/main/scala/org/apache/atlas/typesystem/json/InstanceSerialization.scala
----------------------------------------------------------------------
diff --git a/typesystem/src/main/scala/org/apache/atlas/typesystem/json/InstanceSerialization.scala b/typesystem/src/main/scala/org/apache/atlas/typesystem/json/InstanceSerialization.scala
index eae3063..73b3526 100755
--- a/typesystem/src/main/scala/org/apache/atlas/typesystem/json/InstanceSerialization.scala
+++ b/typesystem/src/main/scala/org/apache/atlas/typesystem/json/InstanceSerialization.scala
@@ -104,7 +104,7 @@ object InstanceSerialization {
refClass <- idClass
typNm <- typeName
i <- id
- s <- Some (state)
+ s <- Some(state)
v <- version
} yield _Id(i, v, typNm, s)
}
@@ -219,7 +219,6 @@ object InstanceSerialization {
* A Map is an Reference if:
* - it has the correct [[format.typeHintFieldName]]
* - it has a 'typeName'
- * - it has an _Id
* - it has a 'values' attribute
* - it has 'traitNames' attribute
* - it has 'traits' attribute
@@ -229,11 +228,11 @@ object InstanceSerialization {
for {
refClass <- referenceClass
typNm <- typeName
- i <- idObject
+ i <- Some(idObject)
values <- valuesMap
traitNms <- traitNames
ts <- traits
- } yield _Reference(Some(i), typNm, values, traitNms.toList, ts)
+ } yield _Reference(i, typNm, values, traitNms.toList, ts)
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/4f9cba4b/typesystem/src/test/scala/org/apache/atlas/typesystem/json/InstanceSerializationTest.scala
----------------------------------------------------------------------
diff --git a/typesystem/src/test/scala/org/apache/atlas/typesystem/json/InstanceSerializationTest.scala b/typesystem/src/test/scala/org/apache/atlas/typesystem/json/InstanceSerializationTest.scala
index f837b6c..9e656a5 100644
--- a/typesystem/src/test/scala/org/apache/atlas/typesystem/json/InstanceSerializationTest.scala
+++ b/typesystem/src/test/scala/org/apache/atlas/typesystem/json/InstanceSerializationTest.scala
@@ -53,79 +53,82 @@ class InstanceSerializationTest {
}
@Test def testReferenceArrayWithNoState {
-
- val staticJson = """{
- "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
- "id": {
- "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
- "version": 0,
- "typeName": "LoadProcess"
- },
- "typeName": "LoadProcess",
- "values": {
- "inputTables": [{
- "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
- "id": "bacfa996-e88e-4d7e-9630-68c9829b10b4",
- "version": 0,
- "typeName": "Table"
- }, {
- "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
- "id": "6da06805-3f56-446f-8831-672a65ac2199",
- "version": 0,
- "typeName": "Table"
- }
-
- ],
- "outputTable": {
- "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
- "id": "d5c3d6d0-aa10-44c1-b05d-ed9400d2a5ac",
- "version": 0,
- "typeName": "Table"
- },
- "name": "loadSalesDaily"
- },
- "traitNames": [
- "ETL"
- ],
- "traits": {
- "ETL": {
- "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
- "typeName": "ETL",
- "values": {
-
- }
- }
+ val staticJson = s"""{
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Reference",
+ "id": {
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Id",
+ "version": 0,
+ "typeName": "LoadProcess"
+ },
+ "typeName": "LoadProcess",
+ "values": {
+ "inputTables": [{
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Id",
+ "id": "bacfa996-e88e-4d7e-9630-68c9829b10b4",
+ "version": 0,
+ "typeName": "Table"
+ }, {
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Id",
+ "id": "6da06805-3f56-446f-8831-672a65ac2199",
+ "version": 0,
+ "typeName": "Table"
+ }, {
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Reference",
+ "typeName": "$typeName",
+ "values": {}
+ "traitNames": []
+ "traits": {}
+ }
+ ],
+ "outputTable": {
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Id",
+ "id": "d5c3d6d0-aa10-44c1-b05d-ed9400d2a5ac",
+ "version": 0,
+ "typeName": "Table"
+ },
+ "name": "loadSalesDaily"
+ },
+ "traitNames": [
+ "ETL"
+ ],
+ "traits": {
+ "ETL": {
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Struct",
+ "typeName": "ETL",
+ "values": {
+ }
+ }
}
- }
- """;
-
- val entity: Referenceable = InstanceSerialization.fromJsonReferenceable(staticJson, true)
- val outputTable = entity.getValuesMap.get("outputTable")
- val inputTables : java.util.List[_] = entity.getValuesMap().get("inputTables").asInstanceOf[java.util.List[_]]
-
- assertTrue(outputTable.isInstanceOf[Id]);
- import scala.collection.JavaConversions._
- for(inputTable <- inputTables) {
- assertTrue(inputTable.isInstanceOf[Id]);
}
+ """;
+
+ val entity: Referenceable = InstanceSerialization.fromJsonReferenceable(staticJson, true)
+ val outputTable = entity.getValuesMap.get("outputTable")
+ val inputTables : java.util.List[_] = entity.getValuesMap().get("inputTables").asInstanceOf[java.util.List[_]]
+
+ assertTrue(entity.getId.isInstanceOf[Id]);
+ assertTrue(outputTable.isInstanceOf[Id]);
+ import scala.collection.JavaConversions._
+ assertTrue(inputTables(0).isInstanceOf[Id]);
+ assertTrue(inputTables(1).isInstanceOf[Id]);
+ assertTrue(inputTables(2).isInstanceOf[Referenceable]);
}
-
+
@Test def testMissingStateInId: Unit = {
val entity: Referenceable = new Referenceable(typeName)
- val json: String = InstanceSerialization.toJson(entity, true)
- val staticJson: String = "{\n" +
- " \"jsonClass\":\"org.apache.atlas.typesystem.json.InstanceSerialization$_Reference\",\n" +
- " \"id\":{\n" +
- " \"jsonClass\":\"org.apache.atlas.typesystem.json.InstanceSerialization$_Id\",\n" +
- " \"id\":\"" + entity.getId.id + "\",\n" +
- " \"version\":0,\n" +
- " \"typeName\":\"" + entity.getTypeName + "\",\n" +
- " },\n" +
- " \"typeName\":\"" + entity.getTypeName + "\",\n" +
- " \"values\":{}\n" +
- " \"traitNames\":[]\n" +
- " \"traits\":{}\n" +
- "}"
+ val staticJson: String = s"""{
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Reference",
+ "id": {
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Id",
+ "id": "${entity.getId.id}",
+ "version":0,
+ "typeName": "${entity.getTypeName}",
+ },
+ "typeName": "${entity.getTypeName}",
+ "values": {}
+ "traitNames": []
+ "traits": {}
+ }"""
val entity2: Referenceable = InstanceSerialization.fromJsonReferenceable(staticJson, true)
assertNotNull(entity2)
assertNotNull(entity2.getId)
@@ -140,14 +143,13 @@ class InstanceSerializationTest {
@Test def testMissingId: Unit = {
val entity: Referenceable = new Referenceable(typeName)
- val json: String = InstanceSerialization.toJson(entity, true)
- val staticJson: String = "{\n" +
- " \"jsonClass\":\"org.apache.atlas.typesystem.json.InstanceSerialization$_Reference\",\n" +
- " \"typeName\":\"" + entity.getTypeName + "\",\n" +
- " \"values\":{}\n" +
- " \"traitNames\":[],\n" +
- " \"traits\":{}\n" +
- "}"
+ val staticJson: String = s"""{
+ "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$$_Reference",
+ "typeName": "${entity.getTypeName}",
+ "values": {}
+ "traitNames": []
+ "traits": {}
+ }"""
val entity2: Referenceable = InstanceSerialization.fromJsonReferenceable(staticJson, true)
assertNotNull(entity2)
assertNotNull(entity2.getId)