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()));
}
}