----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/69305/#review210486 -----------------------------------------------------------
repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerDelegate.java Lines 39 (patched) <https://reviews.apache.org/r/69305/#comment295203> Given SoftDeleteHandlerV1 and HardDeleteHandlerV1 are injectable, consider getting instances via DI. repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerDelegate.java Lines 43 (patched) <https://reviews.apache.org/r/69305/#comment295201> is initDefaultHandler() necessary? Why not move this initialization to the constructor and mark all the fields as 'final'? repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerDelegate.java Lines 50 (patched) <https://reviews.apache.org/r/69305/#comment295200> It is safe to have soft-delete as default (i.e. incase of unknown value): defaultHandler = StringUtils.equals(defaultHandlerClassName, hardDeleteHandler.getClass().getName()) ? hardDeleteHandler : softDeleteHandler; repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerDelegate.java Lines 58 (patched) <https://reviews.apache.org/r/69305/#comment295202> Please review if null value should be handled here. repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2.java Line 98 (original), 98 (patched) <https://reviews.apache.org/r/69305/#comment295198> Shouldn't DeleteHandlerV1 be replaced with DeleteHandlerDelegate here - just as in AtlasEntityStoreV2? webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java Lines 266 (patched) <https://reviews.apache.org/r/69305/#comment295199> Please move 'private' methods towards end of the file. - Madhan Neethiraj On Nov. 13, 2018, 1:25 a.m., Ashutosh Mestry wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/69305/ > ----------------------------------------------------------- > > (Updated Nov. 13, 2018, 1:25 a.m.) > > > Review request for atlas, Kapildeo Nayak, Madhan Neethiraj, Nikhil Bonte, > Nixon Rodrigues, and Sarath Subramanian. > > > Bugs: ATLAS-2774 > https://issues.apache.org/jira/browse/ATLAS-2774 > > > Repository: atlas > > > Description > ------- > > **Approach** > - New: _DeleteHandlerDelegate_. This is a decorator over _DeleteHandlerV1_. > In its implementation it encapsulates: > - _SoftDeleteHandler_: Existing implementation. > - _HardDeleteHandler_: Existing implementation. > - _DefaultHandler_ which is initialized via _atlas-application.properties_. > > - Modified: _EntityREST_ to accept additional parameter to specify if the > delete is hard or soft. > - Modified: _AtlasEntityStoreV2_ to accept additional parameter. Existing > APIs delegate their function to the new more generic method. > - Modified: _ConditionalOnAtlasProperty_ to be applied on field instead of > class. This initializes the handler from _atlas-application.properties_. > > **CURL** > > Hard > ``` > curl -X DELETE > 'http://localhost:21000/api/atlas/v2/entity/guid/abc8c380-2bfe-47aa-b405-5b79ea9a2a0d?hard=true' > ``` > > Soft > ``` > curl -X DELETE > 'http://localhost:21000/api/atlas/v2/entity/guid/abc8c380-2bfe-47aa-b405-5b79ea9a2a0d?hard=false' > ``` > > Default: As initialized by application based on _atlas-application.properties_ > ``` > curl -X DELETE > 'http://localhost:21000/api/atlas/v2/entity/guid/abc8c380-2bfe-47aa-b405-5b79ea9a2a0d' > ``` > > > Diffs > ----- > > intg/src/main/java/org/apache/atlas/store/DeleteType.java PRE-CREATION > > repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java > 750fa1775 > > repository/src/main/java/org/apache/atlas/repository/store/graph/v1/DeleteHandlerDelegate.java > PRE-CREATION > > repository/src/main/java/org/apache/atlas/repository/store/graph/v1/SoftDeleteHandlerV1.java > 0bcf0d6cb > > repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java > 733369692 > > repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2.java > 21617dcc3 > > repository/src/test/java/org/apache/atlas/repository/impexp/ExportSkipLineageTest.java > 3393b82d8 > > repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2Test.java > 4fd28206c > > repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityTestBase.java > ba0551050 > > repository/src/test/java/org/apache/atlas/repository/store/graph/v2/AtlasRelationshipStoreV2Test.java > cd1d72787 > webapp/src/main/java/org/apache/atlas/web/resources/EntityResource.java > 00b29e6c8 > webapp/src/main/java/org/apache/atlas/web/rest/EntityREST.java 68c132c37 > webapp/src/test/java/org/apache/atlas/web/adapters/TestEntityREST.java > 6739364ac > > webapp/src/test/java/org/apache/atlas/web/adapters/TestEntityRESTDelete.java > PRE-CREATION > > > Diff: https://reviews.apache.org/r/69305/diff/3/ > > > Testing > ------- > > **Unit tests** > Additional unit tests. > > **Functional tests** > - Via REST APIs. (See above.) > - Tested with > atlas.DeleteHandlerV1.impl=org.apache.atlas.repository.store.graph.v1.SoftDeleteHandlerV1 > - Tested with > atlas.DeleteHandlerV1.impl=org.apache.atlas.repository.store.graph.v1.HardDeleteHandlerV1 > > > Thanks, > > Ashutosh Mestry > >
