----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/63120/ -----------------------------------------------------------
Review request for atlas, Apoorv Naik, Ashutosh Mestry, and Madhan Neethiraj. Bugs: ATLAS-2216 https://issues.apache.org/jira/browse/ATLAS-2216 Repository: atlas Description ------- Taxonomy was introduced as a tech preview feature earlier, but the following challenges in design/implementation make it necessary to replace the current implementation with newer features being introduced: 1. Current implementation uses tags to model taxonomy terms, which limits a term to be associated to one entity only. Associating with multiple entities would require copying of a term, making it difficult to manage. 2. Current implementation uses dot separated naming convention to model taxonomy hierarchy. This makes it inefficient to rebuild taxonomy hierarchy. 3. Current implementation uses tinkerpop blueprints API and makes it difficult for migration to newer tinkerpop version. 4. Current implementation is tied to tinkerpop2/titan0 version and since this is not abstracted; it blocks the introduction of JanusGraph into Atlas ATLAS-1410 introduces a new Glossary API, which uses entities to model taxonomy terms and uses relationships feature to associate terms with entities. Also, the new model includes categories, which makes Glossary to be used for wider use-cases. Use of relationships to associate terms with entities would also allow tag-propagation more naturally. Given above, I propose to remove current tech-preview implementation of taxonomy feature from both server-side and UI in master branch. Once this is removed, existing taxonomy terms will be seen as tags along with rest of the tags. Diffs ----- addons/models/0000-Area0/0010-base_model.json 41cf916e authorization/src/main/java/org/apache/atlas/authorize/AtlasResourceTypes.java 9902685e authorization/src/main/java/org/apache/atlas/authorize/simple/AtlasAuthorizationUtils.java cc42a730 authorization/src/main/java/org/apache/atlas/authorize/simple/PolicyParser.java aabac901 authorization/src/test/java/org/apache/atlas/authorize/simple/AtlasAuthorizationUtilsTest.java b76a297a catalog/pom.xml 0d13ae47 catalog/src/main/java/org/apache/atlas/catalog/AtlasTypeSystem.java 8f9cd1d3 catalog/src/main/java/org/apache/atlas/catalog/BaseRequest.java c03d6d09 catalog/src/main/java/org/apache/atlas/catalog/BaseResourceProvider.java feb9d727 catalog/src/main/java/org/apache/atlas/catalog/CollectionRequest.java 8a6e7fcc catalog/src/main/java/org/apache/atlas/catalog/DefaultDateFormatter.java df075059 catalog/src/main/java/org/apache/atlas/catalog/DefaultPropertyMapper.java 6c41881d catalog/src/main/java/org/apache/atlas/catalog/DefaultTypeSystem.java 888818e4 catalog/src/main/java/org/apache/atlas/catalog/EntityResourceProvider.java cee102af catalog/src/main/java/org/apache/atlas/catalog/EntityTagResourceProvider.java c2a843b5 catalog/src/main/java/org/apache/atlas/catalog/InstanceRequest.java 87722291 catalog/src/main/java/org/apache/atlas/catalog/JsonSerializer.java a75639f4 catalog/src/main/java/org/apache/atlas/catalog/PropertyMapper.java 50ee2757 catalog/src/main/java/org/apache/atlas/catalog/PropertyValueFormatter.java a42f5287 catalog/src/main/java/org/apache/atlas/catalog/Request.java 86da787d catalog/src/main/java/org/apache/atlas/catalog/ResourceComparator.java deb2e4c7 catalog/src/main/java/org/apache/atlas/catalog/ResourceProvider.java a63309ef catalog/src/main/java/org/apache/atlas/catalog/Result.java 34a81abe catalog/src/main/java/org/apache/atlas/catalog/TaxonomyResourceProvider.java b59dcae0 catalog/src/main/java/org/apache/atlas/catalog/TermPath.java 32522272 catalog/src/main/java/org/apache/atlas/catalog/TermResourceProvider.java 3202d040 catalog/src/main/java/org/apache/atlas/catalog/TermVertexWrapper.java 14fcca75 catalog/src/main/java/org/apache/atlas/catalog/VertexWrapper.java 966a3ae7 catalog/src/main/java/org/apache/atlas/catalog/definition/BaseResourceDefinition.java 6a67b250 catalog/src/main/java/org/apache/atlas/catalog/definition/EntityResourceDefinition.java 052a21d3 catalog/src/main/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinition.java c5a42135 catalog/src/main/java/org/apache/atlas/catalog/definition/ResourceDefinition.java a797f0bd catalog/src/main/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinition.java 434a189f catalog/src/main/java/org/apache/atlas/catalog/definition/TermResourceDefinition.java 51ef65a5 catalog/src/main/java/org/apache/atlas/catalog/exception/CatalogException.java 7bb2f7b8 catalog/src/main/java/org/apache/atlas/catalog/exception/CatalogRuntimeException.java 51fd7afb catalog/src/main/java/org/apache/atlas/catalog/exception/InvalidPayloadException.java 34c5ab59 catalog/src/main/java/org/apache/atlas/catalog/exception/InvalidQueryException.java a7abe239 catalog/src/main/java/org/apache/atlas/catalog/exception/ResourceAlreadyExistsException.java d7670c1a catalog/src/main/java/org/apache/atlas/catalog/exception/ResourceNotFoundException.java 0307137a catalog/src/main/java/org/apache/atlas/catalog/projection/BaseRelation.java 03f4f501 catalog/src/main/java/org/apache/atlas/catalog/projection/GenericRelation.java 2cccd817 catalog/src/main/java/org/apache/atlas/catalog/projection/Projection.java daa1351f catalog/src/main/java/org/apache/atlas/catalog/projection/ProjectionResult.java 7b12e2d5 catalog/src/main/java/org/apache/atlas/catalog/projection/Relation.java b19bc15c catalog/src/main/java/org/apache/atlas/catalog/projection/RelationProjection.java e4356287 catalog/src/main/java/org/apache/atlas/catalog/projection/RelationSet.java 4adf861e catalog/src/main/java/org/apache/atlas/catalog/projection/TagRelation.java cdd1ad14 catalog/src/main/java/org/apache/atlas/catalog/projection/TraitRelation.java d0f75f3e catalog/src/main/java/org/apache/atlas/catalog/query/AlwaysQueryExpression.java d120bc45 catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityQuery.java d6b737c6 catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityTagQuery.java 3e301f37 catalog/src/main/java/org/apache/atlas/catalog/query/AtlasQuery.java 4930ab09 catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTaxonomyQuery.java df3e8da5 catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTermQuery.java f064037a catalog/src/main/java/org/apache/atlas/catalog/query/BaseQuery.java ff48020b catalog/src/main/java/org/apache/atlas/catalog/query/BaseQueryExpression.java 2364ee53 catalog/src/main/java/org/apache/atlas/catalog/query/BooleanQueryExpression.java b4d759a5 catalog/src/main/java/org/apache/atlas/catalog/query/PrefixQueryExpression.java 6b43667a catalog/src/main/java/org/apache/atlas/catalog/query/ProjectionQueryExpression.java b9158779 catalog/src/main/java/org/apache/atlas/catalog/query/QueryExpression.java c53b94b2 catalog/src/main/java/org/apache/atlas/catalog/query/QueryFactory.java a4fd4ad1 catalog/src/main/java/org/apache/atlas/catalog/query/RegexQueryExpression.java c28d4d5d catalog/src/main/java/org/apache/atlas/catalog/query/TermQueryExpression.java a7908664 catalog/src/main/java/org/apache/atlas/catalog/query/TermRangeQueryExpression.java 44cfb72e catalog/src/main/java/org/apache/atlas/catalog/query/WildcardQueryExpression.java 689891f6 catalog/src/test/java/org/apache/atlas/catalog/CollectionRequestTest.java a2285462 catalog/src/test/java/org/apache/atlas/catalog/DefaultDateFormatterTest.java bbc98c59 catalog/src/test/java/org/apache/atlas/catalog/DefaultPropertyMapperTest.java d37c0416 catalog/src/test/java/org/apache/atlas/catalog/EntityResourceProviderTest.java 67af4091 catalog/src/test/java/org/apache/atlas/catalog/EntityTagResourceProviderTest.java 96cb523c catalog/src/test/java/org/apache/atlas/catalog/InstanceRequestTest.java d7162967 catalog/src/test/java/org/apache/atlas/catalog/JsonSerializerTest.java 60cc210e catalog/src/test/java/org/apache/atlas/catalog/ResourceComparatorTest.java 146ca0c3 catalog/src/test/java/org/apache/atlas/catalog/TaxonomyResourceProviderTest.java 8dfce5e9 catalog/src/test/java/org/apache/atlas/catalog/TermResourceProviderTest.java 7d61579d catalog/src/test/java/org/apache/atlas/catalog/VertexWrapperTest.java 41d934f0 catalog/src/test/java/org/apache/atlas/catalog/definition/EntityResourceDefinitionTest.java 5e56e84e catalog/src/test/java/org/apache/atlas/catalog/definition/EntityTagResourceDefinitionTest.java 41f50c7d catalog/src/test/java/org/apache/atlas/catalog/definition/TaxonomyResourceDefinitionTest.java 1af8d149 catalog/src/test/java/org/apache/atlas/catalog/definition/TermResourceDefinitionTest.java b7b23da2 catalog/src/test/java/org/apache/atlas/catalog/projection/TagRelationTest.java 5a9c875b catalog/src/test/java/org/apache/atlas/catalog/query/AlwaysQueryExpressionTest.java 81d70a4f catalog/src/test/java/org/apache/atlas/catalog/query/AtlasEntityQueryTest.java 528c83a7 catalog/src/test/java/org/apache/atlas/catalog/query/QueryFactoryTest.java 36cb6dc7 distro/src/conf/atlas-application.properties 585a5791 distro/src/conf/policy-store.txt c804b8d4 pom.xml 3bbfdd9c typesystem/src/test/resources/policy-store.txt 47583c1e webapp/pom.xml bfa79e81 webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java 82a4d4eb webapp/src/main/java/org/apache/atlas/web/resources/BaseService.java a013494c webapp/src/main/java/org/apache/atlas/web/resources/CatalogExceptionMapper.java 4f7da2e9 webapp/src/main/java/org/apache/atlas/web/resources/CatalogRuntimeExceptionMapper.java e11d6d1b webapp/src/main/java/org/apache/atlas/web/resources/EntityService.java 77115d7c webapp/src/main/java/org/apache/atlas/web/resources/TaxonomyService.java 05b197fc webapp/src/test/java/org/apache/atlas/web/resources/TaxonomyServiceTest.java 54a9b9a2 webapp/src/test/java/org/apache/atlas/web/security/BaseSecurityTest.java ad87025d Diff: https://reviews.apache.org/r/63120/diff/1/ Testing ------- mvn clean install -DskipTests build was sucessfull validation with embedded-hbase-solr profile - inprogress Thanks, Sarath Subramanian