You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2021/03/02 06:43:30 UTC

[ignite] branch master updated: IGNITE-14257 Add copy constructor to ClientCacheConfiguration class - Fixes #8838.

This is an automated email from the ASF dual-hosted git repository.

alexpl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 04f832d  IGNITE-14257 Add copy constructor to ClientCacheConfiguration class - Fixes #8838.
04f832d is described below

commit 04f832de8b936e09f780fb71a2a653086a90809d
Author: Mikhail Petrov <pm...@gmail.com>
AuthorDate: Tue Mar 2 09:27:37 2021 +0300

    IGNITE-14257 Add copy constructor to ClientCacheConfiguration class - Fixes #8838.
    
    Signed-off-by: Aleksey Plekhanov <pl...@gmail.com>
---
 .../ignite/client/ClientCacheConfiguration.java    | 44 ++++++++++++++++++++++
 .../org/apache/ignite/client/FunctionalTest.java   | 32 ++++++++++++++--
 2 files changed, 72 insertions(+), 4 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/client/ClientCacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/client/ClientCacheConfiguration.java
index 8989ee4..73a4197 100644
--- a/modules/core/src/main/java/org/apache/ignite/client/ClientCacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/client/ClientCacheConfiguration.java
@@ -128,6 +128,50 @@ public final class ClientCacheConfiguration implements Serializable {
     /** @serial Expiry policy. */
     private ExpiryPolicy expiryPlc;
 
+    /** Default constructor. */
+    public ClientCacheConfiguration() {
+        // No-op.
+    }
+
+    /**
+     * Creates client cache configuration by coping all configuration properties from the given one.
+     *
+     * @param ccfg Client cache configuration to copy from.
+     */
+    public ClientCacheConfiguration(ClientCacheConfiguration ccfg) {
+        atomicityMode = ccfg.getAtomicityMode();
+        backups = ccfg.getBackups();
+        cacheMode = ccfg.getCacheMode();
+        cpOnRead = ccfg.isCopyOnRead();
+        dataRegionName = ccfg.getDataRegionName();
+        dfltLockTimeout = ccfg.getDefaultLockTimeout();
+        eagerTtl = ccfg.isEagerTtl();
+        expiryPlc = ccfg.getExpiryPolicy();
+        grpName = ccfg.getGroupName();
+        keyCfg = ccfg.getKeyConfiguration();
+        maxConcurrentAsyncOperations = ccfg.getMaxConcurrentAsyncOperations();
+        maxQryIteratorsCnt = ccfg.getMaxQueryIteratorsCount();
+        name = ccfg.getName();
+        onheapCacheEnabled = ccfg.isOnheapCacheEnabled();
+        partLossPlc = ccfg.getPartitionLossPolicy();
+        qryDetailMetricsSize = ccfg.getQueryDetailMetricsSize();
+        qryEntities = ccfg.getQueryEntities();
+        qryParallelism = ccfg.getQueryParallelism();
+        readFromBackup = ccfg.isReadFromBackup();
+        rebalanceBatchSize = ccfg.getRebalanceBatchSize();
+        rebalanceBatchesPrefetchCnt = ccfg.getRebalanceBatchesPrefetchCount();
+        rebalanceDelay = ccfg.getRebalanceDelay();
+        rebalanceMode = ccfg.getRebalanceMode();
+        rebalanceOrder = ccfg.getRebalanceOrder();
+        rebalanceThrottle = ccfg.getRebalanceThrottle();
+        rebalanceTimeout = ccfg.getRebalanceTimeout();
+        sqlEscapeAll = ccfg.isSqlEscapeAll();
+        sqlIdxMaxInlineSize = ccfg.getSqlIndexMaxInlineSize();
+        sqlSchema = ccfg.getSqlSchema();
+        statisticsEnabled = ccfg.isStatisticsEnabled();
+        writeSynchronizationMode = ccfg.getWriteSynchronizationMode();
+    }
+
     /**
      * @return Cache name.
      */
diff --git a/modules/core/src/test/java/org/apache/ignite/client/FunctionalTest.java b/modules/core/src/test/java/org/apache/ignite/client/FunctionalTest.java
index d35df46..8a07ebd 100644
--- a/modules/core/src/test/java/org/apache/ignite/client/FunctionalTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/client/FunctionalTest.java
@@ -57,7 +57,11 @@ import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cache.PartitionLossPolicy;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.QueryIndex;
+import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.ClientConfiguration;
+import org.apache.ignite.configuration.DataRegionConfiguration;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.client.thin.ClientServerError;
@@ -176,12 +180,19 @@ public class FunctionalTest {
      */
     @Test
     public void testCacheConfiguration() throws Exception {
-        try (Ignite ignored = Ignition.start(Config.getServerConfiguration());
+        final String dataRegionName = "functional-test-data-region";
+
+        IgniteConfiguration cfg = Config.getServerConfiguration()
+            .setDataStorageConfiguration(new DataStorageConfiguration()
+                .setDefaultDataRegionConfiguration(new DataRegionConfiguration()
+                    .setName(dataRegionName)));
+
+        try (Ignite ignored = Ignition.start(cfg);
              IgniteClient client = Ignition.startClient(getClientConfiguration())
         ) {
             final String CACHE_NAME = "testCacheConfiguration";
 
-            ClientCacheConfiguration cacheCfg = new ClientCacheConfiguration().setName(CACHE_NAME)
+            ClientCacheConfiguration cacheCfgTemplate = new ClientCacheConfiguration().setName(CACHE_NAME)
                 .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
                 .setBackups(3)
                 .setCacheMode(CacheMode.PARTITIONED)
@@ -218,13 +229,26 @@ public class FunctionalTest {
                     .setIndexes(Collections.singletonList(new QueryIndex("id", true, "IDX_EMPLOYEE_ID")))
                     .setAliases(Stream.of("id", "orgId").collect(Collectors.toMap(f -> f, String::toUpperCase)))
                 )
-                .setExpiryPolicy(new PlatformExpiryPolicy(10, 20, 30));
+                .setExpiryPolicy(new PlatformExpiryPolicy(10, 20, 30))
+                .setCopyOnRead(!CacheConfiguration.DFLT_COPY_ON_READ)
+                .setDataRegionName(dataRegionName)
+                .setMaxConcurrentAsyncOperations(4)
+                .setMaxQueryIteratorsCount(4)
+                .setOnheapCacheEnabled(true)
+                .setQueryDetailMetricsSize(1024)
+                .setQueryParallelism(4)
+                .setSqlEscapeAll(true)
+                .setSqlIndexMaxInlineSize(1024)
+                .setSqlSchema("functional-test-schema")
+                .setStatisticsEnabled(true);
+
+            ClientCacheConfiguration cacheCfg = new ClientCacheConfiguration(cacheCfgTemplate);
 
             ClientCache<Object, Object> cache = client.createCache(cacheCfg);
 
             assertEquals(CACHE_NAME, cache.getName());
 
-            assertTrue(Comparers.equal(cacheCfg, cache.getConfiguration()));
+            assertTrue(Comparers.equal(cacheCfgTemplate, cache.getConfiguration()));
         }
     }