-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/59881/#review177425
-----------------------------------------------------------




intg/src/main/java/org/apache/atlas/model/typedef/AtlasStructDef.java
Line 278 (original), 284 (patched)
<https://reviews.apache.org/r/59881/#comment250975>

    Retain exising constructor and add a new one that takes additional 
parameter 'defaultValue'; same comment for the next constructor as well.



intg/src/main/java/org/apache/atlas/model/typedef/AtlasStructDef.java
Lines 463 (patched)
<https://reviews.apache.org/r/59881/#comment250956>

    "defaultValue == that.defaultValue" ==> Object.equals(defaultValue, 
that.defaultValue)



intg/src/main/java/org/apache/atlas/type/AtlasArrayType.java
Line 204 (original), 223 (patched)
<https://reviews.apache.org/r/59881/#comment250966>

    To handle obj of type "String" (will be the case when 
AtlasType.createDefaultValue(Object val) calls this method), consider adding 
the following:
    
    if (obj instanceof String) {
      obj = AtlasType.fromJson(obj, List.class);
    }



intg/src/main/java/org/apache/atlas/type/AtlasMapType.java
Line 150 (original), 163 (patched)
<https://reviews.apache.org/r/59881/#comment250967>

    To handle obj of type "String" (will be the case when 
AtlasType.createDefaultValue(Object val) calls this method), consider adding 
the following:
    
    if (obj instanceof String) {
      obj = AtlasType.fromJson(obj, Map.class);
    }



intg/src/main/java/org/apache/atlas/type/AtlasStructType.java
Line 269 (original), 280 (patched)
<https://reviews.apache.org/r/59881/#comment250971>

    To handle obj of type "String" (will be the case when 
AtlasType.createDefaultValue(Object val) calls this method), consider adding 
the following:
    
    if (obj instanceof String) {
      obj = AtlasType.fromJson(obj, Map.class);
    }



intg/src/main/java/org/apache/atlas/type/AtlasType.java
Lines 71 (patched)
<https://reviews.apache.org/r/59881/#comment250965>

    - change parameter type to "Object"
    - instead of overriding createDefaultValue(Object val) in each 
implementation, consider the following default implementation here:
    
      public Object createDefaultValue(Object val) {
        return val == null ? createDefaultValue() : getNormalizedValue(val);
      }



intg/src/test/java/org/apache/atlas/TestUtilsV2.java
Line 618 (original), 618 (patched)
<https://reviews.apache.org/r/59881/#comment250977>

    Existing constructors of AtlasAttributeDef should be retained - please see 
earlier comment in AtlasStructDef.java. Once that is taken care of, changes 
here (addition of null parameter) should be reverted.



intg/src/test/java/org/apache/atlas/model/typedef/TestAtlasStructDef.java
Line 71 (original), 71 (patched)
<https://reviews.apache.org/r/59881/#comment250979>

    "AtlasBaseTypeDef.ATLAS_TYPE_STRING" doesn't look like a good default value 
for INT type. Anyway, you should revert this change and add another test for a 
constructor that take a default value.



intg/src/test/java/org/apache/atlas/type/TestAtlasEntityType.java
Line 41 (original), 41 (patched)
<https://reviews.apache.org/r/59881/#comment250980>

    This patch has bunch of whitespace changes. Consider avoiding these. These 
make it difficult to find the real changes to review (and can make merge 
resolutions difficult during backport).



repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasTypeDefGraphStore.java
Lines 874 (patched)
<https://reviews.apache.org/r/59881/#comment250981>

    I guess this was added for troubleshooting. Consider adding LOG.debug() or 
remove this line.



repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java
Line 261 (original), 261 (patched)
<https://reviews.apache.org/r/59881/#comment250984>

    Consider replacing this block with:
    
    if (attrValue == null) {
        AtlasAttributeDef attributeDef = attribute.getAttributeDef();
    
        if (attributeDef.getDefaultValue() != null) {
            attrValue = 
attrType.createDefaultValue(attributeDef.getdefaultValue());
        } else {
            if (attribute.getAttributeDef().getIsOptional()) {
                attrValue = attrType.createOptionalDefaultValue();
            } else {
                attrValue = attrType.createDefaultValue();
            }
        }
    }


- Madhan Neethiraj


On June 7, 2017, 2:25 p.m., Ruchi Solani wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/59881/
> -----------------------------------------------------------
> 
> (Updated June 7, 2017, 2:25 p.m.)
> 
> 
> Review request for atlas, Apoorv Naik, Madhan Neethiraj, Nixon Rodrigues, and 
> Sarath Subramanian.
> 
> 
> Bugs: ATLAS-1863
>     https://issues.apache.org/jira/browse/ATLAS-1863
> 
> 
> Repository: atlas
> 
> 
> Description
> -------
> 
> While creating entity if attribute value are not set explicitly for primitive 
> type which are optional, then default value should be set from attributedef.
> 
> 
> Diffs
> -----
> 
>   intg/src/main/java/org/apache/atlas/model/typedef/AtlasStructDef.java 
> aee4907 
>   intg/src/main/java/org/apache/atlas/type/AtlasArrayType.java 2d386f1 
>   intg/src/main/java/org/apache/atlas/type/AtlasBuiltInTypes.java f08a601 
>   intg/src/main/java/org/apache/atlas/type/AtlasEnumType.java 1cd27b3 
>   intg/src/main/java/org/apache/atlas/type/AtlasMapType.java 385a9ae 
>   intg/src/main/java/org/apache/atlas/type/AtlasStructType.java 0eeaf9c 
>   intg/src/main/java/org/apache/atlas/type/AtlasType.java 28d0a07 
>   intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java c0135f5 
>   intg/src/test/java/org/apache/atlas/TestUtilsV2.java 2a6ea92 
>   intg/src/test/java/org/apache/atlas/model/ModelTestUtil.java 084bcc4 
>   intg/src/test/java/org/apache/atlas/model/typedef/TestAtlasStructDef.java 
> 8d2bfe2 
>   intg/src/test/java/org/apache/atlas/type/TestAtlasEntityType.java 3c53c02 
>   intg/src/test/java/org/apache/atlas/type/TestAtlasStructType.java a37dd46 
>   intg/src/test/java/org/apache/atlas/type/TestAtlasTypeRegistry.java accba77 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasTypeDefGraphStore.java
>  17b7e17 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
>  1c6cfc7 
>   
> repository/src/main/java/org/apache/atlas/repository/store/graph/v1/EntityGraphMapper.java
>  80cd1ee 
>   
> repository/src/test/java/org/apache/atlas/repository/graph/GraphBackedMetadataRepositoryTest.java
>  8120aaa 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/AtlasTypeDefGraphStoreTest.java
>  9f7214c 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasDeleteHandlerV1Test.java
>  9331e35 
>   
> repository/src/test/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityStoreV1Test.java
>  44067b9 
>   webapp/src/test/java/org/apache/atlas/web/integration/BaseResourceIT.java 
> b59d3ee 
>   
> webapp/src/test/java/org/apache/atlas/web/integration/TypedefsJerseyResourceIT.java
>  c46689c 
> 
> 
> Diff: https://reviews.apache.org/r/59881/diff/1/
> 
> 
> Testing
> -------
> 
> 1. created Type using API with defaultValue attribute, and tested its entity 
> creation with default value being set in entity attribute.
> 2. Tested on different primitive types attributes.
> 3. Ran Unit tests using mvn clean install
>  Two unit test failing:
>    
> HardDeleteHandlerV1Test>AtlasDeleteHandlerV1Test.testDisconnectUnidirectionalArrayReferenceFromStructAndTraitTypes:617
>  » AtlasBase
>   
> SoftDeleteHandlerV1Test>AtlasDeleteHandlerV1Test.testDisconnectUnidirectionalArrayReferenceFromStructAndTraitTypes:617
>  » AtlasBase
> 
> 
> Thanks,
> 
> Ruchi Solani
> 
>

Reply via email to