> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > common/src/main/java/org/apache/atlas/AtlasRuntimeException.java, line 23
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364717#file1364717line23>
> >
> >     Why throw unchecked exception? Should be checked exception so that 
> > usages can handle it

Agreed. The reason I chose to initially to go with a subclass of 
RuntimeException is to avoid refactoring a whole bunch of methods making calls 
to TypeSystem API, and further call stack. If you feel strongly about having to 
use checked exception, I can make the changes.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > repository/src/main/java/org/apache/atlas/RepositoryMetadataModule.java, 
> > line 135
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364719#file1364719line135>
> >
> >     Use ApplicationProperties.getClass()

The initialization of cache provider has now been moved from TypeSystemProvider 
to the constructor of TypeSystem and the ApplicationProperties.getClass() has 
been used to get hold of the cache provider.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java, 
> > line 167
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364725#file1364725line167>
> >
> >     should also check among core types

Good find. Done.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java, 
> > line 328
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364725#file1364725line328>
> >
> >     use isRegistered()

Good one. All internal type lookup with typeCache.has has been modified to use 
isRegistered.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java, 
> > line 431
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364725#file1364725line431>
> >
> >     Use isRegistered() wherever typeCache.has() is used

Done.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystemProvider.java,
> >  line 44
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364726#file1364726line44>
> >
> >     It doesn't make sense to create an instance of TypeSystem without 
> > setCacheProvider(). Can you move initialising cache provider to TypeSystem 
> > constructor?

Completely agreed. This was something which I struggled to make a good choice 
between using Guice versus and not using it, especially considering the 
TypeSystem bypasses the Guice by way of being directly accessed in all the 
dependencies with TypeSystem.getInstance. Also, once a user calls 
TypeSystem.getInstance, a completely ready instance of TypeSystem should be 
returned. But the instance of TypeSystem is created privately within TypeSystem 
to honor singleton pattern (infact ideally the constructor should have been 
declared private, but has been made public probably for testing purposes).

So, I finally moved the cache provider initialization to the 
TypeSystem::initialize.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java,
> >  line 64
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364727#file1364727line64>
> >
> >     I don't see any usages of this except in tests, can you remove this 
> > interface?

This was added to later address to further tweak the calls to cache provider 
from TypeSystem. In the sense, an implementer can chose to provide a better 
performing cache provider if the types can be partitioned based on their 
category. TypeSystem code, at many places, has the type category info, so there 
is a chance for further refactoring those call points and the 
DefaultTypeCacheProvider.

I know it is not needed to code for future, but we plan to do that soon after 
this JIRA goes through.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java,
> >  line 110
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364727#file1364727line110>
> >
> >     Not required?

Please see the comment above.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java,
> >  line 124
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364727#file1364727line124>
> >
> >     Faster to maintain another map like earlier?

Agreed. Please see my earlier comment (2 comments above). The plan is to 
further refactor calls made to type cache to lookup more narrowly based on 
category. As part, this comment should get addressed.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java,
> >  line 125
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364727#file1364727line125>
> >
> >     Rename getNames() to getTypeNames()

Done.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java,
> >  line 134
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364727#file1364727line134>
> >
> >     Check for !coreTypes?

Good find. This check is no more necessary and I have removed it. I had added 
it very early when the type cache was even persisting coretypes accidentally. 
As the core types are fixed for the system, they do not need to go to type 
cache provider.


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java,
> >  line 151
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364727#file1364727line151>
> >
> >     Rename to getAllTypeNames()

Done


> On May 16, 2016, 11:53 a.m., Shwetha GS wrote:
> > typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/ITypeCacheProvider.java,
> >  line 133
> > <https://reviews.apache.org/r/46330/diff/4/?file=1364728#file1364728line133>
> >
> >     no params

Great find :-)


- venkata


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


On May 17, 2016, 2:55 p.m., venkata madugundu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/46330/
> -----------------------------------------------------------
> 
> (Updated May 17, 2016, 2:55 p.m.)
> 
> 
> Review request for atlas, David Kantor and Hemanth Yamijala.
> 
> 
> Bugs: ATLAS-683
>     https://issues.apache.org/jira/browse/ATLAS-683
> 
> 
> Repository: atlas
> 
> 
> Description
> -------
> 
> The local type-cache has been carved out as an interface ITypeCacheProvider 
> and the TypeSystem code has been refactored to use an instance of 
> ITypeCacheProvider injected through Guice. An instance of ITypeCacheProvider 
> is created by looking up the implementation class specified in 
> atlas-application.properties (property - atlas.typesystem.cache.provider). 
> The default implementation is a local cache implemented by 
> DefaultTypeCacheProvider.
> 
> 
> Diffs
> -----
> 
>   .gitignore f5899e2069d29d71378cabe51900c120db19eef9 
>   common/src/main/java/org/apache/atlas/AtlasRuntimeException.java 
> PRE-CREATION 
>   distro/src/conf/atlas-application.properties 
> 68a002115bdda99fba4dcace5ab97399c59289d9 
>   typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java 
> 7763ebc39593d2ba747bd53e861f1d35657c8ea1 
>   
> typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProvider.java
>  PRE-CREATION 
>   
> typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/ITypeCacheProvider.java
>  PRE-CREATION 
>   
> typesystem/src/test/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheProviderTest.java
>  PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/46330/diff/
> 
> 
> Testing
> -------
> 
> Unit tests for the local cache DefaultTypeCacheProvider have been authored 
> and all other affected unit tests of TypeSystem interface are modified to 
> function in the presence of a type cache provider. Ran all tests of Atlas.
> 
> 
> Thanks,
> 
> venkata madugundu
> 
>

Reply via email to