Repository: ignite
Updated Branches:
  refs/heads/ignite-4565-ddl 2905fd139 -> 7df5bedbf


The very first simple test is created.


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

Branch: refs/heads/ignite-4565-ddl
Commit: 7df5bedbfe8c94edceeb7bc22b0e502f020c541c
Parents: 2905fd1
Author: devozerov <[email protected]>
Authored: Tue Mar 21 15:02:31 2017 +0300
Committer: devozerov <[email protected]>
Committed: Tue Mar 21 15:02:31 2017 +0300

----------------------------------------------------------------------
 .../communication/GridIoMessageFactory.java     |   2 +-
 .../query/ddl/IndexOperationStatusMessage.java  |   2 +-
 .../cache/index/DynamicIndexSelfTest.java       | 121 +++++++++++++++++++
 3 files changed, 123 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7df5bedb/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
index b71b8c0..ddb486f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
@@ -863,7 +863,7 @@ public class GridIoMessageFactory implements MessageFactory 
{
 
                 break;
 
-            case -48:
+            case -49:
                 msg = new IndexOperationStatusMessage();
 
                 break;

http://git-wip-us.apache.org/repos/asf/ignite/blob/7df5bedb/modules/core/src/main/java/org/apache/ignite/internal/processors/query/ddl/IndexOperationStatusMessage.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/ddl/IndexOperationStatusMessage.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/ddl/IndexOperationStatusMessage.java
index bfec530..fb160ff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/ddl/IndexOperationStatusMessage.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/ddl/IndexOperationStatusMessage.java
@@ -129,7 +129,7 @@ public class IndexOperationStatusMessage implements Message 
{
 
     /** {@inheritDoc} */
     @Override public byte directType() {
-        return -48;
+        return -49;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/7df5bedb/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexSelfTest.java
new file mode 100644
index 0000000..1d21781
--- /dev/null
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/index/DynamicIndexSelfTest.java
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.index;
+
+import org.apache.ignite.cache.QueryIndex;
+import org.apache.ignite.cache.query.annotations.QuerySqlField;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import java.util.LinkedHashMap;
+
+/**
+ * Tests for dynamic index creation.
+ */
+public class DynamicIndexSelfTest extends GridCommonAbstractTest {
+    /** Cache. */
+    private static final String CACHE_NAME = "cache";
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+    }
+
+    /**
+     * Test simple index create.
+     *
+     * @throws Exception If failed.
+     */
+    public void testSimpleCreate() throws Exception {
+        IgniteEx node1 = startGrid(0);
+        IgniteEx node2 = startGrid(1);
+
+        node1.getOrCreateCache(cacheConfiguration());
+
+        GridCacheProcessor cacheProc = node1.context().cache();
+
+        LinkedHashMap<String, Boolean> idxFields = new LinkedHashMap<>();
+
+        idxFields.put("str", true);
+
+        QueryIndex idx = new 
QueryIndex().setName("my_idx").setFields(idxFields);
+
+        cacheProc.dynamicIndexCreate(CACHE_NAME, 
ValueClass.class.getSimpleName(), idx, false).get();
+    }
+
+    /**
+     * @return Default cache configuration.
+     */
+    private CacheConfiguration cacheConfiguration() {
+        return new CacheConfiguration<KeyClass, ValueClass>()
+            .setName(CACHE_NAME)
+            .setIndexedTypes(KeyClass.class, ValueClass.class);
+    }
+
+    /**
+     * Key class.
+     */
+    private static class KeyClass {
+        /** ID. */
+        @QuerySqlField
+        private long id;
+
+        /**
+         * Constructor.
+         *
+         * @param id ID.
+         */
+        public KeyClass(long id) {
+            this.id = id;
+        }
+
+        /**
+         * @return ID.
+         */
+        public long id() {
+            return id;
+        }
+    }
+
+    /**
+     * Key class.
+     */
+    private static class ValueClass {
+        /** String value. */
+        @QuerySqlField
+        private String str;
+
+        /**
+         * Constructor.
+         *
+         * @param str String value.
+         */
+        public ValueClass(String str) {
+            this.str = str;
+        }
+
+        /**
+         * @return String value.
+         */
+        public String stringValue() {
+            return str;
+        }
+    }
+}

Reply via email to