You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by sh...@apache.org on 2016/05/03 06:34:43 UTC
incubator-atlas git commit: ATLAS-723 JSON deserialization regression
(guptaneeru via shwethags)
Repository: incubator-atlas
Updated Branches:
refs/heads/master c69df40f7 -> 73640cc68
ATLAS-723 JSON deserialization regression (guptaneeru via shwethags)
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/73640cc6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/73640cc6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/73640cc6
Branch: refs/heads/master
Commit: 73640cc68a2045fe10a2508fac51701d62629f4f
Parents: c69df40
Author: Shwetha GS <ss...@hortonworks.com>
Authored: Tue May 3 10:04:36 2016 +0530
Committer: Shwetha GS <ss...@hortonworks.com>
Committed: Tue May 3 10:04:36 2016 +0530
----------------------------------------------------------------------
release-log.txt | 1 +
.../typesystem/json/InstanceSerialization.scala | 4 +-
.../json/InstanceSerializationTest.scala | 74 ++++++++++++++++++--
3 files changed, 72 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/73640cc6/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index ef74ddd..de16600 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -18,6 +18,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-723 JSON deserialization regression (guptaneeru via shwethags)
ATLAS-728 Fix few typos in committer email IDs (yhemanth)
ATLAS-435 Add ORDER BY and Limit to search DSL (neerugupta via sumasai)
ATLAS-543 Entity Instance requests should not require ID element for new Entities (harishjp via shwethags)
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/73640cc6/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 a8389bd..eae3063 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,9 +104,9 @@ object InstanceSerialization {
refClass <- idClass
typNm <- typeName
i <- id
- s <- state
+ s <- Some (state)
v <- version
- } yield _Id(i, v, typNm, Some(s))
+ } yield _Id(i, v, typNm, s)
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/73640cc6/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 98a9739..f837b6c 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
@@ -18,14 +18,20 @@
package org.apache.atlas.typesystem.json
-import com.google.common.collect.ImmutableSet
+import scala.util.Random
+
import org.apache.atlas.typesystem.Referenceable
-import org.apache.atlas.typesystem.types.{DataTypes, TypeSystem}
+import org.apache.atlas.typesystem.persistence.Id
+import org.apache.atlas.typesystem.types.DataTypes
+import org.apache.atlas.typesystem.types.TypeSystem
import org.apache.atlas.typesystem.types.utils.TypesUtil
-import org.testng.Assert._
-import org.testng.annotations.{BeforeClass, Test}
+import org.testng.Assert.assertEquals
+import org.testng.Assert.assertNotNull
+import org.testng.Assert.assertTrue
+import org.testng.annotations.BeforeClass
+import org.testng.annotations.Test
-import scala.util.Random
+import com.google.common.collect.ImmutableSet
class InstanceSerializationTest {
private var typeName: String = null
@@ -46,6 +52,64 @@ class InstanceSerializationTest {
assertEquals(entity2.getTraits, entity.getTraits, "Traits mismatch")
}
+ @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 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]);
+ }
+ }
+
@Test def testMissingStateInId: Unit = {
val entity: Referenceable = new Referenceable(typeName)
val json: String = InstanceSerialization.toJson(entity, true)