You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/10/18 20:33:54 UTC

[2/7] atlas git commit: ATLAS-2216: Remove Catalog/Taxonomy feature from Atlas

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/query/AtlasEntityQueryTest.java
----------------------------------------------------------------------
diff --git a/catalog/src/test/java/org/apache/atlas/catalog/query/AtlasEntityQueryTest.java b/catalog/src/test/java/org/apache/atlas/catalog/query/AtlasEntityQueryTest.java
deleted file mode 100644
index 528c83a..0000000
--- a/catalog/src/test/java/org/apache/atlas/catalog/query/AtlasEntityQueryTest.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.catalog.query;
-
-import com.thinkaurelius.titan.core.TitanGraph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.repository.Constants;
-import org.apache.atlas.repository.graphdb.AtlasGraph;
-import org.easymock.Capture;
-import org.testng.annotations.Test;
-
-import java.util.*;
-
-import static org.easymock.EasyMock.*;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-/**
- * Unit tests for AtlasEntityQuery.
- */
-@SuppressWarnings("unchecked")
-public class AtlasEntityQueryTest {
-    //todo: add tests for instance query and getInitialPipeline()
-    @Test
-    public void testExecute_Collection() throws Exception {
-        AtlasGraph graph = createStrictMock(AtlasGraph.class);
-        QueryExpression expression = createStrictMock(QueryExpression.class);
-        ResourceDefinition resourceDefinition = createStrictMock(ResourceDefinition.class);
-        Request request = createStrictMock(Request.class);
-        GremlinPipeline initialPipeline = createStrictMock(GremlinPipeline.class);
-        Pipe queryPipe = createStrictMock(Pipe.class);
-        Pipe expressionPipe = createStrictMock(Pipe.class);
-        Pipe notDeletedPipe = createStrictMock(Pipe.class);
-        GremlinPipeline rootPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline queryPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline expressionPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline notDeletedPipeline = createStrictMock(GremlinPipeline.class);
-        Vertex vertex1 = createStrictMock(Vertex.class);
-        VertexWrapper vertex1Wrapper = createStrictMock(VertexWrapper.class);
-
-        List<Vertex> results = new ArrayList<>();
-        results.add(vertex1);
-
-        Map<String, Object> vertex1PropertyMap = new HashMap<>();
-        vertex1PropertyMap.put("prop1", "prop1.value1");
-        vertex1PropertyMap.put("prop2", "prop2.value1");
-
-        Map<String, Object> filteredVertex1PropertyMap = new HashMap<>();
-        filteredVertex1PropertyMap.put("prop1", "prop1.value1");
-
-        // mock expectations
-        expect(initialPipeline.add(queryPipe)).andReturn(queryPipeline);
-        expect(initialPipeline.add(notDeletedPipe)).andReturn(notDeletedPipeline);
-        expect(initialPipeline.as("root")).andReturn(rootPipeline);
-        expect(expression.asPipe()).andReturn(expressionPipe);
-        expect(rootPipeline.add(expressionPipe)).andReturn(expressionPipeline);
-        expect(expressionPipeline.back("root")).andReturn(rootPipeline);
-        expect(rootPipeline.toList()).andReturn(results);
-        graph.commit();
-        expect(vertex1Wrapper.getPropertyMap()).andReturn(vertex1PropertyMap);
-        expect(resourceDefinition.filterProperties(request, vertex1PropertyMap)).andReturn(filteredVertex1PropertyMap);
-        expect(resourceDefinition.resolveHref(filteredVertex1PropertyMap)).andReturn("/foo/bar");
-        expect(request.getCardinality()).andReturn(Request.Cardinality.COLLECTION);
-
-        replay(graph, expression, resourceDefinition, request, initialPipeline, queryPipe, expressionPipe,
-                notDeletedPipe, rootPipeline, queryPipeline, expressionPipeline, notDeletedPipeline,
-                vertex1, vertex1Wrapper);
-        // end mock expectations
-
-        AtlasEntityQuery query = new TestAtlasEntityQuery(expression, resourceDefinition, request,
-                initialPipeline, queryPipe, notDeletedPipe, graph, vertex1Wrapper);
-
-        // invoke method being tested
-        Collection<Map<String, Object>> queryResults = query.execute();
-
-        assertEquals(queryResults.size(), 1);
-        Map<String, Object> queryResultMap = queryResults.iterator().next();
-        assertEquals(queryResultMap.size(), 2);
-        assertEquals(queryResultMap.get("prop1"), "prop1.value1");
-        assertEquals(queryResultMap.get("href"), "/foo/bar");
-
-        verify(graph, expression, resourceDefinition, request, initialPipeline, queryPipe, expressionPipe,
-                notDeletedPipe, rootPipeline, queryPipeline, expressionPipeline, notDeletedPipeline,
-                vertex1, vertex1Wrapper);
-    }
-
-    @Test
-    public void testExecute_Collection_rollbackOnException() throws Exception {
-        AtlasGraph graph = createStrictMock(AtlasGraph.class);
-        QueryExpression expression = createStrictMock(QueryExpression.class);
-        ResourceDefinition resourceDefinition = createStrictMock(ResourceDefinition.class);
-        Request request = createStrictMock(Request.class);
-        GremlinPipeline initialPipeline = createStrictMock(GremlinPipeline.class);
-        Pipe queryPipe = createStrictMock(Pipe.class);
-        Pipe expressionPipe = createStrictMock(Pipe.class);
-        Pipe notDeletedPipe = createStrictMock(Pipe.class);
-        GremlinPipeline rootPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline queryPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline expressionPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline notDeletedPipeline = createStrictMock(GremlinPipeline.class);
-
-        // mock expectations
-        expect(initialPipeline.add(queryPipe)).andReturn(queryPipeline);
-        expect(initialPipeline.add(notDeletedPipe)).andReturn(notDeletedPipeline);
-        expect(initialPipeline.as("root")).andReturn(rootPipeline);
-        expect(expression.asPipe()).andReturn(expressionPipe);
-        expect(rootPipeline.add(expressionPipe)).andReturn(expressionPipeline);
-        expect(expressionPipeline.back("root")).andReturn(rootPipeline);
-        expect(rootPipeline.toList()).andThrow(new RuntimeException("something bad happened"));
-        graph.rollback();
-
-        replay(graph, expression, resourceDefinition, request, initialPipeline, queryPipe, expressionPipe,
-                notDeletedPipe, rootPipeline, queryPipeline, expressionPipeline, notDeletedPipeline);
-        // end mock expectations
-
-        AtlasEntityQuery query = new TestAtlasEntityQuery(expression, resourceDefinition, request,
-                initialPipeline, queryPipe, notDeletedPipe, graph, null);
-
-        try {
-            // invoke method being tested
-            query.execute();
-            fail("expected exception");
-        } catch (RuntimeException e) {
-            assertEquals(e.getMessage(), "something bad happened");
-        }
-
-        verify(graph, expression, resourceDefinition, request, initialPipeline, queryPipe, expressionPipe,
-                notDeletedPipe, rootPipeline, queryPipeline, expressionPipeline, notDeletedPipeline);
-    }
-
-    @Test
-    public void testExecute_Collection_update() throws Exception {
-        AtlasGraph graph = createStrictMock(AtlasGraph.class);
-        QueryExpression expression = createStrictMock(QueryExpression.class);
-        ResourceDefinition resourceDefinition = createStrictMock(ResourceDefinition.class);
-        Request request = createStrictMock(Request.class);
-        GremlinPipeline initialPipeline = createStrictMock(GremlinPipeline.class);
-        Pipe queryPipe = createStrictMock(Pipe.class);
-        Pipe expressionPipe = createStrictMock(Pipe.class);
-        Pipe notDeletedPipe = createStrictMock(Pipe.class);
-        GremlinPipeline rootPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline queryPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline expressionPipeline = createStrictMock(GremlinPipeline.class);
-        GremlinPipeline notDeletedPipeline = createStrictMock(GremlinPipeline.class);
-        Vertex vertex1 = createStrictMock(Vertex.class);
-        VertexWrapper vertex1Wrapper = createStrictMock(VertexWrapper.class);
-        Capture<Long> modifiedTimestampCapture = newCapture();
-
-        List<Vertex> results = new ArrayList<>();
-        results.add(vertex1);
-
-        Map<String, Object> vertex1PropertyMap = new HashMap<>();
-        vertex1PropertyMap.put("prop1", "prop1.value1");
-        vertex1PropertyMap.put("prop2", "prop2.value1");
-
-        Map<String, Object> filteredVertex1PropertyMap = new HashMap<>();
-        filteredVertex1PropertyMap.put("prop1", "prop1.value1");
-
-        Map<String, Object> updateProperties = new HashMap<>();
-        updateProperties.put("prop3", "newValue");
-
-        // mock expectations
-        expect(initialPipeline.add(queryPipe)).andReturn(queryPipeline);
-        expect(initialPipeline.add(notDeletedPipe)).andReturn(notDeletedPipeline);
-        expect(initialPipeline.as("root")).andReturn(rootPipeline);
-        expect(expression.asPipe()).andReturn(expressionPipe);
-        expect(rootPipeline.add(expressionPipe)).andReturn(expressionPipeline);
-        expect(expressionPipeline.back("root")).andReturn(rootPipeline);
-        expect(rootPipeline.toList()).andReturn(results);
-        graph.commit();
-        vertex1Wrapper.setProperty("prop3", "newValue");
-        vertex1Wrapper.setProperty(eq(Constants.MODIFICATION_TIMESTAMP_PROPERTY_KEY), capture(modifiedTimestampCapture));
-        expect(vertex1Wrapper.getPropertyMap()).andReturn(vertex1PropertyMap);
-        expect(resourceDefinition.filterProperties(request, vertex1PropertyMap)).andReturn(filteredVertex1PropertyMap);
-        expect(resourceDefinition.resolveHref(filteredVertex1PropertyMap)).andReturn("/foo/bar");
-        expect(request.getCardinality()).andReturn(Request.Cardinality.COLLECTION);
-
-        replay(graph, expression, resourceDefinition, request, initialPipeline, queryPipe, expressionPipe,
-                notDeletedPipe, rootPipeline, queryPipeline, expressionPipeline, notDeletedPipeline,
-                vertex1, vertex1Wrapper);
-        // end mock expectations
-
-        AtlasEntityQuery query = new TestAtlasEntityQuery(expression, resourceDefinition, request,
-                initialPipeline, queryPipe, notDeletedPipe, graph, vertex1Wrapper);
-
-        long startTime = System.currentTimeMillis();
-        // invoke method being tested
-        Collection<Map<String, Object>> queryResults = query.execute(updateProperties);
-        long endTime = System.currentTimeMillis();
-
-        assertEquals(queryResults.size(), 1);
-        Map<String, Object> queryResultMap = queryResults.iterator().next();
-        assertEquals(queryResultMap.size(), 2);
-        assertEquals(queryResultMap.get("prop1"), "prop1.value1");
-        assertEquals(queryResultMap.get("href"), "/foo/bar");
-
-        long modifiedTimestamp = modifiedTimestampCapture.getValue();
-        assertTrue(modifiedTimestamp >= startTime && modifiedTimestamp <= endTime);
-
-        verify(graph, expression, resourceDefinition, request, initialPipeline, queryPipe, expressionPipe,
-                notDeletedPipe, rootPipeline, queryPipeline, expressionPipeline, notDeletedPipeline,
-                vertex1, vertex1Wrapper);
-    }
-
-    private class TestAtlasEntityQuery extends AtlasEntityQuery {
-        private final GremlinPipeline initialPipeline;
-        private final Pipe queryPipe;
-        private final Pipe notDeletedPipe;
-        private final AtlasGraph graph;
-        private final VertexWrapper vWrapper;
-
-        public TestAtlasEntityQuery(QueryExpression queryExpression,
-                                    ResourceDefinition resourceDefinition,
-                                    Request request,
-                                    GremlinPipeline initialPipeline,
-                                    Pipe queryPipe,
-                                    Pipe notDeletedPipe,
-                                    AtlasGraph graph,
-                                    VertexWrapper vWrapper) {
-
-            super(queryExpression, resourceDefinition, request);
-            this.initialPipeline = initialPipeline;
-            this.queryPipe = queryPipe;
-            this.notDeletedPipe = notDeletedPipe;
-            this.graph = graph;
-            this.vWrapper = vWrapper;
-        }
-
-        @Override
-        protected GremlinPipeline getRootVertexPipeline() {
-            return initialPipeline;
-        }
-
-        @Override
-        protected Pipe getQueryPipe() {
-            return queryPipe;
-        }
-
-        @Override
-        protected Pipe getNotDeletedPipe() {
-            return notDeletedPipe;
-        }
-
-        @Override
-        protected AtlasGraph getGraph() {
-            return graph;
-        }
-
-        @Override
-        protected VertexWrapper wrapVertex(Vertex v) {
-            return vWrapper;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/query/QueryFactoryTest.java
----------------------------------------------------------------------
diff --git a/catalog/src/test/java/org/apache/atlas/catalog/query/QueryFactoryTest.java b/catalog/src/test/java/org/apache/atlas/catalog/query/QueryFactoryTest.java
deleted file mode 100644
index 36cb6dc..0000000
--- a/catalog/src/test/java/org/apache/atlas/catalog/query/QueryFactoryTest.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.catalog.query;
-
-import org.apache.atlas.catalog.CollectionRequest;
-import org.apache.atlas.catalog.InstanceRequest;
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.TermPath;
-import org.apache.atlas.catalog.definition.EntityResourceDefinition;
-import org.apache.atlas.catalog.definition.EntityTagResourceDefinition;
-import org.testng.annotations.Test;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.testng.Assert.assertEquals;
-
-/**
- * Unit tests for QueryFactory.
- */
-public class QueryFactoryTest {
-    @Test
-    public void testCreateTaxonomyQuery() throws Exception {
-        Map<String, Object> requestProps = new HashMap<>();
-        requestProps.put("name", "test_taxonomy");
-        Request request = new InstanceRequest(requestProps);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), TermQueryExpression.class);
-        assertEquals(queryExpression.getField(), "name");
-        assertEquals(queryExpression.getExpectedValue(), "test_taxonomy");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-
-    @Test
-    public void testCreateTermQuery() throws Exception {
-        Map<String, Object> requestProps = new HashMap<>();
-        requestProps.put("name", "test_taxonomy.term1");
-        requestProps.put("termPath", new TermPath("test_taxonomy.term1"));
-        Request request = new InstanceRequest(requestProps);
-
-
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTermQuery query = (AtlasTermQuery) factory.createTermQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), TermQueryExpression.class);
-        assertEquals(queryExpression.getField(), "name");
-        assertEquals(queryExpression.getExpectedValue(), "test_taxonomy.term1");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Term");
-    }
-
-    @Test
-    public void testCreateEntityQuery() throws Exception {
-        Map<String, Object> requestProps = new HashMap<>();
-        requestProps.put("id", "foo");
-        Request request = new InstanceRequest(requestProps);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasEntityQuery query = (AtlasEntityQuery) factory.createEntityQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), TermQueryExpression.class);
-        assertEquals(queryExpression.getField(), "id");
-        assertEquals(queryExpression.getExpectedValue(), "foo");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getClass(), EntityResourceDefinition.class);
-    }
-
-    @Test
-    public void testCreateEntityTagQuery() throws Exception {
-        Map<String, Object> requestProps = new HashMap<>();
-        requestProps.put("id", "entity_id");
-        requestProps.put("name", "test_taxonomy.term1");
-        Request request = new InstanceRequest(requestProps);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasEntityTagQuery query = (AtlasEntityTagQuery) factory.createEntityTagQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), TermQueryExpression.class);
-        assertEquals(queryExpression.getField(), "name");
-        assertEquals(queryExpression.getExpectedValue(), "test_taxonomy.term1");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getClass(), EntityTagResourceDefinition.class);
-    }
-
-    @Test
-    public void testCollectionQuery_TermQuery() throws Exception {
-        String queryString = "name:test_taxonomy";
-        Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), TermQueryExpression.class);
-        assertEquals(queryExpression.getField(), "name");
-        assertEquals(queryExpression.getExpectedValue(), "test_taxonomy");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-
-    @Test
-    public void testCollectionQuery_PrefixQuery() throws Exception {
-        String queryString = "name:t*";
-        Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), PrefixQueryExpression.class);
-        assertEquals(queryExpression.getField(), "name");
-        assertEquals(queryExpression.getExpectedValue(), "t");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-
-    @Test
-    public void testCollectionQuery_TermRangeQuery() throws Exception {
-        String queryString = "creation_time:[2013-01-01:07:29:00 TO 2017-01-02]";
-        Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), TermRangeQueryExpression.class);
-        assertEquals(queryExpression.getField(), "creation_time");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-
-    @Test
-    public void testCollectionQuery_WildcardQuery() throws Exception {
-        String queryString = "name:ta?onomy";
-        Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), WildcardQueryExpression.class);
-        assertEquals(queryExpression.getField(), "name");
-        assertEquals(queryExpression.getExpectedValue(), "ta?onomy");
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-
-    @Test
-    public void testCollectionQuery_BooleanQuery() throws Exception {
-        String queryString = "name:foo OR name:bar";
-        Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), BooleanQueryExpression.class);
-
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-
-    @Test
-    public void testCollectionQuery_ProjectionQuery() throws Exception {
-        String queryString = "relation/name:foo";
-        Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-
-        QueryFactory factory = new QueryFactory();
-        AtlasTaxonomyQuery query = (AtlasTaxonomyQuery) factory.createTaxonomyQuery(request);
-
-        QueryExpression queryExpression = query.getQueryExpression();
-        assertEquals(queryExpression.getClass(), ProjectionQueryExpression.class);
-
-        ProjectionQueryExpression projectionExpression = (ProjectionQueryExpression) queryExpression;
-        QueryExpression underlyingExpression = projectionExpression.getUnderlyingExpression();
-        assertEquals(underlyingExpression.getClass(), TermQueryExpression.class);
-        assertEquals(underlyingExpression.getField(), QueryFactory.escape("relation/name"));
-        assertEquals(underlyingExpression.getExpectedValue(), "foo");
-
-        assertEquals(query.getRequest(), request);
-        assertEquals(query.getResourceDefinition().getTypeName(), "Taxonomy");
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/distro/src/conf/atlas-application.properties
----------------------------------------------------------------------
diff --git a/distro/src/conf/atlas-application.properties b/distro/src/conf/atlas-application.properties
index 585a579..9e8adca 100755
--- a/distro/src/conf/atlas-application.properties
+++ b/distro/src/conf/atlas-application.properties
@@ -200,18 +200,12 @@ atlas.authorizer.impl=SIMPLE
 #atlas.graph.storage.lock.retries=10
 #atlas.graph.storage.cache.db-cache-time=120000
 
-#########  Business Catalog  #########
-atlas.taxonomy.default.name=Catalog
-
 #########  CSRF Configs  #########
 atlas.rest-csrf.enabled=true
 atlas.rest-csrf.browser-useragents-regex=^Mozilla.*,^Opera.*,^Chrome.*
 atlas.rest-csrf.methods-to-ignore=GET,OPTIONS,HEAD,TRACE
 atlas.rest-csrf.custom-header=X-XSRF-HEADER
 
-#########  Enable Taxonomy  #########
-atlas.feature.taxonomy.enable=true
-
 ############ KNOX Configs ################
 #atlas.sso.knox.browser.useragent=Mozilla,Chrome,Opera
 #atlas.sso.knox.enabled=true

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/distro/src/conf/policy-store.txt
----------------------------------------------------------------------
diff --git a/distro/src/conf/policy-store.txt b/distro/src/conf/policy-store.txt
index c804b8d..58d4d4c 100644
--- a/distro/src/conf/policy-store.txt
+++ b/distro/src/conf/policy-store.txt
@@ -2,8 +2,8 @@
 ##r-READ, w-WRITE, u-UPDATE, d-DELETE
 ##Policy_Name;;User_Name1:Operations_Allowed,User_Name2:Operations_Allowed;;Group_Name1:Operations_Allowed,Group_Name2:Operations_Allowed;;Resource_Type1:Resource_Name,Resource_Type2:Resource_Name
 ##
-adminPolicy;;admin:rwud;;ROLE_ADMIN:rwud;;type:*,entity:*,operation:*,taxonomy:*,term:*,relationship:*
-dataScientistPolicy;;;;DATA_SCIENTIST:r;;type:*,entity:*,taxonomy:*,term:*,relationship:*
-dataStewardPolicy;;;;DATA_STEWARD:rwu;;type:*,entity:*,taxonomy:*,term:*,relationship:*
-hadoopPolicy;;;;hadoop:rwud;;type:*,entity:*,operation:*,taxonomy:*,term:*,relationship:*
+adminPolicy;;admin:rwud;;ROLE_ADMIN:rwud;;type:*,entity:*,operation:*,relationship:*
+dataScientistPolicy;;;;DATA_SCIENTIST:r;;type:*,entity:*,relationship:*
+dataStewardPolicy;;;;DATA_STEWARD:rwu;;type:*,entity:*,relationship:*
+hadoopPolicy;;;;hadoop:rwud;;type:*,entity:*,operation:*,relationship:*
 rangerTagSyncPolicy;;;;RANGER_TAG_SYNC:r;;type:*,entity:*

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3bbfdd9..f01c341 100644
--- a/pom.xml
+++ b/pom.xml
@@ -665,7 +665,6 @@
         <module>shaded/hbase-server-shaded</module>
         <module>repository</module>
         <module>authorization</module>
-        <module>catalog</module>
         <module>dashboardv2</module>
         <module>webapp</module>
         <module>docs</module>
@@ -1498,12 +1497,6 @@
 
             <dependency>
                 <groupId>org.apache.atlas</groupId>
-                <artifactId>atlas-catalog</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.atlas</groupId>
                 <artifactId>hive-bridge-shim</artifactId>
                 <version>${project.version}</version>
             </dependency>

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/typesystem/src/test/resources/policy-store.txt
----------------------------------------------------------------------
diff --git a/typesystem/src/test/resources/policy-store.txt b/typesystem/src/test/resources/policy-store.txt
index 47583c1..048affe 100644
--- a/typesystem/src/test/resources/policy-store.txt
+++ b/typesystem/src/test/resources/policy-store.txt
@@ -2,8 +2,8 @@
 ##r-READ, w-WRITE, u-UPDATE, d-DELETE
 ##Policy_Name;;User_Name1:Operations_Allowed,User_Name2:Operations_Allowed;;Group_Name1:Operations_Allowed,Group_Name2:Operations_Allowed;;Resource_Type1:Resource_Name,Resource_Type2:Resource_Name
 ##
-adminPolicy;;admin:rwud;;ROLE_ADMIN:rwud;;type:*,entity:*,operation:*,taxonomy:*,term:*
-dataScientistPolicy;;;;DATA_SCIENTIST:r;;type:*,entity:*,taxonomy:*,term:*
-dataStewardPolicy;;;;DATA_STEWARD:rwu;;type:*,entity:*,taxonomy:*,term:*
-hadoopPolicy;;;;hadoop:rwud;;type:*,entity:*,operation:*,taxonomy:*,term:*
+adminPolicy;;admin:rwud;;ROLE_ADMIN:rwud;;type:*,entity:*,operation:*
+dataScientistPolicy;;;;DATA_SCIENTIST:r;;type:*,entity:*
+dataStewardPolicy;;;;DATA_STEWARD:rwu;;type:*,entity:*
+hadoopPolicy;;;;hadoop:rwud;;type:*,entity:*,operation:*
 rangerTagSyncPolicy;;;;RANGER_TAG_SYNC:r;;type:*,entity:*

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/webapp/pom.xml b/webapp/pom.xml
index bfa79e8..7a86808 100755
--- a/webapp/pom.xml
+++ b/webapp/pom.xml
@@ -70,45 +70,6 @@
                 <log4j.configuration.url>file:/${project.build.directory}/../../distro/src/conf/atlas-log4j.xml</log4j.configuration.url>
             </properties>
         </profile>
-        <profile>
-            <id>titan1</id>
-            <!-- remove conflicting lucene/titan versions from catalog when using titan 1 -->
-            <dependencyManagement>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.atlas</groupId>
-                        <artifactId>atlas-catalog</artifactId>
-                        <version>${project.version}</version>
-                        <exclusions>
-                            <exclusion>
-                                <groupId>com.thinkaurelius.titan</groupId>
-                                <artifactId>titan-core</artifactId>
-                            </exclusion>
-                            <exclusion>
-                                <groupId>org.apache.lucene</groupId>
-                                <artifactId>lucene-core</artifactId>
-                            </exclusion>
-                            <exclusion>
-                                <groupId>org.apache.lucene</groupId>
-                                <artifactId>lucene-queryparser</artifactId>
-                            </exclusion>
-                            <exclusion>
-                                <groupId>org.apache.lucene</groupId>
-                                <artifactId>lucene-analyzers-common</artifactId>
-                            </exclusion>
-                        </exclusions>
-                    </dependency>
-                </dependencies>
-            </dependencyManagement>
-
-            <dependencies>
-                <dependency>
-                    <groupId>org.apache.atlas</groupId>
-                    <artifactId>atlas-catalog</artifactId>
-                    <scope>provided</scope>
-                </dependency>
-            </dependencies>
-        </profile>
     </profiles>
 
     <dependencies>
@@ -172,11 +133,6 @@
             <artifactId>hadoop-hdfs</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.atlas</groupId>
-            <artifactId>atlas-catalog</artifactId>
-        </dependency>
-
         <!-- Zookeeper, curator -->
         <dependency>
             <groupId>org.apache.curator</groupId>

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java b/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
index 82a4d4e..de77c51 100755
--- a/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
+++ b/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
@@ -101,7 +101,6 @@ public class AdminResource {
     private static final String BROWSER_USER_AGENT_PARAM = "atlas.rest-csrf.browser-useragents-regex";
     private static final String CUSTOM_METHODS_TO_IGNORE_PARAM = "atlas.rest-csrf.methods-to-ignore";
     private static final String CUSTOM_HEADER_PARAM = "atlas.rest-csrf.custom-header";
-    private static final String isTaxonomyEnabled = "atlas.feature.taxonomy.enable";
     private static final String isEntityUpdateAllowed = "atlas.entity.update.allowed";
     private static final String isEntityCreateAllowed = "atlas.entity.create.allowed";
     private static final String editableEntityTypes = "atlas.ui.editable.entity.types";
@@ -242,12 +241,7 @@ public class AdminResource {
         }
 
         Response response;
-        Boolean enableTaxonomy = false;
         try {
-            if(atlasProperties != null) {
-                enableTaxonomy = atlasProperties.getBoolean(isTaxonomyEnabled, false);
-            }
-
             boolean isEntityUpdateAccessAllowed = false;
             boolean isEntityCreateAccessAllowed = false;
             Authentication auth = SecurityContextHolder.getContext().getAuthentication();
@@ -272,7 +266,6 @@ public class AdminResource {
             responseData.put(BROWSER_USER_AGENT_PARAM, AtlasCSRFPreventionFilter.BROWSER_USER_AGENTS_DEFAULT);
             responseData.put(CUSTOM_METHODS_TO_IGNORE_PARAM, AtlasCSRFPreventionFilter.METHODS_TO_IGNORE_DEFAULT);
             responseData.put(CUSTOM_HEADER_PARAM, AtlasCSRFPreventionFilter.HEADER_DEFAULT);
-            responseData.put(isTaxonomyEnabled, enableTaxonomy);
             responseData.put(isEntityUpdateAllowed, isEntityUpdateAccessAllowed);
             responseData.put(isEntityCreateAllowed, isEntityCreateAccessAllowed);
             responseData.put(editableEntityTypes, getEditableEntityTypes(atlasProperties));

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/src/main/java/org/apache/atlas/web/resources/BaseService.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/BaseService.java b/webapp/src/main/java/org/apache/atlas/web/resources/BaseService.java
deleted file mode 100644
index a013494..0000000
--- a/webapp/src/main/java/org/apache/atlas/web/resources/BaseService.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonSyntaxException;
-import org.apache.atlas.catalog.JsonSerializer;
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.ResourceProvider;
-import org.apache.atlas.catalog.Result;
-import org.apache.atlas.catalog.exception.CatalogException;
-import org.apache.atlas.catalog.exception.CatalogRuntimeException;
-import org.apache.atlas.catalog.exception.InvalidPayloadException;
-import org.apache.atlas.catalog.exception.InvalidQueryException;
-import org.apache.atlas.catalog.exception.ResourceNotFoundException;
-import org.apache.atlas.repository.graph.AtlasGraphProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * Base class for all v1 API services.
- */
-public abstract class BaseService {
-    private static final Gson gson = new Gson();
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
-    private final static JsonSerializer serializer = new JsonSerializer();
-
-    protected Result getResource(ResourceProvider provider, Request request)
-            throws ResourceNotFoundException {
-
-        try {
-            return provider.getResourceById(request);
-        } catch (RuntimeException e) {
-            throw wrapRuntimeException(e);
-        }
-    }
-
-    protected Result getResources(ResourceProvider provider, Request request)
-            throws ResourceNotFoundException, InvalidQueryException {
-
-        try {
-            return provider.getResources(request);
-        } catch (RuntimeException e) {
-            LOG.error("Error while retrieving taxonomy ", e);
-            throw wrapRuntimeException(e);
-        }
-    }
-
-    protected void createResource(ResourceProvider provider, Request request) throws CatalogException {
-        try {
-            provider.createResource(request);
-        } catch (RuntimeException e) {
-            throw wrapRuntimeException(e);
-        }
-    }
-
-    protected void updateResource(ResourceProvider provider, Request request) throws CatalogException {
-        try {
-            provider.updateResourceById(request);
-        } catch (RuntimeException e) {
-            throw wrapRuntimeException(e);
-        }
-    }
-
-    protected void deleteResource(ResourceProvider provider, Request request) throws CatalogException {
-        try {
-            provider.deleteResourceById(request);
-
-        } catch (RuntimeException e) {
-            throw wrapRuntimeException(e);
-        }
-    }
-
-    protected Collection<String> createResources(ResourceProvider provider, Request request) throws CatalogException {
-        try {
-            return provider.createResources(request);
-        } catch (RuntimeException e) {
-            throw wrapRuntimeException(e);
-        }
-    }
-
-    protected String getQueryString(@Context UriInfo ui) {
-        String uri = ui.getRequestUri().toASCIIString();
-        int qsBegin = uri.indexOf("?");
-        return (qsBegin == -1) ? null : uri.substring(qsBegin + 1);
-    }
-
-    protected <T extends Map> T parsePayload(String body) throws InvalidPayloadException {
-        T properties;
-
-        try {
-            properties = gson.<T>fromJson(body, Map.class);
-        } catch (JsonSyntaxException e) {
-            LOG.info("Unable to parse json in request body", e);
-            throw new InvalidPayloadException("Request payload contains invalid JSON: " + e.getMessage());
-        }
-
-        return properties;
-    }
-
-    protected String decode(String s) throws CatalogException {
-        try {
-            return s == null ? null : URLDecoder.decode(s, "UTF-8");
-        } catch (UnsupportedEncodingException e) {
-            throw new CatalogException("Unable to decode URL: " + e.getMessage(), 500);
-        }
-    }
-
-    protected JsonSerializer getSerializer() {
-        return serializer;
-    }
-
-
-    private RuntimeException wrapRuntimeException(RuntimeException e) {
-        return e instanceof CatalogRuntimeException ? e : new CatalogRuntimeException(e);
-    }
-
-    @XmlRootElement
-    // the name of this class is used as the collection name in the returned json when returning a collection
-    public static class Results {
-        public String href;
-        public int status;
-
-        public Results() {
-            // required by JAXB
-        }
-
-        public Results(String href, int status) {
-            this.href = href;
-            this.status = status;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/src/main/java/org/apache/atlas/web/resources/CatalogExceptionMapper.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/CatalogExceptionMapper.java b/webapp/src/main/java/org/apache/atlas/web/resources/CatalogExceptionMapper.java
deleted file mode 100644
index 4f7da2e..0000000
--- a/webapp/src/main/java/org/apache/atlas/web/resources/CatalogExceptionMapper.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import org.apache.atlas.catalog.exception.CatalogException;
-import org.apache.atlas.web.util.Servlets;
-
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
-import javax.xml.bind.annotation.XmlRootElement;
-
-/**
- * Exception mapper for CatalogException.
- */
-@Provider
-public class CatalogExceptionMapper implements ExceptionMapper<CatalogException> {
-    @Override
-    public Response toResponse(CatalogException e) {
-        return Response.status(e.getStatus()).entity(
-                new ErrorBean(e)).type(Servlets.JSON_MEDIA_TYPE).build();
-    }
-
-    @XmlRootElement
-    public static class ErrorBean {
-        public int status;
-        public String message;
-
-        public ErrorBean() {
-            // required for JAXB
-        }
-
-        public ErrorBean(CatalogException ex) {
-            this.status = ex.getStatus();
-            this.message = ex.getMessage();
-        }
-
-        public int getStatus() {
-            return status;
-        }
-
-        public String getMessage() {
-            return message;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/src/main/java/org/apache/atlas/web/resources/CatalogRuntimeExceptionMapper.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/CatalogRuntimeExceptionMapper.java b/webapp/src/main/java/org/apache/atlas/web/resources/CatalogRuntimeExceptionMapper.java
deleted file mode 100644
index e11d6d1..0000000
--- a/webapp/src/main/java/org/apache/atlas/web/resources/CatalogRuntimeExceptionMapper.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import org.apache.atlas.catalog.exception.CatalogRuntimeException;
-import org.apache.atlas.web.util.Servlets;
-
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-/**
- * Exception mapper for CatalogRuntimeException
- */
-@Provider
-public class CatalogRuntimeExceptionMapper implements ExceptionMapper<CatalogRuntimeException> {
-    @Override
-    public Response toResponse(CatalogRuntimeException e) {
-        return Response.status(e.getStatusCode()).entity(
-                new ErrorBean(e)).type(Servlets.JSON_MEDIA_TYPE).build();
-    }
-
-    @XmlRootElement
-    public static class ErrorBean {
-        private static final String MSG_PREFIX = "An unexpected error has occurred. ";
-        public int status;
-        public String message;
-        public String stackTrace;
-        //todo: error code, developerMsg ...
-
-        public ErrorBean() {
-            // required for JAXB
-        }
-
-        public ErrorBean(CatalogRuntimeException ex) {
-            this.status = 500;
-            this.message = String.format("%s%s : %s", MSG_PREFIX, ex.toString(), ex.getCause().toString());
-            this.stackTrace = getStackTraceFromException(ex);
-        }
-
-        public int getStatus() {
-            return status;
-        }
-
-        public String getMessage() {
-            return message;
-        }
-
-        public String getStackTrace() {
-            return stackTrace;
-        }
-
-        private String getStackTraceFromException(RuntimeException e) {
-            StringWriter sw = new StringWriter();
-            e.printStackTrace(new PrintWriter(sw));
-            return sw.toString();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/src/main/java/org/apache/atlas/web/resources/EntityService.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/EntityService.java b/webapp/src/main/java/org/apache/atlas/web/resources/EntityService.java
deleted file mode 100644
index 77115d7..0000000
--- a/webapp/src/main/java/org/apache/atlas/web/resources/EntityService.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import org.apache.atlas.catalog.BaseRequest;
-import org.apache.atlas.catalog.CollectionRequest;
-import org.apache.atlas.catalog.DefaultTypeSystem;
-import org.apache.atlas.catalog.EntityResourceProvider;
-import org.apache.atlas.catalog.EntityTagResourceProvider;
-import org.apache.atlas.catalog.InstanceRequest;
-import org.apache.atlas.catalog.Result;
-import org.apache.atlas.catalog.exception.CatalogException;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.services.MetadataService;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.utils.AtlasPerfTracer;
-import org.apache.atlas.web.util.Servlets;
-import org.slf4j.Logger;
-import org.springframework.stereotype.Service;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.GenericEntity;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Service which handles API requests for v1 entity resources.
- */
-@Path("v1/entities")
-@Singleton
-@Service
-public class EntityService extends BaseService {
-    private static final Logger PERF_LOG = AtlasPerfTracer.getPerfLogger("rest.EntityService");
-
-    private final EntityResourceProvider entityResourceProvider;
-    private final EntityTagResourceProvider entityTagResourceProvider;
-
-    @Inject
-    public EntityService(MetadataService metadataService, AtlasTypeDefStore typeDefStore) throws AtlasBaseException {
-        DefaultTypeSystem typeSystem = new DefaultTypeSystem(metadataService, typeDefStore);
-        entityResourceProvider = new EntityResourceProvider(typeSystem);
-        entityTagResourceProvider = new EntityTagResourceProvider(typeSystem);
-    }
-
-    @GET
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getEntities(@Context HttpHeaders headers, @Context UriInfo ui) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.getEntities()");
-            }
-
-            String queryString = decode(getQueryString(ui));
-
-            BaseRequest request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-            Result result = getResources(entityResourceProvider, request);
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Path("{entityId}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getEntity(@Context HttpHeaders headers,
-                              @Context UriInfo ui,
-                              @PathParam("entityId") String entityId) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.getEntity(" + entityId + ")");
-            }
-
-            BaseRequest request = new InstanceRequest(Collections.<String, Object>singletonMap("id", entityId));
-            Result result = getResource(entityResourceProvider, request);
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Path("{entityId}/tags/{tag}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getEntityTag(@Context HttpHeaders headers,
-                                 @Context UriInfo ui,
-                                 @PathParam("entityId") String entityId,
-                                 @PathParam("tag") String tagName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.getEntityTag(" + entityId + ", " + tagName + ")");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("id", entityId);
-            properties.put("name", tagName);
-            Result result = getResource(entityTagResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Path("{entityId}/tags")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getEntityTags(@Context HttpHeaders headers,
-                                  @Context UriInfo ui,
-                                  @PathParam("entityId") String entityGuid) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.getEntityTags(" + entityGuid + ")");
-            }
-
-            BaseRequest request = new CollectionRequest(Collections.<String, Object>singletonMap("id", entityGuid),
-                    decode(getQueryString(ui)));
-            Result result = getResources(entityTagResourceProvider, request);
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @POST
-    @Path("{entityId}/tags/{tag}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response tagEntity(String body,
-                              @Context HttpHeaders headers,
-                              @Context UriInfo ui,
-                              @PathParam("entityId") String entityId,
-                              @PathParam("tag") String tagName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.tagEntity(" + entityId + ", " + tagName + ")");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("id", entityId);
-            properties.put("name", tagName);
-            createResource(entityTagResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.CREATED).entity(
-                    new Results(ui.getRequestUri().toString(), 201)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @POST
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response tagEntities(String body,
-                                @Context HttpHeaders headers,
-                                @Context UriInfo ui) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.tagEntities()");
-            }
-
-            Map<String, Object> properties = parsePayload(body);
-
-            if (properties.get("tags") == null || properties.size() != 1) {
-                throw new CatalogException(
-                        "Invalid Request, no 'tags' property specified. Creation of entity resource not supported.", 400);
-
-            }
-            String queryString = decode(getQueryString(ui));
-            Collection<String> createResults = createResources(
-                    entityTagResourceProvider, new CollectionRequest(properties, queryString));
-
-            Collection<Results> result = new ArrayList<>();
-            for (String relativeUrl : createResults) {
-                result.add(new Results(ui.getBaseUri().toString() + relativeUrl, 201));
-            }
-
-            return Response.status(Response.Status.CREATED).entity(
-                    new GenericEntity<Collection<Results>>(result) {
-                    }).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @DELETE
-    @Path("{entityId}/tags/{tag}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response deleteEntityTag(@Context HttpHeaders headers,
-                                    @Context UriInfo ui,
-                                    @PathParam("entityId") String entityId,
-                                    @PathParam("tag") String tagName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "EntityService.deleteEntityTag()");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("id", entityId);
-            properties.put("name", tagName);
-            deleteResource(entityTagResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/webapp/src/main/java/org/apache/atlas/web/resources/TaxonomyService.java
----------------------------------------------------------------------
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/TaxonomyService.java b/webapp/src/main/java/org/apache/atlas/web/resources/TaxonomyService.java
deleted file mode 100644
index 05b197f..0000000
--- a/webapp/src/main/java/org/apache/atlas/web/resources/TaxonomyService.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.atlas.web.resources;
-
-import org.apache.atlas.catalog.*;
-import org.apache.atlas.catalog.exception.CatalogException;
-import org.apache.atlas.catalog.exception.InvalidPayloadException;
-import org.apache.atlas.exception.AtlasBaseException;
-import org.apache.atlas.services.MetadataService;
-import org.apache.atlas.store.AtlasTypeDefStore;
-import org.apache.atlas.utils.AtlasPerfTracer;
-import org.apache.atlas.web.util.Servlets;
-import org.slf4j.Logger;
-import org.springframework.stereotype.Component;
-
-import javax.inject.Inject;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.PathSegment;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Service which handles API requests for taxonomy and term resources.
- */
-@Path("v1/taxonomies")
-@Component
-public class TaxonomyService extends BaseService {
-    private static final Logger PERF_LOG = AtlasPerfTracer.getPerfLogger("rest.TaxonomyService");
-
-    private ResourceProvider taxonomyResourceProvider;
-    private ResourceProvider termResourceProvider;
-
-    @Inject
-    public void setMetadataService(MetadataService metadataService, AtlasTypeDefStore typeDefStore) throws AtlasBaseException {
-        DefaultTypeSystem typeSystem = new DefaultTypeSystem(metadataService, typeDefStore);
-        taxonomyResourceProvider = createTaxonomyResourceProvider(typeSystem);
-        termResourceProvider = createTermResourceProvider(typeSystem);
-    }
-
-    @GET
-    @Path("{taxonomyName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getTaxonomy(@Context HttpHeaders headers,
-                                @Context UriInfo ui,
-                                @PathParam("taxonomyName") String taxonomyName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.getTaxonomy(" + taxonomyName + ")");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("name", taxonomyName);
-            Result result = getResource(taxonomyResourceProvider, new InstanceRequest(properties));
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getTaxonomies(@Context HttpHeaders headers, @Context UriInfo ui) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.getTaxonomies()");
-            }
-
-            String queryString = decode(getQueryString(ui));
-            Request request = new CollectionRequest(Collections.<String, Object>emptyMap(), queryString);
-            Result result = getResources(taxonomyResourceProvider, request);
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @POST
-    @Path("{taxonomyName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response createTaxonomy(String body,
-                                   @Context HttpHeaders headers,
-                                   @Context UriInfo ui,
-                                   @PathParam("taxonomyName") String taxonomyName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.createTaxonomy(" + taxonomyName + ")");
-            }
-
-            Map<String, Object> properties = parsePayload(body);
-            properties.put("name", taxonomyName);
-
-            createResource(taxonomyResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.CREATED).entity(
-                    new Results(ui.getRequestUri().toString(), 201)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @PUT
-    @Path("{taxonomyName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response updateTaxonomy(String body,
-                                   @Context HttpHeaders headers,
-                                   @Context UriInfo ui,
-                                   @PathParam("taxonomyName") String taxonomyName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.updateTaxonomy(" + taxonomyName + ")");
-            }
-
-            Map<String, Object> queryProperties = new HashMap<>();
-            queryProperties.put("name", taxonomyName);
-            Map<String, Object> updateProperties = parsePayload(body);
-            updateResource(taxonomyResourceProvider, new InstanceRequest(queryProperties, updateProperties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @DELETE
-    @Path("{taxonomyName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response deleteTaxonomy(@Context HttpHeaders headers,
-                                   @Context UriInfo ui,
-                                   @PathParam("taxonomyName") String taxonomyName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.deleteTaxonomy(" + taxonomyName + ")");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("name", taxonomyName);
-
-            deleteResource(taxonomyResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Path("{taxonomyName}/terms/{termName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getTaxonomyTerm(@Context HttpHeaders headers,
-                                    @Context UriInfo ui,
-                                    @PathParam("taxonomyName") String taxonomyName,
-                                    @PathParam("termName") String termName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.getTaxonomyTerm(" + taxonomyName + ", " + termName + ")");
-            }
-
-            TermPath termPath = new TermPath(taxonomyName, termName);
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("termPath", termPath);
-            Result result = getResource(termResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Path("{taxonomyName}/terms")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getTaxonomyTerms(@Context HttpHeaders headers,
-                                     @Context UriInfo ui,
-                                     @PathParam("taxonomyName") String taxonomyName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.getTaxonomyTerms(" + taxonomyName + ")");
-            }
-
-            String queryString = decode(getQueryString(ui));
-            TermPath termPath = new TermPath(taxonomyName, null);
-            Request request = new CollectionRequest(
-                    Collections.<String, Object>singletonMap("termPath", termPath), queryString);
-            Result result = getResources(termResourceProvider, request);
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @GET
-    @Path("{taxonomyName}/terms/{rootTerm}/{remainder:.*}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response getSubTerms(@Context HttpHeaders headers,
-                            @Context UriInfo ui,
-                            @PathParam("taxonomyName") String taxonomyName,
-                            @PathParam("rootTerm") String rootTerm,
-                            @PathParam("remainder") String remainder) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.getSubTerms(" + taxonomyName + ", " + rootTerm + ", " + remainder + ")");
-            }
-
-            Result result;
-            String termName = String.format("%s%s", rootTerm,
-                    remainder.replaceAll("/?terms/?([.]*)", "$1."));
-            String queryString = decode(getQueryString(ui));
-            TermPath termPath = new TermPath(taxonomyName, termName);
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("termPath", termPath);
-
-            List<PathSegment> pathSegments = ui.getPathSegments();
-            int lastIndex = pathSegments.size() - 1;
-            String lastSegment = pathSegments.get(lastIndex).getPath();
-            if (lastSegment.equals("terms") || (lastSegment.isEmpty() && pathSegments.get(lastIndex - 1).getPath().equals("terms"))) {
-                result = getResources(termResourceProvider, new CollectionRequest(properties, queryString));
-            } else {
-                result = getResource(termResourceProvider, new InstanceRequest(properties));
-            }
-
-            return Response.status(Response.Status.OK).entity(getSerializer().serialize(result, ui)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @POST
-    @Path("{taxonomyName}/terms/{termName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response createTerm(String body,
-                               @Context HttpHeaders headers,
-                               @Context UriInfo ui,
-                               @PathParam("taxonomyName") String taxonomyName,
-                               @PathParam("termName") String termName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.createTerm(" + taxonomyName + ", " + termName + ")");
-            }
-
-            Map<String, Object> properties = parsePayload(body);
-            validateName(termName);
-            properties.put("termPath", new TermPath(taxonomyName, termName));
-            createResource(termResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.CREATED).entity(
-                    new Results(ui.getRequestUri().toString(), 201)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @POST
-    @Path("{taxonomyName}/terms/{termName}/{remainder:.*}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response createSubTerm(String body,
-                                  @Context HttpHeaders headers,
-                                  @Context UriInfo ui,
-                                  @PathParam("taxonomyName") String taxonomyName,
-                                  @PathParam("termName") String termName,
-                                  @PathParam("remainder") String remainder) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.createSubTerm(" + taxonomyName + ", " + termName + ", " + remainder + ")");
-            }
-
-            Map<String, Object> properties = parsePayload(body);
-            String[] pathTokens = remainder.split("/");
-            validateName(pathTokens[pathTokens.length - 1]);
-            properties.put("termPath", new TermPath(taxonomyName, String.format("%s%s", termName,
-                    remainder.replaceAll("/?terms/?([.]*)", "$1."))));
-            createResource(termResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.CREATED).entity(
-                    new Results(ui.getRequestUri().toString(), 201)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @PUT
-    @Path("{taxonomyName}/terms/{termName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response updateTerm(String body,
-                               @Context HttpHeaders headers,
-                               @Context UriInfo ui,
-                               @PathParam("taxonomyName") String taxonomyName,
-                               @PathParam("termName") String termName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.updateTerm(" + taxonomyName + ", " + termName + ")");
-            }
-
-            Map<String, Object> queryProperties = new HashMap<>();
-            queryProperties.put("termPath", new TermPath(taxonomyName, termName));
-
-            Map<String, Object> updateProperties = parsePayload(body);
-            updateResource(termResourceProvider, new InstanceRequest(queryProperties, updateProperties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @PUT
-    @Path("{taxonomyName}/terms/{termName}/{remainder:.*}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response updateSubTerm(String body,
-                                  @Context HttpHeaders headers,
-                                  @Context UriInfo ui,
-                                  @PathParam("taxonomyName") String taxonomyName,
-                                  @PathParam("termName") String termName,
-                                  @PathParam("remainder") String remainder) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.updateSubTerm(" + taxonomyName + ", " + termName + ", " + remainder + ")");
-            }
-
-            Map<String, Object> queryProperties = new HashMap<>();
-            queryProperties.put("termPath", new TermPath(taxonomyName, String.format("%s%s", termName,
-                    remainder.replaceAll("/?terms/?([.]*)", "$1."))));
-
-            Map<String, Object> updateProperties = parsePayload(body);
-            updateResource(termResourceProvider, new InstanceRequest(queryProperties, updateProperties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @DELETE
-    @Path("{taxonomyName}/terms/{termName}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response deleteTerm(@Context HttpHeaders headers,
-                               @Context UriInfo ui,
-                               @PathParam("taxonomyName") String taxonomyName,
-                               @PathParam("termName") String termName) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.deleteTerm(" + taxonomyName + ", " + termName + ")");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("termPath", new TermPath(taxonomyName, termName));
-            deleteResource(termResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    @DELETE
-    @Path("{taxonomyName}/terms/{termName}/{remainder:.*}")
-    @Produces(Servlets.JSON_MEDIA_TYPE)
-    public Response deleteSubTerm(@Context HttpHeaders headers,
-                                  @Context UriInfo ui,
-                                  @PathParam("taxonomyName") String taxonomyName,
-                                  @PathParam("termName") String termName,
-                                  @PathParam("remainder") String remainder) throws CatalogException {
-        AtlasPerfTracer perf = null;
-        try {
-            if (AtlasPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
-                perf = AtlasPerfTracer.getPerfTracer(PERF_LOG, "TaxonomyService.deleteSubTerm(" + taxonomyName + ", " + termName + ", " + remainder + ")");
-            }
-
-            Map<String, Object> properties = new HashMap<>();
-            properties.put("termPath", new TermPath(taxonomyName, String.format("%s%s", termName,
-                    remainder.replaceAll("/?terms/?([.]*)", "$1."))));
-            deleteResource(termResourceProvider, new InstanceRequest(properties));
-
-            return Response.status(Response.Status.OK).entity(
-                    new Results(ui.getRequestUri().toString(), 200)).build();
-        } finally {
-            AtlasPerfTracer.log(perf);
-        }
-    }
-
-    protected ResourceProvider createTaxonomyResourceProvider(AtlasTypeSystem typeSystem) {
-        return new TaxonomyResourceProvider(typeSystem);
-    }
-
-    protected ResourceProvider createTermResourceProvider(AtlasTypeSystem typeSystem) {
-        return new TermResourceProvider(typeSystem);
-    }
-
-    private void validateName(String name) throws InvalidPayloadException {
-        if (name.contains(".")) {
-            throw new InvalidPayloadException("The \"name\" property may not contain the character '.'");
-        }
-    }
-}