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:57 UTC

[5/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/main/java/org/apache/atlas/catalog/projection/Relation.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/projection/Relation.java b/catalog/src/main/java/org/apache/atlas/catalog/projection/Relation.java
deleted file mode 100644
index b19bc15..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/projection/Relation.java
+++ /dev/null
@@ -1,53 +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.projection;
-
-import com.tinkerpop.pipes.Pipe;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-
-import java.util.Collection;
-
-/**
- * Represents the relationship from one vertex to another via an edge.
- */
-public interface Relation {
-    /**
-     * Traverse the relation.
-     *
-     * @param vWrapper vertex to start traversal from
-     *
-     * @return results of the traversal
-     */
-    Collection<RelationSet> traverse(VertexWrapper vWrapper);
-
-    /**
-     * Get the pipe representation of the traversal.
-     *
-     * @return pipe representation
-     */
-    Pipe asPipe();
-
-    /**
-     * Get the associated resource definition.
-     *
-     * @return associated resource definition
-     */
-    ResourceDefinition getResourceDefinition();
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationProjection.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationProjection.java b/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationProjection.java
deleted file mode 100644
index e435628..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationProjection.java
+++ /dev/null
@@ -1,69 +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.projection;
-
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.transform.TransformFunctionPipe;
-import org.apache.atlas.catalog.ResourceComparator;
-import org.apache.atlas.catalog.VertexWrapper;
-
-import java.util.*;
-
-/**
- * Projection based on a relation.
- */
-public class RelationProjection extends Projection {
-
-    private Relation relation;
-    public RelationProjection(String name, final Collection<String> fields, final Relation relation, Cardinality cardinality) {
-        super(name, cardinality, new TransformFunctionPipe<>(
-                new PipeFunction<VertexWrapper, Collection<ProjectionResult>>() {
-                    @Override
-                    public Collection<ProjectionResult> compute(VertexWrapper start) {
-                        Collection<ProjectionResult> projectionResults = new ArrayList<>();
-
-                        for (RelationSet relationSet : relation.traverse(start)) {
-                            Collection<Map<String, Object>> propertyMaps = new ArrayList<>();
-
-                            for (VertexWrapper vWrapper : relationSet.getVertices()) {
-                                Map<String, Object> propertyMap = new TreeMap<>(new ResourceComparator());
-                                propertyMaps.add(propertyMap);
-
-                                if (fields.isEmpty()) {
-                                    for (String property : vWrapper.getPropertyKeys()) {
-                                        propertyMap.put(property, vWrapper.<String>getProperty(property));
-                                    }
-                                } else {
-                                    for (String property : fields) {
-                                        propertyMap.put(property, vWrapper.<String>getProperty(property));
-                                    }
-                                }
-                            }
-                            projectionResults.add(new ProjectionResult(relationSet.getName(), start, propertyMaps));
-                        }
-                        return projectionResults;
-                    }
-                }));
-        this.relation = relation;
-    }
-
-    public Relation getRelation() {
-        return relation;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationSet.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationSet.java b/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationSet.java
deleted file mode 100644
index 4adf861..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/projection/RelationSet.java
+++ /dev/null
@@ -1,45 +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.projection;
-
-import org.apache.atlas.catalog.VertexWrapper;
-
-import java.util.*;
-
-/**
- * Encapsulates the response of a relation traversal.
- */
-public class RelationSet {
-
-    private final String m_name;
-    private final Collection<VertexWrapper> m_vertices;
-
-    public RelationSet(String name, Collection<VertexWrapper> vertices) {
-        m_name = name;
-        m_vertices = vertices;
-    }
-
-    public String getName() {
-        return m_name;
-    }
-
-    public Collection<VertexWrapper> getVertices() {
-        return Collections.unmodifiableCollection(m_vertices);
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/projection/TagRelation.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/projection/TagRelation.java b/catalog/src/main/java/org/apache/atlas/catalog/projection/TagRelation.java
deleted file mode 100644
index cdd1ad1..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/projection/TagRelation.java
+++ /dev/null
@@ -1,77 +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.projection;
-
-import com.tinkerpop.blueprints.Direction;
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.filter.FilterFunctionPipe;
-import org.apache.atlas.catalog.TermVertexWrapper;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.EntityTagResourceDefinition;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.repository.Constants;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Relation for adjacent Tag vertices.
- */
-public class TagRelation extends BaseRelation {
-    private static ResourceDefinition resourceDefinition = new EntityTagResourceDefinition();
-    @Override
-    public Collection<RelationSet> traverse(VertexWrapper vWrapper) {
-        Vertex v = vWrapper.getVertex();
-        Collection<VertexWrapper> vertices = new ArrayList<>();
-        for (Edge e : v.getEdges(Direction.OUT)) {
-            if (e.getLabel().startsWith(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY))) {
-                VertexWrapper trait = new TermVertexWrapper(e.getVertex(Direction.IN));
-                if (trait.getPropertyKeys().contains("available_as_tag") && ! isDeleted(trait.getVertex())) {
-                    vertices.add(trait);
-                }
-            }
-        }
-        return Collections.singletonList(new RelationSet("tags", vertices));
-    }
-
-    @Override
-    public Pipe asPipe() {
-        return new FilterFunctionPipe<>(new PipeFunction<Edge, Boolean>() {
-            @Override
-            public Boolean compute(Edge edge) {
-                String name = edge.getVertex(Direction.OUT).getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY);
-                if (edge.getLabel().startsWith(name)) {
-                    VertexWrapper v = new TermVertexWrapper(edge.getVertex(Direction.IN));
-                    return v.getPropertyKeys().contains("available_as_tag") && ! isDeleted(v.getVertex());
-                } else {
-                    return false;
-                }
-            }
-        });
-    }
-
-    @Override
-    public ResourceDefinition getResourceDefinition() {
-        return resourceDefinition;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/projection/TraitRelation.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/projection/TraitRelation.java b/catalog/src/main/java/org/apache/atlas/catalog/projection/TraitRelation.java
deleted file mode 100644
index d0f75f3..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/projection/TraitRelation.java
+++ /dev/null
@@ -1,80 +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.projection;
-
-import com.tinkerpop.blueprints.Direction;
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.filter.FilterFunctionPipe;
-import org.apache.atlas.catalog.TermVertexWrapper;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.EntityTagResourceDefinition;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.repository.Constants;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Trait specific relation.
- */
-//todo: combine with TagRelation
-public class TraitRelation extends BaseRelation {
-    //todo: for now using entity tag resource definition
-    private static ResourceDefinition resourceDefinition = new EntityTagResourceDefinition();
-
-    @Override
-    public Collection<RelationSet> traverse(VertexWrapper vWrapper) {
-        Vertex v = vWrapper.getVertex();
-        Collection<VertexWrapper> vertices = new ArrayList<>();
-        for (Edge e : v.getEdges(Direction.OUT)) {
-            if (e.getLabel().startsWith(v.<String>getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY))) {
-                VertexWrapper trait = new TermVertexWrapper(e.getVertex(Direction.IN));
-                if (! trait.getPropertyKeys().contains("available_as_tag") && ! isDeleted(trait.getVertex())) {
-                    vertices.add(trait);
-                }
-            }
-        }
-        return Collections.singletonList(new RelationSet("traits", vertices));
-    }
-
-    @Override
-    public Pipe asPipe() {
-        return new FilterFunctionPipe<>(new PipeFunction<Edge, Boolean>() {
-            @Override
-            public Boolean compute(Edge edge) {
-                String name = edge.getVertex(Direction.OUT).getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY);
-                if (edge.getLabel().startsWith(name)) {
-                    VertexWrapper v = new TermVertexWrapper(edge.getVertex(Direction.IN));
-                    return ! v.getPropertyKeys().contains("available_as_tag") && ! isDeleted(v.getVertex());
-                } else {
-                    return false;
-                }
-            }
-        });
-    }
-
-    @Override
-    public ResourceDefinition getResourceDefinition() {
-        return resourceDefinition;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/AlwaysQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/AlwaysQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/AlwaysQueryExpression.java
deleted file mode 100644
index d120bc4..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/AlwaysQueryExpression.java
+++ /dev/null
@@ -1,46 +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.tinkerpop.pipes.Pipe;
-import org.apache.atlas.catalog.VertexWrapper;
-
-/**
- * Query expression which always returns true.
- */
-public class AlwaysQueryExpression extends BaseQueryExpression {
-    protected AlwaysQueryExpression() {
-        super(null, null, null);
-    }
-
-    @Override
-    public Pipe asPipe() {
-        return null;
-    }
-
-    @Override
-    public boolean evaluate(VertexWrapper vWrapper) {
-        return ! negate;
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        return true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityQuery.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityQuery.java b/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityQuery.java
deleted file mode 100644
index d6b737c..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityQuery.java
+++ /dev/null
@@ -1,39 +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.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.repository.Constants;
-
-/**
- * Entity resource query.
- */
-public class AtlasEntityQuery extends BaseQuery {
-    public AtlasEntityQuery(QueryExpression queryExpression, ResourceDefinition resourceDefinition, Request request) {
-        super(queryExpression, resourceDefinition, request);
-    }
-
-    protected Pipe getQueryPipe() {
-        return new GremlinPipeline().has(Constants.ENTITY_TEXT_PROPERTY_KEY).
-                hasNot(Constants.ENTITY_TYPE_PROPERTY_KEY, "Taxonomy");
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityTagQuery.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityTagQuery.java b/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityTagQuery.java
deleted file mode 100644
index 3e301f3..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasEntityTagQuery.java
+++ /dev/null
@@ -1,86 +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.tinkerpop.blueprints.Direction;
-import com.tinkerpop.blueprints.Edge;
-import com.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.filter.FilterFunctionPipe;
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.TermVertexWrapper;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.EntityTagResourceDefinition;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.repository.Constants;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Entity Tag resource query.
- */
-public class AtlasEntityTagQuery extends BaseQuery {
-    private final String guid;
-
-    public AtlasEntityTagQuery(QueryExpression queryExpression, ResourceDefinition resourceDefinition, String guid, Request request) {
-        super(queryExpression, resourceDefinition, request);
-        this.guid = guid;
-    }
-
-    @Override
-    protected Pipe getQueryPipe() {
-        GremlinPipeline p;
-        if (guid.equals("*")) {
-            p = new GremlinPipeline().has(Constants.ENTITY_TEXT_PROPERTY_KEY).
-                    hasNot(Constants.ENTITY_TYPE_PROPERTY_KEY, "Taxonomy").outE();
-        } else {
-            p = new GremlinPipeline().has(Constants.GUID_PROPERTY_KEY, guid).outE();
-        }
-        //todo: this is basically the same pipeline used in TagRelation.asPipe()
-        p.add(new FilterFunctionPipe<>(new PipeFunction<Edge, Boolean>() {
-            @Override
-            public Boolean compute(Edge edge) {
-                String type = edge.getVertex(Direction.OUT).getProperty(Constants.ENTITY_TYPE_PROPERTY_KEY);
-                VertexWrapper v = new TermVertexWrapper(edge.getVertex(Direction.IN));
-                return edge.getLabel().startsWith(type) && v.getPropertyKeys().contains("available_as_tag");
-            }
-        }));
-
-        return p.inV();
-    }
-
-    //todo: duplication of effort with resource definition
-    @Override
-    protected void addHref(VertexWrapper vWrapper, Map<String, Object> filteredPropertyMap) {
-        Map<String, Object> map = new HashMap<>(filteredPropertyMap);
-        if (guid.equals("*")) {
-            map.put(EntityTagResourceDefinition.ENTITY_GUID_PROPERTY, vWrapper.getVertex().getEdges(Direction.IN).
-                    iterator().next().getVertex(Direction.OUT).getProperty(Constants.GUID_PROPERTY_KEY));
-        } else {
-            map.put(EntityTagResourceDefinition.ENTITY_GUID_PROPERTY, guid);
-        }
-
-        String href = resourceDefinition.resolveHref(map);
-        if (href != null) {
-            filteredPropertyMap.put("href", href);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasQuery.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasQuery.java b/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasQuery.java
deleted file mode 100644
index 4930ab0..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasQuery.java
+++ /dev/null
@@ -1,47 +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.exception.ResourceNotFoundException;
-
-import java.util.Collection;
-import java.util.Map;
-
-/**
- * Query functionality.
- */
-public interface AtlasQuery {
-    /**
-     * Execute the query.
-     *
-     * @return collection of property maps, one per matching resource
-     * @throws ResourceNotFoundException if an explicitly specified resource doesn't exist
-     */
-    Collection<Map<String, Object>> execute() throws ResourceNotFoundException;
-
-    /**
-     * Execute the query and update the results with the provided properties.
-     *
-     * @param updateProperties properties name/values to update on query results
-     *
-     * @return collection of property maps, one per matching resource
-     * @throws ResourceNotFoundException if an explicitly specified resource doesn't exist
-     */
-    Collection<Map<String, Object>> execute(Map<String, Object> updateProperties) throws ResourceNotFoundException;
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTaxonomyQuery.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTaxonomyQuery.java b/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTaxonomyQuery.java
deleted file mode 100644
index df3e8da..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTaxonomyQuery.java
+++ /dev/null
@@ -1,38 +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.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-
-/**
- * Taxonomy resource query.
- */
-public class AtlasTaxonomyQuery extends BaseQuery {
-    public AtlasTaxonomyQuery(QueryExpression queryExpression, ResourceDefinition resourceDefinition, Request request) {
-        super(queryExpression, resourceDefinition, request);
-    }
-
-    @Override
-    protected Pipe getQueryPipe() {
-        return new GremlinPipeline().has("__typeName", "Taxonomy");
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTermQuery.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTermQuery.java b/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTermQuery.java
deleted file mode 100644
index f064037..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/AtlasTermQuery.java
+++ /dev/null
@@ -1,51 +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.attribute.Text;
-import com.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.TermPath;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.repository.Constants;
-
-/**
- * Term resource query.
- */
-public class AtlasTermQuery extends BaseQuery {
-    private final TermPath termPath;
-
-    public AtlasTermQuery(QueryExpression queryExpression, ResourceDefinition resourceDefinition, TermPath termPath, Request request) {
-        super(queryExpression, resourceDefinition, request);
-        this.termPath = termPath;
-    }
-
-    @Override
-    protected Pipe getQueryPipe() {
-        GremlinPipeline p;
-        if (termPath.getTaxonomyName().equals("*")) {
-            p = new GremlinPipeline().has("Taxonomy.name").out();
-        } else {
-            p = new GremlinPipeline().has("Taxonomy.name", termPath.getTaxonomyName()).out().
-                    has(Constants.ENTITY_TYPE_PROPERTY_KEY, Text.PREFIX, termPath.getFullyQualifiedName());
-        }
-        return p;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQuery.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQuery.java b/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQuery.java
deleted file mode 100644
index ff48020..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQuery.java
+++ /dev/null
@@ -1,215 +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 java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-
-import org.apache.atlas.catalog.Request;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.catalog.exception.ResourceNotFoundException;
-import org.apache.atlas.catalog.projection.Projection;
-import org.apache.atlas.catalog.projection.ProjectionResult;
-import org.apache.atlas.repository.Constants;
-import org.apache.atlas.repository.graph.AtlasGraphProvider;
-import org.apache.atlas.repository.graphdb.AtlasElement;
-import org.apache.atlas.repository.graphdb.AtlasGraph;
-import org.apache.atlas.repository.graphdb.AtlasVertex;
-import org.apache.atlas.typesystem.persistence.Id;
-
-import com.tinkerpop.blueprints.Compare;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.filter.PropertyFilterPipe;
-
-/**
- * Base Query implementation.
- */
-public abstract class BaseQuery implements AtlasQuery {
-    protected final QueryExpression queryExpression;
-    protected final ResourceDefinition resourceDefinition;
-    protected final Request request;
-
-    public BaseQuery(QueryExpression queryExpression, ResourceDefinition resourceDefinition, Request request) {
-        this.queryExpression = queryExpression;
-        this.resourceDefinition = resourceDefinition;
-        this.request = request;
-    }
-
-    public Collection<Map<String, Object>> execute() throws ResourceNotFoundException {
-        Collection<Map<String, Object>> resultMaps = new ArrayList<>();
-
-        try {
-            for (Vertex vertex : executeQuery()) {
-                resultMaps.add(processPropertyMap(wrapVertex(vertex)));
-            }
-            getGraph().commit();
-        } catch (Throwable t) {
-            getGraph().rollback();
-            throw t;
-        }
-        return resultMaps;
-    }
-
-    @Override
-    public Collection<Map<String, Object>> execute(Map<String, Object> updateProperties)
-            throws ResourceNotFoundException {
-
-        Collection<Map<String, Object>> resultMaps = new ArrayList<>();
-        try {
-            for (Vertex vertex : executeQuery()) {
-                VertexWrapper vWrapper = wrapVertex(vertex);
-                for (Map.Entry<String, Object> property : updateProperties.entrySet()) {
-                    vWrapper.setProperty(property.getKey(), property.getValue());
-                    vWrapper.setProperty(Constants.MODIFICATION_TIMESTAMP_PROPERTY_KEY, System.currentTimeMillis());
-                }
-                resultMaps.add(processPropertyMap(vWrapper));
-            }
-            getGraph().commit();
-        } catch (Throwable e) {
-            getGraph().rollback();
-            throw e;
-        }
-        return resultMaps;
-    }
-
-    private List<Vertex> executeQuery() {
-        GremlinPipeline pipeline = buildPipeline().as("root");
-        Pipe expressionPipe = queryExpression.asPipe();
-
-        // AlwaysQuery returns null for pipe
-        return expressionPipe == null ? pipeline.toList() :
-                pipeline.add(expressionPipe).back("root").toList();
-    }
-
-    protected GremlinPipeline buildPipeline() {
-        GremlinPipeline pipeline = getRootVertexPipeline();
-        Pipe queryPipe = getQueryPipe();
-        if (queryPipe != null) {
-            pipeline.add(queryPipe);
-        }
-        pipeline.add(getNotDeletedPipe());
-        return pipeline;
-    }
-
-    protected abstract Pipe getQueryPipe();
-
-    protected GremlinPipeline getRootVertexPipeline() {
-        return new GremlinPipeline(unWrapVertices());
-    }
-
-    protected Iterable<Object> unWrapVertices() {
-        final Iterable<AtlasVertex> vertices = getGraph().getVertices();
-
-        Iterable<Object> vertexIterable = new Iterable<Object>() {
-            Iterator<Object> iterator = new Iterator<Object>() {
-                Iterator<AtlasVertex> wrapperIterator = vertices.iterator();
-
-                @Override
-                public boolean hasNext() {
-                    return wrapperIterator.hasNext();
-                }
-
-                @Override
-                public Object next() {
-                    if (hasNext()) {
-                        return ((AtlasElement) wrapperIterator.next().getV()).getWrappedElement();
-                    } else {
-                        throw new NoSuchElementException();
-                    }
-                }
-
-                @Override
-                public void remove() {
-                    throw new UnsupportedOperationException("Remove not supported");
-                }
-            };
-
-            @Override
-            public Iterator<Object> iterator() {
-                return iterator;
-            }
-        };
-        return vertexIterable;
-    }
-
-    protected Pipe getNotDeletedPipe() {
-        return new PropertyFilterPipe(Constants.STATE_PROPERTY_KEY, Compare.EQUAL,
-                Id.EntityState.ACTIVE.name());
-    }
-
-    protected Map<String, Object> processPropertyMap(VertexWrapper vertex) {
-        Map<String, Object> propertyMap = resourceDefinition.filterProperties(
-                request, vertex.getPropertyMap());
-        addHref(vertex, propertyMap);
-
-        return request.getCardinality() == Request.Cardinality.INSTANCE ?
-                applyProjections(vertex, propertyMap) :
-                propertyMap;
-    }
-
-    protected void addHref(VertexWrapper vWrapper, Map<String, Object> filteredPropertyMap) {
-        String href = resourceDefinition.resolveHref(filteredPropertyMap);
-        if (href != null) {
-            filteredPropertyMap.put("href", href);
-        }
-    }
-
-    protected Map<String, Object> applyProjections(VertexWrapper vertex, Map<String, Object> propertyMap) {
-        for (Projection p : resourceDefinition.getProjections().values()) {
-            for (ProjectionResult projectionResult : p.values(vertex)) {
-                if (p.getCardinality() == Projection.Cardinality.MULTIPLE) {
-                    propertyMap.put(projectionResult.getName(), projectionResult.getPropertyMaps());
-                } else {
-                    for (Map<String, Object> projectionMap : projectionResult.getPropertyMaps()) {
-                        propertyMap.put(projectionResult.getName(), projectionMap);
-                    }
-                }
-            }
-        }
-        return propertyMap;
-    }
-
-    protected QueryExpression getQueryExpression() {
-        return queryExpression;
-    }
-
-    protected ResourceDefinition getResourceDefinition() {
-        return resourceDefinition;
-    }
-
-    protected Request getRequest() {
-        return request;
-    }
-
-    // Underlying method is synchronized and caches the graph in a static field
-    protected AtlasGraph getGraph() {
-        return AtlasGraphProvider.getGraphInstance();
-    }
-
-    protected VertexWrapper wrapVertex(Vertex v) {
-        return new VertexWrapper(v, resourceDefinition);
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQueryExpression.java
deleted file mode 100644
index 2364ee5..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/BaseQueryExpression.java
+++ /dev/null
@@ -1,105 +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.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.filter.FilterFunctionPipe;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-/**
- * Base query expression class.
- */
-public abstract class BaseQueryExpression implements QueryExpression {
-    protected String m_field;
-    protected final String m_expectedValue;
-    protected final ResourceDefinition resourceDefinition;
-    protected boolean negate = false;
-    protected Collection<String> properties = new HashSet<>();
-
-    protected BaseQueryExpression(String field, String expectedValue, ResourceDefinition resourceDefinition) {
-        m_field = field;
-        if (field != null) {
-            properties.add(field);
-        }
-        m_expectedValue = expectedValue;
-        this.resourceDefinition = resourceDefinition;
-    }
-
-    @Override
-    public boolean evaluate(VertexWrapper vWrapper) {
-        return negate ^ evaluate(vWrapper.getProperty(m_field));
-    }
-
-    @Override
-    public Collection<String> getProperties() {
-        return properties;
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        // subclasses which don't override evaluate(VertexWrapper) should implement this
-        return false;
-    }
-
-    //todo: use 'has' instead of closure where possible for performance
-    public Pipe asPipe() {
-        return new FilterFunctionPipe(new PipeFunction<Vertex, Boolean>() {
-            @Override
-            public Boolean compute(Vertex vertex) {
-                return evaluate(new VertexWrapper(vertex, resourceDefinition));
-            }
-        });
-    }
-
-    @Override
-    public String getField() {
-        return m_field;
-    }
-
-    @Override
-    public String getExpectedValue() {
-        return m_expectedValue;
-    }
-
-    @Override
-    public void setField(String field) {
-        m_field = field;
-    }
-
-    @Override
-    public void setNegate() {
-        this.negate = true;
-    }
-
-    @Override
-    public boolean isNegate() {
-        return negate;
-    }
-
-    @Override
-    public boolean isProjectionExpression() {
-        return getField() != null && getField().contains(QueryFactory.PATH_SEP_TOKEN);
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/BooleanQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/BooleanQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/BooleanQueryExpression.java
deleted file mode 100644
index b4d759a..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/BooleanQueryExpression.java
+++ /dev/null
@@ -1,141 +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.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.filter.AndFilterPipe;
-import com.tinkerpop.pipes.filter.OrFilterPipe;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
-
-import java.util.*;
-
-/**
- * Expression where operands are other expressions and operator is logical AND or OR
- */
-public class BooleanQueryExpression extends BaseQueryExpression {
-    private final BooleanClause[] clauses;
-    private final QueryFactory queryFactory;
-
-    public BooleanQueryExpression(BooleanQuery query, ResourceDefinition resourceDefinition, QueryFactory queryFactory) {
-        super(null, null, resourceDefinition);
-        clauses = query.getClauses();
-        this.queryFactory = queryFactory;
-    }
-
-    @Override
-    public Pipe asPipe() {
-        Map<BooleanClause.Occur, Collection<BooleanClause>> groupedClauses = groupClauses();
-
-        Pipe andPipe = null;
-        Collection<Pipe> andPipes = processAndClauses(groupedClauses);
-        andPipes.addAll(processNotClauses(groupedClauses));
-        if (! andPipes.isEmpty()) {
-            andPipe = new AndFilterPipe(andPipes.toArray(new Pipe[andPipes.size()]));
-        }
-
-        Collection<Pipe> orPipes = processOrClauses(groupedClauses);
-        if (! orPipes.isEmpty()) {
-            if (andPipe != null) {
-                orPipes.add(andPipe);
-            }
-            return new OrFilterPipe(orPipes.toArray(new Pipe[orPipes.size()]));
-        } else {
-            return andPipe;
-        }
-    }
-
-    private Map<BooleanClause.Occur, Collection<BooleanClause>> groupClauses() {
-        Map<BooleanClause.Occur, Collection<BooleanClause>> groupedClauses = new HashMap<>();
-        for (BooleanClause clause : clauses) {
-            BooleanClause.Occur occur = resolveClauseOccur(clause);
-            Collection<BooleanClause> clauseGrouping = groupedClauses.get(occur);
-            if (clauseGrouping == null) {
-                clauseGrouping = new ArrayList<>();
-                groupedClauses.put(occur, clauseGrouping);
-            }
-            clauseGrouping.add(clause);
-        }
-        return groupedClauses;
-    }
-
-    private BooleanClause.Occur resolveClauseOccur(BooleanClause clause) {
-        BooleanClause.Occur occur = clause.getOccur();
-        if (negate) {
-            switch (occur) {
-                case SHOULD:
-                    occur = BooleanClause.Occur.MUST_NOT;
-                    break;
-                case MUST:
-                    occur = BooleanClause.Occur.SHOULD;
-                    break;
-                case MUST_NOT:
-                    occur = BooleanClause.Occur.SHOULD;
-                    break;
-            }
-        }
-        return occur;
-    }
-
-    private Collection<Pipe> processAndClauses(Map<BooleanClause.Occur, Collection<BooleanClause>> groupedClauses) {
-        Collection<BooleanClause> andClauses = groupedClauses.get(BooleanClause.Occur.MUST);
-        Collection<Pipe> andPipes = new ArrayList<>();
-        if (andClauses != null) {
-            for (BooleanClause andClause : andClauses) {
-                QueryExpression queryExpression = queryFactory.create(andClause.getQuery(), resourceDefinition);
-                properties.addAll(queryExpression.getProperties());
-                andPipes.add(queryExpression.asPipe());
-            }
-        }
-        return andPipes;
-    }
-
-
-    private Collection<Pipe> processOrClauses(Map<BooleanClause.Occur, Collection<BooleanClause>> groupedClauses) {
-        Collection<BooleanClause> shouldClauses = groupedClauses.get(BooleanClause.Occur.SHOULD);
-        Collection<Pipe> orPipes = new ArrayList<>();
-        if (shouldClauses != null) {
-            for (BooleanClause shouldClause : shouldClauses) {
-                QueryExpression queryExpression = queryFactory.create(shouldClause.getQuery(), resourceDefinition);
-                // don't negate expression if we negated MUST_NOT -> SHOULD
-                if (negate && shouldClause.getOccur() != BooleanClause.Occur.MUST_NOT) {
-                    queryExpression.setNegate();
-                }
-                properties.addAll(queryExpression.getProperties());
-                orPipes.add(queryExpression.asPipe());
-            }
-        }
-        return orPipes;
-    }
-
-    private Collection<Pipe> processNotClauses(Map<BooleanClause.Occur, Collection<BooleanClause>> groupedClauses) {
-        Collection<BooleanClause> notClauses = groupedClauses.get(BooleanClause.Occur.MUST_NOT);
-        Collection<Pipe> notPipes = new ArrayList<>();
-        if (notClauses != null) {
-            for (BooleanClause notClause : notClauses) {
-                QueryExpression queryExpression = queryFactory.create(notClause.getQuery(), resourceDefinition);
-                queryExpression.setNegate();
-                properties.addAll(queryExpression.getProperties());
-                notPipes.add(queryExpression.asPipe());
-            }
-        }
-        return notPipes;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/PrefixQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/PrefixQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/PrefixQueryExpression.java
deleted file mode 100644
index 6b43667..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/PrefixQueryExpression.java
+++ /dev/null
@@ -1,39 +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.definition.ResourceDefinition;
-import org.apache.lucene.search.PrefixQuery;
-
-/**
- * Expression that evaluates whether a property starts with a prefix.
- */
-public class PrefixQueryExpression extends BaseQueryExpression {
-
-    // query 'f*' results in a PrefixQuery
-    public PrefixQueryExpression(PrefixQuery query, ResourceDefinition resourceDefinition) {
-        super(query.getPrefix().field(), query.getPrefix().text(), resourceDefinition);
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        return value != null && String.valueOf(value).startsWith(getExpectedValue());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/ProjectionQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/ProjectionQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/ProjectionQueryExpression.java
deleted file mode 100644
index b915877..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/ProjectionQueryExpression.java
+++ /dev/null
@@ -1,122 +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.attribute.Text;
-import com.tinkerpop.gremlin.java.GremlinPipeline;
-import com.tinkerpop.pipes.Pipe;
-import com.tinkerpop.pipes.PipeFunction;
-import com.tinkerpop.pipes.filter.FilterFunctionPipe;
-import org.apache.atlas.catalog.VertexWrapper;
-import org.apache.atlas.catalog.definition.ResourceDefinition;
-import org.apache.atlas.catalog.projection.ProjectionResult;
-import org.apache.atlas.catalog.projection.Relation;
-
-import java.util.*;
-
-/**
- * Query expression wrapper which handles projection queries.
- */
-public class ProjectionQueryExpression extends BaseQueryExpression {
-
-    private final QueryExpression underlyingExpression;
-    private final ResourceDefinition resourceDefinition;
-
-    private final String[] fieldSegments;
-
-    protected ProjectionQueryExpression(QueryExpression underlyingExpression, ResourceDefinition resourceDefinition) {
-        super(underlyingExpression.getField(), underlyingExpression.getExpectedValue(), resourceDefinition);
-
-        this.underlyingExpression = underlyingExpression;
-        this.resourceDefinition = resourceDefinition;
-        this.fieldSegments = getField().split(QueryFactory.PATH_SEP_TOKEN);
-    }
-
-    @Override
-    public Pipe asPipe() {
-        //todo: encapsulate all of this path logic including path sep escaping and normalizing
-        final int sepIdx = getField().indexOf(QueryFactory.PATH_SEP_TOKEN);
-        final String edgeToken = getField().substring(0, sepIdx);
-        GremlinPipeline pipeline = new GremlinPipeline();
-
-        Relation relation = resourceDefinition.getRelations().get(fieldSegments[0]);
-        if (relation != null) {
-            pipeline = pipeline.outE();
-            pipeline.add(relation.asPipe()).inV();
-        } else {
-            if (resourceDefinition.getProjections().get(fieldSegments[0]) != null) {
-                return super.asPipe();
-            } else {
-                //todo: default Relation implementation
-                pipeline = pipeline.outE().has("label", Text.REGEX, String.format(".*\\.%s", edgeToken)).inV();
-            }
-        }
-        //todo: set resource definition from relation on underlying expression where appropriate
-        String childFieldName = getField().substring(sepIdx + QueryFactory.PATH_SEP_TOKEN.length());
-        underlyingExpression.setField(childFieldName);
-
-        Pipe childPipe;
-        if (childFieldName.contains(QueryFactory.PATH_SEP_TOKEN)) {
-            childPipe = new ProjectionQueryExpression(underlyingExpression, resourceDefinition).asPipe();
-        } else {
-            childPipe = underlyingExpression.asPipe();
-        }
-        pipeline.add(childPipe);
-
-        return negate ? new FilterFunctionPipe(new ExcludePipeFunction(pipeline)) : pipeline;
-    }
-
-    @Override
-    public boolean evaluate(VertexWrapper vWrapper) {
-        boolean result = false;
-        Iterator<ProjectionResult> projectionIterator = resourceDefinition.getProjections().
-                get(fieldSegments[0]).values(vWrapper).iterator();
-
-        while (! result && projectionIterator.hasNext()) {
-            ProjectionResult projectionResult = projectionIterator.next();
-            for (Map<String, Object> propertyMap : projectionResult.getPropertyMaps()) {
-                Object val = propertyMap.get(fieldSegments[1]);
-                if (val != null && underlyingExpression.evaluate(QueryFactory.escape(val))) {
-                    result = true;
-                    break;
-                }
-            }
-        }
-        return negate ^ result;
-    }
-
-    private static class ExcludePipeFunction implements PipeFunction<Object, Boolean> {
-        private final GremlinPipeline excludePipeline;
-
-        public ExcludePipeFunction(GremlinPipeline excludePipeline) {
-            this.excludePipeline = excludePipeline;
-        }
-
-        @Override
-        public Boolean compute(Object vertices) {
-            GremlinPipeline p = new GremlinPipeline(Collections.singleton(vertices));
-            p.add(excludePipeline);
-            return p.gather().toList().isEmpty();
-        }
-    }
-
-    protected QueryExpression getUnderlyingExpression() {
-        return underlyingExpression;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/QueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/QueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/QueryExpression.java
deleted file mode 100644
index c53b94b..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/QueryExpression.java
+++ /dev/null
@@ -1,99 +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.tinkerpop.pipes.Pipe;
-import org.apache.atlas.catalog.VertexWrapper;
-
-import java.util.Collection;
-
-/**
- * Represents a query expression.
- */
-public interface QueryExpression {
-    /**
-     * Evaluate the expression based on properties of the provied vertex.
-     *
-     * @param vWrapper vertex wrapper that expression is applied to
-     * @return result of expression evaluation
-     */
-    boolean evaluate(VertexWrapper vWrapper);
-
-    /**
-     * Evaluate the expression based on the provided value.
-     *
-     * @param value  value used to evaluate expression
-     * @return
-     */
-    boolean evaluate(Object value);
-
-    /**
-     * Get the complete set of properties which are contained in the expression.
-     *
-     * @return collection of expression properties
-     */
-    Collection<String> getProperties();
-
-    /**
-     * Get the pipe representation of the expression.
-     *
-     * @return pipe representation
-     */
-    Pipe asPipe();
-
-    /**
-     * Negate the expression.
-     */
-    void setNegate();
-
-    /**
-     * Get the negate status of the expression.
-     *
-     * @return true if the expression is negated, false otherwise
-     */
-    boolean isNegate();
-
-    /**
-     * Determine whether the expression is being applied to a projection.
-     *
-     * @return true if expression is being applied to a projection, false otherwise
-     */
-    boolean isProjectionExpression();
-
-    /**
-     * Get the field name used in the expression.
-     *
-     * @return expression field name or null if there is no field name
-     */
-    String getField();
-
-    /**
-     * Set the expressions field name.
-     *
-     * @param fieldName  field name
-     */
-    void setField(String fieldName);
-
-    /**
-     * Get the expected value for the expression.
-     *
-     * @return expected value or null if there isn't a expected value
-     */
-    String getExpectedValue();
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/QueryFactory.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/QueryFactory.java b/catalog/src/main/java/org/apache/atlas/catalog/query/QueryFactory.java
deleted file mode 100644
index a4fd4ad..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/QueryFactory.java
+++ /dev/null
@@ -1,183 +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.Request;
-import org.apache.atlas.catalog.TermPath;
-import org.apache.atlas.catalog.definition.*;
-import org.apache.atlas.catalog.exception.CatalogRuntimeException;
-import org.apache.atlas.catalog.exception.InvalidQueryException;
-import org.apache.lucene.analysis.core.KeywordAnalyzer;
-import org.apache.lucene.queryparser.classic.ParseException;
-import org.apache.lucene.queryparser.classic.QueryParser;
-import org.apache.lucene.sandbox.queries.regex.RegexQuery;
-import org.apache.lucene.search.*;
-import org.apache.lucene.util.Version;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Factory used to create QueryAdapter instances.
- */
-public class QueryFactory {
-    private static final Logger LOG = LoggerFactory.getLogger(QueryFactory.class);
-    public static final String PATH_SEP_TOKEN = "__slash__";
-
-    private final Map<Class<? extends Query>, ExpressionCreateFunction<? extends Query>>
-            expressionCreateFunctions = new HashMap<>();
-
-    public QueryFactory() {
-        registerExpressionCreateFunctions();
-    }
-
-    public AtlasQuery createTaxonomyQuery(Request request) throws InvalidQueryException {
-        ResourceDefinition taxonomyDefinition = new TaxonomyResourceDefinition();
-        QueryExpression queryExpression = create(request, taxonomyDefinition);
-        return new AtlasTaxonomyQuery(queryExpression, taxonomyDefinition, request);
-    }
-
-    public AtlasQuery createTermQuery(Request request) throws InvalidQueryException {
-        ResourceDefinition termDefinition = new TermResourceDefinition();
-        QueryExpression queryExpression = create(request, termDefinition);
-        TermPath termPath = request.getProperty("termPath");
-        return new AtlasTermQuery(queryExpression, termDefinition, termPath, request);
-    }
-
-    public AtlasQuery createEntityQuery(Request request) throws InvalidQueryException {
-        ResourceDefinition entityDefinition = new EntityResourceDefinition();
-        QueryExpression queryExpression = create(request, entityDefinition);
-        return new AtlasEntityQuery(queryExpression, entityDefinition, request);
-    }
-
-    public AtlasQuery createEntityTagQuery(Request request) throws InvalidQueryException {
-        ResourceDefinition entityTagDefinition = new EntityTagResourceDefinition();
-        QueryExpression queryExpression = create(request, entityTagDefinition);
-        String guid = request.getProperty("id");
-        return new AtlasEntityTagQuery(queryExpression, entityTagDefinition, guid, request);
-    }
-
-    private QueryExpression create(Request request, ResourceDefinition resourceDefinition) throws InvalidQueryException {
-        String queryString;
-        if (request.getCardinality() == Request.Cardinality.INSTANCE) {
-            String idPropertyName = resourceDefinition.getIdPropertyName();
-            queryString = String.format("%s:%s", idPropertyName, request.<String>getProperty(idPropertyName));
-        } else {
-            queryString = request.getQueryString();
-        }
-
-        QueryExpression queryExpression;
-        if (queryString != null && !queryString.isEmpty()) {
-            QueryParser queryParser = new QueryParser(Version.LUCENE_48, "name", new KeywordAnalyzer());
-            queryParser.setLowercaseExpandedTerms(false);
-            queryParser.setAllowLeadingWildcard(true);
-            Query query;
-            try {
-                query = queryParser.parse((String) escape(queryString));
-            } catch (ParseException e) {
-                throw new InvalidQueryException(e.getMessage());
-            }
-            LOG.info("LuceneQuery: {}", query);
-            queryExpression = create(query, resourceDefinition);
-        } else {
-            queryExpression = new AlwaysQueryExpression();
-        }
-        // add query properties to request so that they are returned
-        request.addAdditionalSelectProperties(queryExpression.getProperties());
-        return queryExpression;
-    }
-
-    @SuppressWarnings("unchecked")
-    protected <T extends Query> QueryExpression create(T query, ResourceDefinition resourceDefinition) {
-        if (! expressionCreateFunctions.containsKey(query.getClass())) {
-            throw new CatalogRuntimeException("Query type currently not supported: " + query.getClass(), 400);
-        }
-        //todo: fix generic typing
-        ExpressionCreateFunction expressionCreateFunction = expressionCreateFunctions.get(query.getClass());
-        return expressionCreateFunction.createExpression(query, resourceDefinition);
-
-    }
-
-    // "escapes" characters as necessary for lucene parser
-    //todo: currently '/' characters are blindly being replaced but this will not allow regex queries to be used
-    protected static Object escape(Object val) {
-        if (val instanceof String) {
-            return ((String)val).replaceAll("/", PATH_SEP_TOKEN);
-        } else {
-            return val;
-        }
-    }
-
-    private abstract static class ExpressionCreateFunction<T extends Query> {
-        QueryExpression createExpression(T query, ResourceDefinition resourceDefinition) {
-            QueryExpression expression = create(query, resourceDefinition);
-            return expression.isProjectionExpression() ?
-                    new ProjectionQueryExpression(expression, resourceDefinition) :
-                    expression;
-        }
-
-        protected abstract QueryExpression create(T query, ResourceDefinition resourceDefinition);
-    }
-
-    private void registerExpressionCreateFunctions() {
-        expressionCreateFunctions.put(WildcardQuery.class, new ExpressionCreateFunction<WildcardQuery>() {
-            @Override
-            public QueryExpression create(WildcardQuery query, ResourceDefinition definition) {
-                return new WildcardQueryExpression(query, definition);
-            }
-        });
-
-        expressionCreateFunctions.put(PrefixQuery.class, new ExpressionCreateFunction<PrefixQuery>() {
-            @Override
-            public QueryExpression create(PrefixQuery query, ResourceDefinition definition) {
-                return new PrefixQueryExpression(query, definition);
-            }
-        });
-
-        expressionCreateFunctions.put(TermQuery.class, new ExpressionCreateFunction<TermQuery>() {
-            @Override
-            public QueryExpression create(TermQuery query, ResourceDefinition definition) {
-                return new TermQueryExpression(query, definition);
-            }
-        });
-
-        expressionCreateFunctions.put(TermRangeQuery.class, new ExpressionCreateFunction<TermRangeQuery>() {
-            @Override
-            public QueryExpression create(TermRangeQuery query, ResourceDefinition definition) {
-                return new TermRangeQueryExpression(query, definition);
-            }
-        });
-
-        expressionCreateFunctions.put(RegexQuery.class, new ExpressionCreateFunction<RegexQuery>() {
-            @Override
-            public QueryExpression create(RegexQuery query, ResourceDefinition definition) {
-                return new RegexQueryExpression(query, definition);
-            }
-        });
-
-        expressionCreateFunctions.put(BooleanQuery.class, new ExpressionCreateFunction<BooleanQuery>() {
-            @Override
-            public QueryExpression create(BooleanQuery query, ResourceDefinition definition) {
-                return new BooleanQueryExpression(query, definition, QueryFactory.this);
-            }
-        });
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/RegexQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/RegexQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/RegexQueryExpression.java
deleted file mode 100644
index c28d4d5..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/RegexQueryExpression.java
+++ /dev/null
@@ -1,41 +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.definition.ResourceDefinition;
-import org.apache.lucene.sandbox.queries.regex.RegexQuery;
-
-import java.util.regex.Pattern;
-
-/**
- * Query expression which evaluates a property against a regular expression.
- */
-public class RegexQueryExpression extends BaseQueryExpression {
-
-    public RegexQueryExpression(RegexQuery query, ResourceDefinition resourceDefinition) {
-        super(query.getField(), query.getTerm().text(), resourceDefinition);
-
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        Pattern p = Pattern.compile(getExpectedValue());
-        return value != null && p.matcher(String.valueOf(value)).matches();
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/TermQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/TermQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/TermQueryExpression.java
deleted file mode 100644
index a790866..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/TermQueryExpression.java
+++ /dev/null
@@ -1,52 +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.definition.ResourceDefinition;
-import org.apache.lucene.search.TermQuery;
-
-import java.util.Collection;
-
-/**
- * Query expression which evaluates whether a property equals a value.
- */
-public class TermQueryExpression extends BaseQueryExpression {
-
-    public TermQueryExpression(TermQuery query, ResourceDefinition resourceDefinition) {
-        super(query.getTerm().field(), query.getTerm().text(), resourceDefinition);
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        String expectedValue = getExpectedValue();
-        if (value == null) {
-            return expectedValue.equals("null");
-        //todo: refactor; we shouldn't need to use instanceof/cast here
-        } else if (value instanceof Collection) {
-            return ((Collection)value).contains(expectedValue);
-        } else {
-            return expectedValue.equals(QueryFactory.escape(String.valueOf(value)));
-        }
-    }
-
-    public String getExpectedValue() {
-        return m_expectedValue;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/TermRangeQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/TermRangeQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/TermRangeQueryExpression.java
deleted file mode 100644
index 44cfb72..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/TermRangeQueryExpression.java
+++ /dev/null
@@ -1,61 +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.definition.ResourceDefinition;
-import org.apache.lucene.search.TermRangeQuery;
-import org.apache.lucene.util.BytesRef;
-
-/**
- * Query expression which evaluates whether a property value is within a range.
- */
-//todo: for month and year which are expressed via a single digit, must ensure that
-//todo: a leading '0' is provided.  For example, "2016-1-5" must be converted to "2016-01-05".
-//todo: Month and day values aren't currently validated.
-public class TermRangeQueryExpression extends BaseQueryExpression {
-    private final BytesRef m_lowerTerm;
-    private final BytesRef m_upperTerm;
-    private final boolean m_lowerInclusive;
-    private final boolean m_upperInclusive;
-
-    public TermRangeQueryExpression(TermRangeQuery query, ResourceDefinition resourceDefinition) {
-        super(query.getField(), null, resourceDefinition);
-        m_lowerTerm = query.getLowerTerm();
-        m_upperTerm = query.getUpperTerm();
-        m_lowerInclusive = query.includesLower();
-        m_upperInclusive = query.includesUpper();
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        BytesRef valueBytes = new BytesRef(String.valueOf(value));
-       return compareLowerBound(valueBytes) && compareUpperBound(valueBytes);
-    }
-
-    private boolean compareLowerBound(BytesRef valueBytes) {
-        return m_lowerTerm == null || (m_lowerInclusive ? valueBytes.compareTo(m_lowerTerm) > 0 :
-                valueBytes.compareTo(m_lowerTerm) >= 0);
-    }
-
-    private boolean compareUpperBound(BytesRef valueBytes) {
-        return m_upperTerm == null || (m_upperInclusive ? valueBytes.compareTo(m_upperTerm) < 0 :
-                valueBytes.compareTo(m_upperTerm) <= 0);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/main/java/org/apache/atlas/catalog/query/WildcardQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/atlas/catalog/query/WildcardQueryExpression.java b/catalog/src/main/java/org/apache/atlas/catalog/query/WildcardQueryExpression.java
deleted file mode 100644
index 689891f..0000000
--- a/catalog/src/main/java/org/apache/atlas/catalog/query/WildcardQueryExpression.java
+++ /dev/null
@@ -1,43 +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.definition.ResourceDefinition;
-import org.apache.lucene.search.WildcardQuery;
-
-import java.util.regex.Pattern;
-
-/**
- * Query expression which evaluates values with wildcards.
- * This differs from PrefixQueryExpression which handles expressions which end with a wildcard.
- */
-public class WildcardQueryExpression extends BaseQueryExpression {
-
-    public WildcardQueryExpression(WildcardQuery query, ResourceDefinition resourceDefinition) {
-        super(query.getTerm().field(), query.getTerm().text(), resourceDefinition);
-    }
-
-    @Override
-    public boolean evaluate(Object value) {
-        // replace '*' with ".*"
-        // replace '?' with '.'
-        String regex = getExpectedValue().replaceAll("\\*", ".*").replaceAll("\\?", ".");
-        return Pattern.compile(regex).matcher(String.valueOf(value)).matches();
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/CollectionRequestTest.java
----------------------------------------------------------------------
diff --git a/catalog/src/test/java/org/apache/atlas/catalog/CollectionRequestTest.java b/catalog/src/test/java/org/apache/atlas/catalog/CollectionRequestTest.java
deleted file mode 100644
index a228546..0000000
--- a/catalog/src/test/java/org/apache/atlas/catalog/CollectionRequestTest.java
+++ /dev/null
@@ -1,74 +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;
-
-import org.testng.annotations.Test;
-
-import java.util.*;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-/**
- * Unit tests for CollectionRequest.
- */
-public class CollectionRequestTest {
-    @Test
-    public void testNoProperties() {
-        String query = "name:foo*";
-        Request request = new CollectionRequest(null, query);
-
-        assertEquals(Request.Cardinality.COLLECTION, request.getCardinality());
-        assertTrue(request.getQueryProperties().isEmpty());
-        assertNull(request.getProperty("foo"));
-        assertTrue(request.getAdditionalSelectProperties().isEmpty());
-    }
-
-    @Test
-    public void testWithProperties() {
-        String query = "name:foo*";
-        Map<String, Object> properties = new HashMap<>();
-        properties.put("foo", "fooValue");
-        properties.put("someBoolean", true);
-        Request request = new CollectionRequest(properties, query);
-
-        assertEquals(Request.Cardinality.COLLECTION, request.getCardinality());
-        assertEquals(properties, request.getQueryProperties());
-        assertEquals("fooValue", request.getProperty("foo"));
-        assertTrue(request.<Boolean>getProperty("someBoolean"));
-        assertNull(request.getProperty("other"));
-        assertTrue(request.getAdditionalSelectProperties().isEmpty());
-    }
-
-    @Test
-    public void testSelectProperties() {
-        String query = "name:foo*";
-        Request request = new CollectionRequest(null, query);
-        Collection<String> additionalSelectProps = new ArrayList<>();
-        additionalSelectProps.add("foo");
-        additionalSelectProps.add("bar");
-        request.addAdditionalSelectProperties(additionalSelectProps);
-        Collection<String> requestAdditionalSelectProps = request.getAdditionalSelectProperties();
-        assertEquals(2, requestAdditionalSelectProps.size());
-        assertTrue(requestAdditionalSelectProps.contains("foo"));
-        assertTrue(requestAdditionalSelectProps.contains("bar"));
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/96da2306/catalog/src/test/java/org/apache/atlas/catalog/DefaultDateFormatterTest.java
----------------------------------------------------------------------
diff --git a/catalog/src/test/java/org/apache/atlas/catalog/DefaultDateFormatterTest.java b/catalog/src/test/java/org/apache/atlas/catalog/DefaultDateFormatterTest.java
deleted file mode 100644
index bbc98c5..0000000
--- a/catalog/src/test/java/org/apache/atlas/catalog/DefaultDateFormatterTest.java
+++ /dev/null
@@ -1,41 +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;
-
-import org.testng.annotations.Test;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-
-import static org.testng.Assert.assertEquals;
-
-/**
- * Unit tests for DefaultDateFormatter.
- */
-public class DefaultDateFormatterTest {
-    @Test
-    public void test() {
-        Calendar calendar = new GregorianCalendar(2016, 0, 20, 5, 10, 15);
-        long millis = calendar.getTimeInMillis();
-
-        DefaultDateFormatter dateFormatter = new DefaultDateFormatter();
-        // month starts at 0 so we need to add 1
-        assertEquals("2016-01-20:05:10:15", dateFormatter.format(millis));
-    }
-}