You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/05 15:07:53 UTC

[52/52] [abbrv] incubator-ignite git commit: # Renaming

# Renaming


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/12837f35
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/12837f35
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/12837f35

Branch: refs/heads/master
Commit: 12837f35b619e2e9d19de9e0515a681124bf40e9
Parents: dec83ed
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 17:06:13 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 17:06:13 2014 +0300

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |   6 +-
 .../ignite/spi/indexing/IndexDescriptor.java    |  42 +++++
 .../apache/ignite/spi/indexing/IndexType.java   |  24 +++
 .../ignite/spi/indexing/IndexingEntity.java     |  50 +++++
 .../spi/indexing/IndexingEntityAdapter.java     |  57 ++++++
 .../spi/indexing/IndexingFieldMetadata.java     |  46 +++++
 .../spi/indexing/IndexingFieldsResult.java      |  35 ++++
 .../indexing/IndexingFieldsResultAdapter.java   |  49 +++++
 .../spi/indexing/IndexingKeyValueRow.java       |  42 +++++
 .../indexing/IndexingKeyValueRowAdapter.java    |  82 ++++++++
 .../ignite/spi/indexing/IndexingMarshaller.java |  38 ++++
 .../spi/indexing/IndexingQueryFilter.java       |  27 +++
 .../apache/ignite/spi/indexing/IndexingSpi.java | 188 +++++++++++++++++++
 .../spi/indexing/IndexingTypeDescriptor.java    |  84 +++++++++
 .../ignite/spi/indexing/NoopIndexingSpi.java    | 119 ++++++++++++
 .../org/apache/ignite/spi/indexing/package.html |  15 ++
 .../grid/cache/GridCacheConfiguration.java      |   4 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |   2 +-
 .../managers/indexing/GridIndexingManager.java  |  10 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |   2 +-
 .../query/GridCacheDistributedQueryManager.java |   2 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |   2 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |   2 +-
 .../cache/query/GridCacheLocalQueryManager.java |   2 +-
 .../cache/query/GridCacheQueryManager.java      |   2 +-
 .../query/GridCacheQueryMetadataAware.java      |   2 +-
 .../cache/query/GridCacheQueryResponse.java     |   2 +-
 .../cache/query/GridCacheSqlMetadata.java       |   2 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |   2 +-
 .../grid/kernal/visor/query/VisorQueryTask.java |   2 +-
 .../grid/spi/indexing/IndexDescriptor.java      |  42 -----
 .../gridgain/grid/spi/indexing/IndexType.java   |  24 ---
 .../grid/spi/indexing/IndexingEntity.java       |  50 -----
 .../spi/indexing/IndexingEntityAdapter.java     |  57 ------
 .../spi/indexing/IndexingFieldMetadata.java     |  46 -----
 .../grid/spi/indexing/IndexingFieldsResult.java |  35 ----
 .../indexing/IndexingFieldsResultAdapter.java   |  49 -----
 .../grid/spi/indexing/IndexingKeyValueRow.java  |  42 -----
 .../indexing/IndexingKeyValueRowAdapter.java    |  82 --------
 .../grid/spi/indexing/IndexingMarshaller.java   |  38 ----
 .../grid/spi/indexing/IndexingQueryFilter.java  |  27 ---
 .../gridgain/grid/spi/indexing/IndexingSpi.java | 188 -------------------
 .../spi/indexing/IndexingTypeDescriptor.java    |  84 ---------
 .../grid/spi/indexing/NoopIndexingSpi.java      | 119 ------------
 .../org/gridgain/grid/spi/indexing/package.html |  15 --
 .../GridCacheTxExceptionAbstractSelfTest.java   |   2 +-
 .../grid/spi/indexing/h2/GridH2IndexingSpi.java |  12 +-
 .../h2/opt/GridH2AbstractKeyValueRow.java       |   2 +-
 .../spi/indexing/h2/opt/GridH2IndexBase.java    |   2 +-
 .../spi/indexing/h2/opt/GridH2TreeIndex.java    |   3 +-
 .../spi/indexing/h2/opt/GridLuceneIndex.java    |   2 +-
 .../GridCacheAbstractFieldsQuerySelfTest.java   |   2 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |   2 +-
 .../GridCacheReplicatedQuerySelfTest.java       |   2 +-
 .../GridIndexingSpiAbstractSelfTest.java        |   1 +
 .../spi/indexing/h2/GridH2IndexRebuildTest.java |   2 +-
 .../h2/opt/GridLuceneIndexLoadTest.java         |   2 +-
 57 files changed, 938 insertions(+), 936 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 59a4fea..04f7634 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -19,6 +19,7 @@ import org.apache.ignite.marshaller.*;
 import org.apache.ignite.plugin.*;
 import org.apache.ignite.portables.*;
 import org.apache.ignite.spi.authentication.*;
+import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.streamer.*;
 import org.gridgain.client.ssl.*;
 import org.gridgain.grid.cache.*;
@@ -34,7 +35,6 @@ import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.eventstorage.*;
 import org.apache.ignite.spi.failover.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
 import org.gridgain.grid.spi.securesession.*;
@@ -2150,9 +2150,9 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Sets fully configured instances of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
+     * Sets fully configured instances of {@link org.apache.ignite.spi.indexing.IndexingSpi}.
      *
-     * @param indexingSpi Fully configured instances of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
+     * @param indexingSpi Fully configured instances of {@link org.apache.ignite.spi.indexing.IndexingSpi}.
      * @see IgniteConfiguration#getIndexingSpi()
      */
     public void setIndexingSpi(IndexingSpi... indexingSpi) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java
new file mode 100644
index 0000000..ada2cc1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexDescriptor.java
@@ -0,0 +1,42 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import java.util.*;
+
+/**
+ * Describes an index to be created for a certain type. It contains all necessary
+ * information about fields, order, uniqueness, and specified
+ * whether this is SQL or Text index.
+ * See also {@link IndexingTypeDescriptor#indexes()}.
+ */
+public interface IndexDescriptor {
+    /**
+     * Gets all fields to be indexed.
+     *
+     * @return Fields to be indexed.
+     */
+    public Collection<String> fields();
+
+    /**
+     * Specifies order of the index for each indexed field.
+     *
+     * @param field Field name.
+     * @return {@code True} if given field should be indexed in descending order.
+     */
+    public boolean descending(String field);
+
+    /**
+     * Gets index type.
+     *
+     * @return Type.
+     */
+    public IndexType type();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java
new file mode 100644
index 0000000..dcab0a7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexType.java
@@ -0,0 +1,24 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+/**
+ * Index types.
+ */
+public enum IndexType {
+    /** Sorted SQL index. */
+    SORTED,
+
+    /** Spatial SQL index. */
+    GEO_SPATIAL,
+
+    /** Fulltext index. */
+    FULLTEXT
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java
new file mode 100644
index 0000000..0208b75
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntity.java
@@ -0,0 +1,50 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Wrapper around indexed key or value which also may contain the value in
+ * unmarshalled form. It exists to avoid unnecessary unmarshalling whenever
+ * it is not needed.
+ * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}.
+ */
+public interface IndexingEntity<T> {
+    /**
+     * Gets indexed value. This method may return {@code null} only
+     * if actual value is {@code null}. Otherwise, it will unmarshal
+     * the {@link #bytes()} and return the actual value.
+     *
+     * @return Indexed value.
+     * @throws org.apache.ignite.spi.IgniteSpiException If value de-serialization failed.
+     */
+    @Nullable public T value() throws IgniteSpiException;
+
+    /**
+     * Optional bytes for marshaled indexed value. Certain SPI implementations
+     * may keep objects in unmarshalled form and therefore will not provide
+     * marshaled bytes for them.
+     *
+     * @return Optional marshaled value.
+     */
+    @Nullable public byte[] bytes();
+
+    /**
+     * Flag indicating whether this entity contains unmarshalled value.
+     *
+     * @return {@code True} if entity contains unmarshalled value, {@code false}
+     *      otherwise.
+     */
+    public boolean hasValue();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java
new file mode 100644
index 0000000..d0ca976
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingEntityAdapter.java
@@ -0,0 +1,57 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Convenience adapter for {@link IndexingEntity}.
+ */
+public class IndexingEntityAdapter<T> implements IndexingEntity<T> {
+    /** */
+    @GridToStringInclude
+    private final T val;
+
+    /** */
+    @GridToStringExclude
+    private final byte[] bytes;
+
+    /**
+     * @param val Value.
+     * @param bytes Value marshalled by {@link org.apache.ignite.marshaller.IgniteMarshaller}.
+     */
+    public IndexingEntityAdapter(T val, @Nullable byte[] bytes) {
+        this.val = val;
+        this.bytes = bytes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public T value() {
+        return val;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte[] bytes() {
+        return bytes;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean hasValue() {
+        return val != null || (val == null && bytes == null);
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IndexingEntityAdapter.class, this,
+            "bytesLength", (bytes == null ? 0 : bytes.length));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java
new file mode 100644
index 0000000..8b25c84
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldMetadata.java
@@ -0,0 +1,46 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import java.io.*;
+
+/**
+ * Query field descriptor. This descriptor is used to provide metadata
+ * about fields returned in query result.
+ */
+public interface IndexingFieldMetadata extends Externalizable {
+    /**
+     * Gets schema name.
+     *
+     * @return Schema name.
+     */
+    public String schemaName();
+
+    /**
+     * Gets name of type to which this field belongs.
+     *
+     * @return Gets type name.
+     */
+    public String typeName();
+
+    /**
+     * Gets field name.
+     *
+     * @return Field name.
+     */
+    public String fieldName();
+
+    /**
+     * Gets field type name.
+     *
+     * @return Field type name.
+     */
+    public String fieldTypeName();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java
new file mode 100644
index 0000000..62e6ce1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResult.java
@@ -0,0 +1,35 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Field query result. It is composed of
+ * fields metadata and iterator over queried fields.
+ * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter)}.
+ */
+public interface IndexingFieldsResult {
+    /**
+     * Gets metadata for queried fields.
+     *
+     * @return Meta data for queried fields.
+     */
+    List<IndexingFieldMetadata> metaData();
+
+    /**
+     * Gets iterator over queried fields.
+     *
+     * @return Iterator over queried fields.
+     */
+    IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java
new file mode 100644
index 0000000..c583b76
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingFieldsResultAdapter.java
@@ -0,0 +1,49 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Convenience adapter for {@link IndexingFieldsResult}.
+ */
+public class IndexingFieldsResultAdapter implements IndexingFieldsResult {
+    /** Meta data. */
+    private final List<IndexingFieldMetadata> metaData;
+
+    /** Result iterator. */
+    private final IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it;
+
+    /**
+     * Creates query field result composed of field metadata and iterator
+     * over queried fields.
+     *
+     * @param metaData Meta data.
+     * @param it Result iterator.
+     */
+    public IndexingFieldsResultAdapter(@Nullable List<IndexingFieldMetadata> metaData,
+                                       IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it) {
+        this.metaData = metaData != null ? Collections.unmodifiableList(metaData) : null;
+        this.it = it;
+    }
+
+    /** {@inheritDoc} */
+    @Override public List<IndexingFieldMetadata> metaData() {
+        return metaData;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator() {
+        return it;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java
new file mode 100644
index 0000000..7b075ed
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRow.java
@@ -0,0 +1,42 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import java.util.*;
+
+/**
+ * This class represents a single row returned by key-value query. For example, it is returned
+ * by query such as {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}
+ * method. Key-value queries are different from fields query in a way that they
+ * return the whole cached value, not its individual fields.
+ * See also {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}.
+ */
+public interface IndexingKeyValueRow<K, V> {
+    /**
+     * Gets cache key.
+     *
+     * @return Cache key.
+     */
+    public IndexingEntity<K> key();
+
+    /**
+     * Gets cache value.
+     *
+     * @return Cache value.
+     */
+    public IndexingEntity<V> value();
+
+    /**
+     * Gets version of cache value.
+     *
+     * @return Version of cache value.
+     */
+    public byte[] version();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java
new file mode 100644
index 0000000..f703c51
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingKeyValueRowAdapter.java
@@ -0,0 +1,82 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+*  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+*  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+*  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+*  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+*/
+
+package org.apache.ignite.spi.indexing;
+
+import org.gridgain.grid.kernal.processors.cache.query.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.gridgain.grid.util.tostring.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Convenience adapter for {@link IndexingKeyValueRow}.
+ */
+public class IndexingKeyValueRowAdapter<K, V> implements IndexingKeyValueRow<K, V> {
+    /** Key. */
+    @GridToStringInclude
+    private IndexingEntity<K> key;
+
+    /** Value. */
+    @GridToStringInclude
+    private IndexingEntity<V> val;
+
+    /** Version. */
+    @GridToStringInclude
+    private byte[] ver;
+
+    /**
+     * Constructor.
+     *
+     * @param key Key.
+     * @param val Value.
+     */
+    public IndexingKeyValueRowAdapter(K key, V val) {
+        assert key != null;
+        assert val != null;
+
+        this.key = new IndexingEntityAdapter<>(key, null);
+        this.val = new IndexingEntityAdapter<>(val, null);
+    }
+
+    /**
+     * Constructs query index row.
+     *
+     * @param key Key.
+     * @param val Value.
+     * @param ver Version. It is {@code null} in case of {@link GridCacheQueryType#SCAN} query.
+     */
+    public IndexingKeyValueRowAdapter(IndexingEntity<K> key, @Nullable IndexingEntity<V> val,
+                                      @Nullable byte[] ver) {
+        assert key != null;
+
+        this.key = key;
+        this.val = val;
+        this.ver = ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IndexingEntity<K> key() {
+        return key;
+    }
+
+    /** {@inheritDoc} */
+    @Override public IndexingEntity<V> value() {
+        return val;
+    }
+
+    /** {@inheritDoc} */
+    @Override public byte[] version() {
+        return ver;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(IndexingKeyValueRowAdapter.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java
new file mode 100644
index 0000000..e04c6a1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingMarshaller.java
@@ -0,0 +1,38 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+
+/**
+ * Marshaller to be used in indexing SPI. This marshaller automatically
+ * takes care of class loading of unmarshalled classes.
+ * See also {@link IndexingSpi#registerMarshaller(IndexingMarshaller)}.
+ */
+public interface IndexingMarshaller {
+    /**
+     * Unmarshalls bytes to object.
+     *
+     * @param bytes Bytes.
+     * @param <T> Value type.
+     * @return Value.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException;
+
+    /**
+     * Marshals object to bytes.
+     *
+     * @param entity Entity.
+     * @return Bytes.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java
new file mode 100644
index 0000000..bbdcdf6
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingQueryFilter.java
@@ -0,0 +1,27 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.lang.*;
+import org.gridgain.grid.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Space name and key filter.
+ */
+public interface IndexingQueryFilter {
+    /**
+     * Creates optional predicate for space.
+     *
+     * @param spaceName Space name.
+     * @return Predicate or {@code null} if no filtering is needed.
+     */
+    @Nullable public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java
new file mode 100644
index 0000000..74de3dd
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingSpi.java
@@ -0,0 +1,188 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.spi.*;
+import org.gridgain.grid.cache.*;
+import org.gridgain.grid.cache.query.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Indexing SPI allows user to index cache content. Using indexing SPI user can index data in cache and run SQL,
+ * TEXT or individual field queries against these indexes. Usually indexing SPI is used by caches by name
+ * (see {@link GridCacheConfiguration#getIndexingSpiName()}). Logically storage is organized into separate spaces.
+ * Usually cache name will be used as space name, so multiple caches can write to single indexing SPI instance.
+ * <p>
+ * Functionality of this SPI is exposed to {@link GridCacheQueries} interface:
+ * <ul>
+ *      <li>{@link GridCacheQueries#createSqlQuery(Class, String)}</li>
+ *      <li>{@link GridCacheQueries#createSqlFieldsQuery(String)}</li>
+ *      <li>{@link GridCacheQueries#createFullTextQuery(Class, String)}</li>
+ * </ul>
+ * <p>
+ * The default indexing SPI implementation is
+ * {@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi} which uses H2 database engine
+ * for data indexing and querying. User can implement his own indexing SPI and use his own data structures
+ * and query language instead of SQL. SPI can be configured for grid using {@link org.apache.ignite.configuration.IgniteConfiguration#getIndexingSpi()}.
+ * <p>
+ * GridGain comes with following built-in indexing SPI implementations:
+ * <ul>
+ *      <li>{@gglink org.gridgain.grid.spi.indexing.h2.GridH2IndexingSpi}</li>
+ * </ul>
+ * <p>
+ * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
+ * internal view on the subsystem and is used internally by GridGain kernal. In rare use cases when
+ * access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
+ * via {@link org.apache.ignite.Ignite#configuration()} method to check its configuration properties or call other non-SPI
+ * methods. Note again that calling methods from this interface on the obtained instance can lead
+ * to undefined behavior and explicitly not supported.
+ */
+public interface IndexingSpi extends IgniteSpi {
+    /**
+     * Queries individual fields (generally used by JDBC drivers).
+     *
+     * @param spaceName Space name.
+     * @param qry Query.
+     * @param params Query parameters.
+     * @param filters Space name and key filters.
+     * @return Query result.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException;
+
+    /**
+     * Executes regular query.
+     *
+     * @param spaceName Space name.
+     * @param qry Query.
+     * @param params Query parameters.
+     * @param type Query return type.
+     * @param filters Space name and key filters.
+     * @return Queried rows.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingTypeDescriptor type, IndexingQueryFilter filters)
+        throws IgniteSpiException;
+
+    /**
+     * Executes text query.
+     *
+     * @param spaceName Space name.
+     * @param qry Text query.
+     * @param type Query return type.
+     * @param filters Space name and key filter.
+     * @return Queried rows.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable String spaceName, String qry,
+        IndexingTypeDescriptor type, IndexingQueryFilter filters) throws IgniteSpiException;
+
+    /**
+     * Gets size of index for given type or -1 if it is a unknown type.
+     *
+     * @param spaceName Space name.
+     * @param desc Type descriptor.
+     * @return Objects number.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
+
+    /**
+     * Registers type if it was not known before or updates it otherwise.
+     *
+     * @param spaceName Space name.
+     * @param desc Type descriptor.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     * @return {@code True} if type was registered, {@code false} if for some reason it was rejected.
+     */
+    public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException;
+
+    /**
+     * Unregisters type and removes all corresponding data.
+     *
+     * @param spaceName Space name.
+     * @param type Type descriptor.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type) throws IgniteSpiException;
+
+    /**
+     * Updates index. Note that key is unique for space, so if space contains multiple indexes
+     * the key should be removed from indexes other than one being updated.
+     *
+     * @param spaceName Space name.
+     * @param type Value type.
+     * @param key Key.
+     * @param val Value.
+     * @param ver Version.
+     * @param expirationTime Expiration time or 0 if never expires.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type, IndexingEntity<K> key,
+        IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException;
+
+    /**
+     * Removes index entry by key.
+     *
+     * @param spaceName Space name.
+     * @param key Key.
+     * @return {@code True} if removed by this operation, {@code false} otherwise.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException;
+
+    /**
+     * Will be called when entry with given key is swapped.
+     *
+     * @param spaceName Space name.
+     * @param swapSpaceName Swap space name.
+     * @param key Key.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException;
+
+    /**
+     * Will be called when entry with given key is unswapped.
+     *
+     * @param spaceName Space name.
+     * @param key Key.
+     * @param val Value.
+     * @param valBytes Value bytes.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes) throws IgniteSpiException;
+
+    /**
+     * Marshaller to be used by SPI.
+     *
+     * @param marshaller Marshaller.
+     */
+    public void registerMarshaller(IndexingMarshaller marshaller);
+
+    /**
+     * Registers space in this SPI.
+     *
+     * @param spaceName Space name.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public void registerSpace(String spaceName) throws IgniteSpiException;
+
+    /**
+     * Rebuilds all indexes of given type.
+     *
+     * @param spaceName Space name.
+     * @param type Type descriptor.
+     */
+    public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java
new file mode 100644
index 0000000..3f96b1c
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/IndexingTypeDescriptor.java
@@ -0,0 +1,84 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+
+import org.apache.ignite.spi.*;
+
+import java.util.*;
+
+/**
+ * Value descriptor which allows to extract fields from value object of given type.
+ * See also {@link IndexingSpi#registerType(String, IndexingTypeDescriptor)}.
+ */
+public interface IndexingTypeDescriptor {
+    /**
+     * Gets type name which uniquely identifies this type.
+     *
+     * @return Type name which uniquely identifies this type.
+     */
+    public String name();
+
+    /**
+     * Gets mapping from values field name to its type.
+     *
+     * @return Fields that can be indexed, participate in queries and can be queried using
+     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
+     *      method.
+     */
+    public Map<String, Class<?>> valueFields();
+
+    /**
+     * Gets mapping from keys field name to its type.
+     *
+     * @return Fields that can be indexed, participate in queries and can be queried using
+     *      {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}
+     *      method.
+     */
+    public Map<String, Class<?>> keyFields();
+
+    /**
+     * Gets field value for given object.
+     *
+     * @param obj Object to get field value from.
+     * @param field Field name.
+     * @return Value for given field.
+     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
+     */
+    public <T> T value(Object obj, String field) throws IgniteSpiException;
+
+    /**
+     * Gets indexes for this type.
+     *
+     * @return Indexes for this type.
+     */
+    public Map<String, IndexDescriptor> indexes();
+
+    /**
+     * Gets value class.
+     *
+     * @return Value class.
+     */
+    public Class<?> valueClass();
+
+    /**
+     * Gets key class.
+     *
+     * @return Key class.
+     */
+    public Class<?> keyClass();
+
+    /**
+     * Returns {@code true} if string representation of value should be indexed as text.
+     *
+     * @return If string representation of value should be full-text indexed.
+     */
+    public boolean valueTextIndex();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java
new file mode 100644
index 0000000..9fba743
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/NoopIndexingSpi.java
@@ -0,0 +1,119 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.spi.indexing;
+
+import org.apache.ignite.*;
+import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * No-op implementation of {@link IndexingSpi}, throws exception on query attempt.
+ */
+@IgniteSpiNoop
+public class NoopIndexingSpi extends IgniteSpiAdapter implements IndexingSpi {
+    /** */
+    @IgniteLoggerResource
+    private IgniteLogger log;
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IndexingFieldsResult queryFields(@Nullable String spaceName, String qry,
+        Collection<Object> params, IndexingQueryFilter filters) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> query(@Nullable String spaceName,
+        String qry, Collection<Object> params, IndexingTypeDescriptor type,
+        IndexingQueryFilter filters) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> IgniteSpiCloseableIterator<IndexingKeyValueRow<K, V>> queryText(@Nullable
+        String spaceName, String qry, IndexingTypeDescriptor type, IndexingQueryFilter filters)
+        throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long size(@Nullable String spaceName, IndexingTypeDescriptor desc) throws IgniteSpiException {
+        throw spiException();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean registerType(@Nullable String spaceName, IndexingTypeDescriptor desc)
+        throws IgniteSpiException {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void unregisterType(@Nullable String spaceName, IndexingTypeDescriptor type)
+        throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> void store(@Nullable String spaceName, IndexingTypeDescriptor type,
+        IndexingEntity<K> key, IndexingEntity<V> val, byte[] ver, long expirationTime) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K> boolean remove(@Nullable String spaceName, IndexingEntity<K> key) throws IgniteSpiException {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K> void onSwap(@Nullable String spaceName, String swapSpaceName, K key) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public <K, V> void onUnswap(@Nullable String spaceName, K key, V val, byte[] valBytes)
+        throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerMarshaller(IndexingMarshaller marshaller) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void registerSpace(String spaceName) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void rebuildIndexes(@Nullable String spaceName, IndexingTypeDescriptor type) {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStart(@Nullable String gridName) throws IgniteSpiException {
+        // No-op.
+    }
+
+    /** {@inheritDoc} */
+    @Override public void spiStop() throws IgniteSpiException {
+        // No-op.
+    }
+
+    /**
+     * @return No-op SPI usage exception.
+     */
+    private IgniteSpiException spiException() {
+        return new IgniteSpiException("Current grid configuration does not support queries " +
+            "(please configure GridH2IndexingSpi).");
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html b/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html
new file mode 100644
index 0000000..9929a70
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/indexing/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains APIs for indexing SPI.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
index 3e0b225..f2c5682 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheConfiguration.java
@@ -1557,7 +1557,7 @@ public class GridCacheConfiguration {
      * SPI is configured. In majority of the cases default value should be used.
      *
      * @return Name of SPI to use for indexing.
-     * @see org.gridgain.grid.spi.indexing.IndexingSpi
+     * @see org.apache.ignite.spi.indexing.IndexingSpi
      */
     public String getIndexingSpiName() {
         return indexingSpiName;
@@ -1571,7 +1571,7 @@ public class GridCacheConfiguration {
      * SPI is configured. In majority of the cases default value should be used.
      *
      * @param indexingSpiName Name.
-     * @see org.gridgain.grid.spi.indexing.IndexingSpi
+     * @see org.apache.ignite.spi.indexing.IndexingSpi
      */
     public void setIndexingSpiName(String indexingSpiName) {
         this.indexingSpiName = indexingSpiName;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 999a66f..12b2deb 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -23,6 +23,7 @@ import org.apache.ignite.mbean.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.authentication.*;
 import org.apache.ignite.spi.authentication.noop.*;
+import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.streamer.*;
 import org.apache.ignite.thread.*;
 import org.gridgain.grid.*;
@@ -47,7 +48,6 @@ import org.apache.ignite.spi.eventstorage.*;
 import org.apache.ignite.spi.eventstorage.memory.*;
 import org.apache.ignite.spi.failover.*;
 import org.apache.ignite.spi.failover.always.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.spi.loadbalancing.*;
 import org.gridgain.grid.spi.loadbalancing.roundrobin.*;
 import org.gridgain.grid.spi.securesession.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
index 8599c68..3cbeea1 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/indexing/GridIndexingManager.java
@@ -13,13 +13,13 @@ import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.portables.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.lang.*;
@@ -36,7 +36,7 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
-import static org.gridgain.grid.spi.indexing.IndexType.*;
+import static org.apache.ignite.spi.indexing.IndexType.*;
 
 /**
  * Manages cache indexing.
@@ -1480,8 +1480,8 @@ public class GridIndexingManager extends GridManagerAdapter<IndexingSpi> {
         }
 
         /** {@inheritDoc} */
-        @Override public Map<String, org.gridgain.grid.spi.indexing.IndexDescriptor> indexes() {
-            return Collections.<String, org.gridgain.grid.spi.indexing.IndexDescriptor>unmodifiableMap(indexes);
+        @Override public Map<String, org.apache.ignite.spi.indexing.IndexDescriptor> indexes() {
+            return Collections.<String, org.apache.ignite.spi.indexing.IndexDescriptor>unmodifiableMap(indexes);
         }
 
         /**
@@ -1606,7 +1606,7 @@ public class GridIndexingManager extends GridManagerAdapter<IndexingSpi> {
     /**
      * Index descriptor.
      */
-    private static class IndexDescriptor implements org.gridgain.grid.spi.indexing.IndexDescriptor {
+    private static class IndexDescriptor implements org.apache.ignite.spi.indexing.IndexDescriptor {
         /** Fields sorted by order number. */
         private final Collection<T2<String, Integer>> fields = new TreeSet<>(
             new Comparator<T2<String, Integer>>() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
index 4472798..67d8393 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedFieldsQueryFuture.java
@@ -11,8 +11,8 @@ package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
index 45f9efe..ebbfa6c 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheDistributedQueryManager.java
@@ -12,11 +12,11 @@ package org.gridgain.grid.kernal.processors.cache.query;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
index e1cc799..9834ff8 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheFieldsQueryErrorFuture.java
@@ -10,8 +10,8 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
index 475305f..cc8ed19 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalFieldsQueryFuture.java
@@ -10,8 +10,8 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.future.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
index ec3abac..85cab07 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheLocalQueryManager.java
@@ -10,9 +10,9 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.cluster.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.query.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
index 08e9556..d221c47 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryManager.java
@@ -15,6 +15,7 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
@@ -25,7 +26,6 @@ import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.datastructures.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.task.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
index 030aee0..2507369 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryMetadataAware.java
@@ -10,7 +10,7 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.lang.*;
-import org.gridgain.grid.spi.indexing.*;
+import org.apache.ignite.spi.indexing.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
index 377af43..0564d2a 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryResponse.java
@@ -10,10 +10,10 @@
 package org.gridgain.grid.kernal.processors.cache.query;
 
 import org.apache.ignite.spi.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
index 4797878..cd47b0d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheSqlMetadata.java
@@ -34,7 +34,7 @@ public interface GridCacheSqlMetadata extends Externalizable {
      * <p>
      * By default, type name is equal to simple class name
      * of stored object, but it can depend on implementation
-     * of {@link org.gridgain.grid.spi.indexing.IndexingSpi}.
+     * of {@link org.apache.ignite.spi.indexing.IndexingSpi}.
      *
      * @return Collection of available types.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
index 7ce674d..ccfadec 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/jdbc/GridCacheQueryJdbcTask.java
@@ -16,12 +16,12 @@ import org.apache.ignite.marshaller.*;
 import org.apache.ignite.marshaller.jdk.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.resources.*;
+import org.apache.ignite.spi.indexing.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.spi.indexing.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
index 6b9d546..87ce34b 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/query/VisorQueryTask.java
@@ -19,7 +19,7 @@ import org.gridgain.grid.kernal.processors.task.GridInternal;
 import org.gridgain.grid.kernal.processors.timeout.GridTimeoutObjectAdapter;
 import org.gridgain.grid.kernal.visor.*;
 import org.apache.ignite.lang.IgniteBiTuple;
-import org.gridgain.grid.spi.indexing.IndexingFieldMetadata;
+import org.apache.ignite.spi.indexing.IndexingFieldMetadata;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
deleted file mode 100644
index 7fecd56..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexDescriptor.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.util.*;
-
-/**
- * Describes an index to be created for a certain type. It contains all necessary
- * information about fields, order, uniqueness, and specified
- * whether this is SQL or Text index.
- * See also {@link IndexingTypeDescriptor#indexes()}.
- */
-public interface IndexDescriptor {
-    /**
-     * Gets all fields to be indexed.
-     *
-     * @return Fields to be indexed.
-     */
-    public Collection<String> fields();
-
-    /**
-     * Specifies order of the index for each indexed field.
-     *
-     * @param field Field name.
-     * @return {@code True} if given field should be indexed in descending order.
-     */
-    public boolean descending(String field);
-
-    /**
-     * Gets index type.
-     *
-     * @return Type.
-     */
-    public IndexType type();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
deleted file mode 100644
index f7f0ea2..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexType.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-/**
- * Index types.
- */
-public enum IndexType {
-    /** Sorted SQL index. */
-    SORTED,
-
-    /** Spatial SQL index. */
-    GEO_SPATIAL,
-
-    /** Fulltext index. */
-    FULLTEXT
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
deleted file mode 100644
index 556d4f0..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntity.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Wrapper around indexed key or value which also may contain the value in
- * unmarshalled form. It exists to avoid unnecessary unmarshalling whenever
- * it is not needed.
- * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter[])}.
- */
-public interface IndexingEntity<T> {
-    /**
-     * Gets indexed value. This method may return {@code null} only
-     * if actual value is {@code null}. Otherwise, it will unmarshal
-     * the {@link #bytes()} and return the actual value.
-     *
-     * @return Indexed value.
-     * @throws org.apache.ignite.spi.IgniteSpiException If value de-serialization failed.
-     */
-    @Nullable public T value() throws IgniteSpiException;
-
-    /**
-     * Optional bytes for marshaled indexed value. Certain SPI implementations
-     * may keep objects in unmarshalled form and therefore will not provide
-     * marshaled bytes for them.
-     *
-     * @return Optional marshaled value.
-     */
-    @Nullable public byte[] bytes();
-
-    /**
-     * Flag indicating whether this entity contains unmarshalled value.
-     *
-     * @return {@code True} if entity contains unmarshalled value, {@code false}
-     *      otherwise.
-     */
-    public boolean hasValue();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
deleted file mode 100644
index 1effa99..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingEntityAdapter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Convenience adapter for {@link IndexingEntity}.
- */
-public class IndexingEntityAdapter<T> implements IndexingEntity<T> {
-    /** */
-    @GridToStringInclude
-    private final T val;
-
-    /** */
-    @GridToStringExclude
-    private final byte[] bytes;
-
-    /**
-     * @param val Value.
-     * @param bytes Value marshalled by {@link org.apache.ignite.marshaller.IgniteMarshaller}.
-     */
-    public IndexingEntityAdapter(T val, @Nullable byte[] bytes) {
-        this.val = val;
-        this.bytes = bytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public T value() {
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] bytes() {
-        return bytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasValue() {
-        return val != null || (val == null && bytes == null);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(IndexingEntityAdapter.class, this,
-            "bytesLength", (bytes == null ? 0 : bytes.length));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
deleted file mode 100644
index f530b20..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldMetadata.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.io.*;
-
-/**
- * Query field descriptor. This descriptor is used to provide metadata
- * about fields returned in query result.
- */
-public interface IndexingFieldMetadata extends Externalizable {
-    /**
-     * Gets schema name.
-     *
-     * @return Schema name.
-     */
-    public String schemaName();
-
-    /**
-     * Gets name of type to which this field belongs.
-     *
-     * @return Gets type name.
-     */
-    public String typeName();
-
-    /**
-     * Gets field name.
-     *
-     * @return Field name.
-     */
-    public String fieldName();
-
-    /**
-     * Gets field type name.
-     *
-     * @return Field type name.
-     */
-    public String fieldTypeName();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
deleted file mode 100644
index ede3278..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResult.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-
-import java.util.*;
-
-/**
- * Field query result. It is composed of
- * fields metadata and iterator over queried fields.
- * See also {@link IndexingSpi#queryFields(String, String, Collection, IndexingQueryFilter)}.
- */
-public interface IndexingFieldsResult {
-    /**
-     * Gets metadata for queried fields.
-     *
-     * @return Meta data for queried fields.
-     */
-    List<IndexingFieldMetadata> metaData();
-
-    /**
-     * Gets iterator over queried fields.
-     *
-     * @return Iterator over queried fields.
-     */
-    IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
deleted file mode 100644
index 348f344..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingFieldsResultAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Convenience adapter for {@link IndexingFieldsResult}.
- */
-public class IndexingFieldsResultAdapter implements IndexingFieldsResult {
-    /** Meta data. */
-    private final List<IndexingFieldMetadata> metaData;
-
-    /** Result iterator. */
-    private final IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it;
-
-    /**
-     * Creates query field result composed of field metadata and iterator
-     * over queried fields.
-     *
-     * @param metaData Meta data.
-     * @param it Result iterator.
-     */
-    public IndexingFieldsResultAdapter(@Nullable List<IndexingFieldMetadata> metaData,
-                                       IgniteSpiCloseableIterator<List<IndexingEntity<?>>> it) {
-        this.metaData = metaData != null ? Collections.unmodifiableList(metaData) : null;
-        this.it = it;
-    }
-
-    /** {@inheritDoc} */
-    @Override public List<IndexingFieldMetadata> metaData() {
-        return metaData;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteSpiCloseableIterator<List<IndexingEntity<?>>> iterator() {
-        return it;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
deleted file mode 100644
index 841130e..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRow.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import java.util.*;
-
-/**
- * This class represents a single row returned by key-value query. For example, it is returned
- * by query such as {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}
- * method. Key-value queries are different from fields query in a way that they
- * return the whole cached value, not its individual fields.
- * See also {@link IndexingSpi#query(String, String, Collection, IndexingTypeDescriptor, IndexingQueryFilter[])}.
- */
-public interface IndexingKeyValueRow<K, V> {
-    /**
-     * Gets cache key.
-     *
-     * @return Cache key.
-     */
-    public IndexingEntity<K> key();
-
-    /**
-     * Gets cache value.
-     *
-     * @return Cache value.
-     */
-    public IndexingEntity<V> value();
-
-    /**
-     * Gets version of cache value.
-     *
-     * @return Version of cache value.
-     */
-    public byte[] version();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
deleted file mode 100644
index 8b95aa3..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingKeyValueRowAdapter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
-*  __  ____/___________(_)______  /__  ____/______ ____(_)_______
-*  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
-*  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
-*  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
-*/
-
-package org.gridgain.grid.spi.indexing;
-
-import org.gridgain.grid.kernal.processors.cache.query.*;
-import org.gridgain.grid.util.typedef.internal.*;
-import org.gridgain.grid.util.tostring.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Convenience adapter for {@link IndexingKeyValueRow}.
- */
-public class IndexingKeyValueRowAdapter<K, V> implements IndexingKeyValueRow<K, V> {
-    /** Key. */
-    @GridToStringInclude
-    private IndexingEntity<K> key;
-
-    /** Value. */
-    @GridToStringInclude
-    private IndexingEntity<V> val;
-
-    /** Version. */
-    @GridToStringInclude
-    private byte[] ver;
-
-    /**
-     * Constructor.
-     *
-     * @param key Key.
-     * @param val Value.
-     */
-    public IndexingKeyValueRowAdapter(K key, V val) {
-        assert key != null;
-        assert val != null;
-
-        this.key = new IndexingEntityAdapter<>(key, null);
-        this.val = new IndexingEntityAdapter<>(val, null);
-    }
-
-    /**
-     * Constructs query index row.
-     *
-     * @param key Key.
-     * @param val Value.
-     * @param ver Version. It is {@code null} in case of {@link GridCacheQueryType#SCAN} query.
-     */
-    public IndexingKeyValueRowAdapter(IndexingEntity<K> key, @Nullable IndexingEntity<V> val,
-                                      @Nullable byte[] ver) {
-        assert key != null;
-
-        this.key = key;
-        this.val = val;
-        this.ver = ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IndexingEntity<K> key() {
-        return key;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IndexingEntity<V> value() {
-        return val;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] version() {
-        return ver;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(IndexingKeyValueRowAdapter.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
deleted file mode 100644
index 403b871..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingMarshaller.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.spi.*;
-
-/**
- * Marshaller to be used in indexing SPI. This marshaller automatically
- * takes care of class loading of unmarshalled classes.
- * See also {@link IndexingSpi#registerMarshaller(IndexingMarshaller)}.
- */
-public interface IndexingMarshaller {
-    /**
-     * Unmarshalls bytes to object.
-     *
-     * @param bytes Bytes.
-     * @param <T> Value type.
-     * @return Value.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public <T> IndexingEntity<T> unmarshal(byte[] bytes) throws IgniteSpiException;
-
-    /**
-     * Marshals object to bytes.
-     *
-     * @param entity Entity.
-     * @return Bytes.
-     * @throws org.apache.ignite.spi.IgniteSpiException If failed.
-     */
-    public byte[] marshal(IndexingEntity<?> entity) throws IgniteSpiException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12837f35/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java b/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
deleted file mode 100644
index 4424734..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/spi/indexing/IndexingQueryFilter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* @java.file.header */
-
-/*  _________        _____ __________________        _____
- *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
- *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
- *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
- *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
- */
-
-package org.gridgain.grid.spi.indexing;
-
-import org.apache.ignite.lang.*;
-import org.gridgain.grid.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Space name and key filter.
- */
-public interface IndexingQueryFilter {
-    /**
-     * Creates optional predicate for space.
-     *
-     * @param spaceName Space name.
-     * @return Predicate or {@code null} if no filtering is needed.
-     */
-    @Nullable public <K, V> IgniteBiPredicate<K, V> forSpace(String spaceName) throws GridException;
-}