> On Feb. 6, 2017, 6:59 p.m., Apoorv Naik wrote: > > intg/src/main/java/org/apache/atlas/model/instance/GuidMapping.java, line 44 > > <https://reviews.apache.org/r/56283/diff/4/?file=1625039#file1625039line44> > > > > Use Jackson annotations to control json serialization/de-serialization > > instead of Gson. The model classes should be pure POJOs
I've addded the jackson annotations. The gson-based serialization stuff is needed since this class is used in both V1 and V2. - Jeff ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/56283/#review164386 ----------------------------------------------------------- On Feb. 7, 2017, 4:17 a.m., Jeff Hagelberg wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/56283/ > ----------------------------------------------------------- > > (Updated Feb. 7, 2017, 4:17 a.m.) > > > Review request for atlas and David Kantor. > > > Bugs: ATLAS-746 > https://issues.apache.org/jira/browse/ATLAS-746 > > > Repository: atlas > > > Description > ------- > > When a an entity is being created that contains nested entities, it is not > currently possible to determine what guids were assigned to the nested > entities. This is because the result going back to the caller is simply a > flat list of the guids of the entities that were created. We get back the > guids, but it is impossible to know which nested entities they refer to > without executing an additional query. > > This task addresses this issue by adding a "guidAssignments" section to REST > API output when creating / updating entities. This has a map from the > "unassigned" guids in the original request to the guids that were assigned > during the entity creation. This makes it easy to determine what the guid is > for all the entities that were created, regardlesss of how deeply nested they > are. > > Example: > > { > "entitiesMutated":{ > … > }, > "guidAssignments":{ > "-267745036104320":"27423408-4619-4736-9b99-b9f2bb5783b7", > "-267745036104310":"41628d3d-6da0-4d79-9f6b-863c6631d31f", > "-267745036104311":"b75acf2d-0523-423e-ac1e-4721b2322b91", > "-267745036104300":"dbbd27b1-048a-447c-82dd-7ccff717bd4a", > "-267745036104309":"cc12c71f-6d30-499e-8dab-f243b8547f42", > "-267745036104316":"f5149832-c3ef-47ae-a982-a29b365e0199", > "-267745036104305":"fcdd4076-c3e6-4a4c-ac56-c62599ae79c9", > "-267745036104306":"7cba46ff-52ca-49e6-8327-ab5f7892deba", > "-267745036104317":"b33aea18-365a-4017-9659-a084593dd47e", > "-267745036104318":"d1c36c36-0968-4758-b2f9-d41ed6097c1b", > "-267745036104307":"1da32314-7ac2-4d88-97c9-a1f26edb281b", > "-267745036104319":"50c707ce-53e2-49c6-862b-b79a37102ae5", > "-267745036104308":"c49655bc-ba54-4e37-94f2-938c9bc565a5", > "-267745036104301":"f6190422-09f7-4f17-bda3-a1b7a5f5415d", > "-267745036104312":"b6b44a3f-6307-4d67-a777-a29764971dba", > "-267745036104302":"e3f570b7-9b74-43f4-ba6e-c730d8a630b3", > "-267745036104313":"5d6b033f-eec3-4bd6-b655-be48042a6530", > "-267745036104314":"0ca94243-9187-43a1-aaad-ced0ea2a1731", > "-267745036104303":"56b42729-45af-44e5-98d4-a6a77889340a", > "-267745036104315":"8061b59b-fa1c-4ca8-8f18-72c3bcc82d73", > "-267745036104304":"b9b3ecf7-47f6-4887-9cd7-32febf0e2fa2" > } > } > > > I also fixed an issue preventing nested entities from being created. The > issue there was that the mapping composite attribute representation in the > old and new format was inconsistent. I've changed the code so that an > attribute is treated as composite if it is either a "mappedFromRef" attribute > or it has a foreign key with "update"as the onDelete action. There were two > competing ways of determining this. > > One quick note about > EntityV2JerseyResourceIT.testSubmitEntityWithBadDateFormat(). This test, on > the surface, looked like it was testing that creating an entity with a date > in an invalid format would fail. In reality, though, the invalid date was > being nulled out and ignored. The failure was actually happening after that > point, because the database reference ("db") could not be resolved. It was > failing with this exception: > > org.apache.atlas.typesystem.exception.EntityNotFoundException: Could not find > vertex for Class Reference (type: hive_db_v2, id: <unassigned>)) > > This was a direct result of "db" being a non-composite attribute : > ClassType.convert() replaces non-composite reference attributes in an entity > being created with their Id. > > As part of the testing for these changes, I changed the "db" attribute to be > a composite attribute. As a result, the entity is now able to be created > successsfully. I've updated the test accordingly. > > > Diffs > ----- > > catalog/src/main/java/org/apache/atlas/catalog/DefaultTypeSystem.java > 726351aa2037c3ead59eaa3fe1d052cc0889f525 > client/src/main/java/org/apache/atlas/AtlasBaseClient.java > 9b699914bd4870683f271c2bab0e3f87ef76fb9a > client/src/main/java/org/apache/atlas/AtlasClient.java > 154644dd9e637d612960a8c811c54efaf18d3b27 > client/src/main/java/org/apache/atlas/AtlasEntitiesClientV2.java > 2b3669dde8a67e054675ea44a90c281ffecc32af > client/src/main/java/org/apache/atlas/CreateUpdateEntitiesResult.java > PRE-CREATION > > intg/src/main/java/org/apache/atlas/model/instance/EntityMutationResponse.java > 874a43ab9730b23958022e4e64c346e0925ef5cd > intg/src/main/java/org/apache/atlas/model/instance/GuidMapping.java > PRE-CREATION > > repository/src/main/java/org/apache/atlas/repository/MetadataRepository.java > 1d61ea84f33e8a273229cc077cf1c205d7e29f96 > > repository/src/main/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepository.java > 27bf6d7278ac22ae9d1b572141e5a19e1293c48f > > repository/src/main/java/org/apache/atlas/repository/graph/TypedInstanceToGraphMapper.java > 1a88251f5c465fca6bd9a3dd28dc9afb3540fe25 > > repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java > d48c87e2630f81125192ae89bce2b32c2b8ff5ff > > repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasTypeDefGraphStoreV1.java > 88197aca7966cb1a0d8f5b33bedeb9ff27689b52 > > repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java > b14531f0b994674daa72773e65476151215d664b > repository/src/test/java/org/apache/atlas/BaseRepositoryTest.java > 9714a8b2ba3edee65632352d9059dd94374faaae > repository/src/test/java/org/apache/atlas/TestUtils.java > 1d1a5e04210ccc48ec989c514d3796c2d7dc211c > > repository/src/test/java/org/apache/atlas/discovery/GraphBackedDiscoveryServiceTest.java > ce87c9ee5ef45dc8339145e40e9e2a6c37a40e9f > > repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryDeleteTestBase.java > d6136edc7cf29d648292ce6b852e88081c1c3165 > > repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java > 96b017364718312b55715a1056a5e43155c9152a > > repository/src/test/java/org/apache/atlas/repository/graph/GraphHelperTest.java > f5a6a0519b9153e6edc68ed4502dad2c15a5a1e0 > > repository/src/test/java/org/apache/atlas/repository/graph/GraphRepoMapperScaleTest.java > a03f965f81dadd932bb12c6c6ab62fc7ebb27322 > > repository/src/test/java/org/apache/atlas/repository/typestore/GraphBackedTypeStoreTest.java > 265b316a8582172b045f4313b63d3f4cc7f1ad72 > > repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java > 1ad79b1f3e78f712905d57f58e1d00d59d535b70 > server-api/src/main/java/org/apache/atlas/services/MetadataService.java > d5d8d9b5d57f4bf7fbf49373337d526d67583e5e > typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java > 1dcad1408e08ff049444cbbe72668efe9b80e55e > webapp/src/main/java/org/apache/atlas/examples/QuickStartV2.java > 1559eb91d89e610f96f0c2ddbf6ad1ce7095773f > webapp/src/main/java/org/apache/atlas/util/RestUtils.java > cecf636a0b3e3c9c9806497768c0986d773f1c5b > > webapp/src/main/java/org/apache/atlas/web/adapters/AtlasInstanceRestAdapters.java > 7f5a05696f415eb56ffa90dedc3d6708a921b046 > webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java > 9ca684d956724512f787ff5169eece70197bd0b1 > webapp/src/main/java/org/apache/atlas/web/rest/EntitiesREST.java > af0377e9f9c52a52b4f3ebc3f6fa13762f5569d3 > webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java > 9c0ccf66671ec09524b34b29bb563959db0659ef > webapp/src/test/java/org/apache/atlas/examples/QuickStartV2IT.java > 952813917cd7a519bc3e6e2ae7f30c988ad9db91 > webapp/src/test/java/org/apache/atlas/util/RestUtilsTest.java PRE-CREATION > webapp/src/test/java/org/apache/atlas/web/resources/BaseResourceIT.java > 18bbc3bc3e26c66885b652d9d4efdc538c31f0cc > > webapp/src/test/java/org/apache/atlas/web/resources/EntityJerseyResourceIT.java > 9724c4c4bb2dc6c209cdf643d0eb4eb4856eb981 > > webapp/src/test/java/org/apache/atlas/web/resources/EntityV2JerseyResourceIT.java > 29a6d4913e3742ea54cbd4d23ca8ba439c48b23a > > Diff: https://reviews.apache.org/r/56283/diff/ > > > Testing > ------- > > Ran full build, no regressions found > > > Thanks, > > Jeff Hagelberg > >
