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; + } + } +}
