diff --git a/assembly/dependencies-apache-ignite-lgpl.xml b/assembly/dependencies-apache-ignite-lgpl.xml
index ac3d35c972a66..6a12956482793 100644
--- a/assembly/dependencies-apache-ignite-lgpl.xml
+++ b/assembly/dependencies-apache-ignite-lgpl.xml
@@ -119,6 +119,7 @@
${project.groupId}:ignite-binary-api
${project.groupId}:ignite-binary-impl
${project.groupId}:ignite-thin-client-api
+ ${project.groupId}:ignite-thin-client-impl
${project.groupId}:ignite-clients
${project.groupId}:ignite-spring
${project.groupId}:ignite-tools
diff --git a/assembly/dependencies-apache-ignite-slim.xml b/assembly/dependencies-apache-ignite-slim.xml
index f113444139b1a..537d5c55beae4 100644
--- a/assembly/dependencies-apache-ignite-slim.xml
+++ b/assembly/dependencies-apache-ignite-slim.xml
@@ -119,6 +119,7 @@
${project.groupId}:ignite-binary-api
${project.groupId}:ignite-binary-impl
${project.groupId}:ignite-thin-client-api
+ ${project.groupId}:ignite-thin-client-impl
${project.groupId}:ignite-clients
${project.groupId}:ignite-spring
${project.groupId}:ignite-tools
diff --git a/assembly/dependencies-apache-ignite.xml b/assembly/dependencies-apache-ignite.xml
index 5952320cba9b2..208fbe8eda207 100644
--- a/assembly/dependencies-apache-ignite.xml
+++ b/assembly/dependencies-apache-ignite.xml
@@ -120,6 +120,7 @@
${project.groupId}:ignite-binary-api
${project.groupId}:ignite-binary-impl
${project.groupId}:ignite-thin-client-api
+ ${project.groupId}:ignite-thin-client-impl
${project.groupId}:ignite-clients
${project.groupId}:ignite-spring
${project.groupId}:ignite-tools
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/ClassSet.java b/modules/binary/api/src/main/java/org/apache/ignite/internal/ClassSet.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/ClassSet.java
rename to modules/binary/api/src/main/java/org/apache/ignite/internal/ClassSet.java
diff --git a/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index 92740e7966227..47cc6bb29bf79 100644
--- a/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ b/modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -27,6 +27,7 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Array;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -62,13 +63,21 @@
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteCommonsSystemProperties;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.IgniteLogger;
import org.apache.ignite.binary.BinaryCollectionFactory;
+import org.apache.ignite.binary.BinaryIdMapper;
import org.apache.ignite.binary.BinaryInvalidTypeException;
import org.apache.ignite.binary.BinaryMapFactory;
+import org.apache.ignite.binary.BinaryNameMapper;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectException;
+import org.apache.ignite.binary.BinarySerializer;
import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.binary.BinaryTypeConfiguration;
import org.apache.ignite.binary.Binarylizable;
+import org.apache.ignite.cache.CacheKeyConfiguration;
+import org.apache.ignite.cache.affinity.AffinityKeyMapped;
+import org.apache.ignite.configuration.BinaryConfiguration;
import org.apache.ignite.internal.binary.streams.BinaryInputStream;
import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
import org.apache.ignite.internal.util.CommonUtils;
@@ -176,6 +185,10 @@ TreeSet.class, new BinaryTreeSetWriteReplacer()
/** FNV1 hash prime. */
private static final int FNV1_PRIME = 0x01000193;
+ /** For tests. */
+ @SuppressWarnings("PublicField")
+ public static boolean useTestBinaryCtx;
+
/** */
public static final BinariesFactory binariesFactory;
@@ -3067,6 +3080,169 @@ public static int hashCode(byte[] data, int startPos, int endPos) {
return hash;
}
+ /** @return Empty binary context instance. */
+ public static BinaryContext binaryContext(
+ BinaryMetadataHandler metaHnd,
+ BinaryMarshaller marsh,
+ BinaryConfiguration bcfg,
+ String igniteInstanceName,
+ ClassLoader clsLdr,
+ CacheKeyConfiguration[] cacheKeyCfgs,
+ IgniteLogger log
+ ) {
+ return useTestBinaryCtx
+ ? new TestBinaryContext(
+ metaHnd,
+ marsh,
+ igniteInstanceName,
+ clsLdr,
+ bcfg.getSerializer(),
+ bcfg.getIdMapper(),
+ bcfg.getNameMapper(),
+ bcfg.getTypeConfigurations(),
+ affinityFields(cacheKeyCfgs),
+ bcfg.isCompactFooter(),
+ BinaryUtils::affinityFieldName,
+ log
+ )
+ : new BinaryContext(
+ metaHnd,
+ marsh,
+ igniteInstanceName,
+ clsLdr,
+ bcfg.getSerializer(),
+ bcfg.getIdMapper(),
+ bcfg.getNameMapper(),
+ bcfg.getTypeConfigurations(),
+ affinityFields(cacheKeyCfgs),
+ bcfg.isCompactFooter(),
+ BinaryUtils::affinityFieldName,
+ log
+ );
+ }
+
+ /**
+ * @param keyCfgs Key configurations.
+ * @return Type name to affinity key field name mapping.
+ */
+ public static Map affinityFields(CacheKeyConfiguration[] keyCfgs) {
+ Map affFields = new HashMap<>();
+
+ if (F.isEmpty(keyCfgs))
+ return affFields;
+
+ for (CacheKeyConfiguration keyCfg : keyCfgs)
+ affFields.put(keyCfg.getTypeName(), keyCfg.getAffinityKeyFieldName());
+
+ return affFields;
+ }
+
+ /**
+ * @param cls Class to get affinity field for.
+ * @return Affinity field name or {@code null} if field name was not found.
+ */
+ public static String affinityFieldName(Class cls) {
+ for (; cls != Object.class && cls != null; cls = cls.getSuperclass()) {
+ for (Field f : cls.getDeclaredFields()) {
+ if (f.getAnnotation(AffinityKeyMapped.class) != null)
+ return f.getName();
+ }
+ }
+
+ return null;
+ }
+
+ /** */
+ @SuppressWarnings("PublicInnerClass")
+ public static class TestBinaryContext extends BinaryContext {
+ /** */
+ private List listeners;
+
+ /** */
+ public TestBinaryContext(
+ BinaryMetadataHandler metaHnd,
+ @Nullable BinaryMarshaller marsh,
+ @Nullable String igniteInstanceName,
+ @Nullable ClassLoader clsLdr,
+ @Nullable BinarySerializer dfltSerializer,
+ @Nullable BinaryIdMapper idMapper,
+ @Nullable BinaryNameMapper nameMapper,
+ @Nullable Collection typeCfgs,
+ Map affFlds,
+ boolean compactFooter,
+ Function, String> affFldNameProvider,
+ IgniteLogger log
+ ) {
+ super(
+ metaHnd,
+ marsh,
+ igniteInstanceName,
+ clsLdr,
+ dfltSerializer,
+ idMapper,
+ nameMapper,
+ typeCfgs,
+ affFlds,
+ compactFooter,
+ affFldNameProvider,
+ log
+ );
+ }
+
+
+ /** {@inheritDoc} */
+ @Nullable @Override public BinaryType metadata(int typeId) throws BinaryObjectException {
+ BinaryType metadata = super.metadata(typeId);
+
+ if (listeners != null) {
+ for (TestBinaryContextListener listener : listeners)
+ listener.onAfterMetadataRequest(typeId, metadata);
+ }
+
+ return metadata;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void updateMetadata(int typeId, BinaryMetadata meta, boolean failIfUnregistered) throws BinaryObjectException {
+ if (listeners != null) {
+ for (TestBinaryContextListener listener : listeners)
+ listener.onBeforeMetadataUpdate(typeId, meta);
+ }
+
+ super.updateMetadata(typeId, meta, failIfUnregistered);
+ }
+
+ /** */
+ public interface TestBinaryContextListener {
+ /**
+ * @param typeId Type id.
+ * @param type Type.
+ */
+ void onAfterMetadataRequest(int typeId, BinaryType type);
+
+ /**
+ * @param typeId Type id.
+ * @param metadata Metadata.
+ */
+ void onBeforeMetadataUpdate(int typeId, BinaryMetadata metadata);
+ }
+
+ /** @param lsnr Listener. */
+ public void addListener(TestBinaryContextListener lsnr) {
+ if (listeners == null)
+ listeners = new ArrayList<>();
+
+ if (!listeners.contains(lsnr))
+ listeners.add(lsnr);
+ }
+
+ /** */
+ public void clearAllListener() {
+ if (listeners != null)
+ listeners.clear();
+ }
+ }
+
/**
* Enum type.
*/
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/IgniteMarshallerClassFilter.java b/modules/binary/api/src/main/java/org/apache/ignite/marshaller/IgniteMarshallerClassFilter.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/marshaller/IgniteMarshallerClassFilter.java
rename to modules/binary/api/src/main/java/org/apache/ignite/marshaller/IgniteMarshallerClassFilter.java
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/IgniteObjectInputFilter.java b/modules/binary/api/src/main/java/org/apache/ignite/marshaller/IgniteObjectInputFilter.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/marshaller/IgniteObjectInputFilter.java
rename to modules/binary/api/src/main/java/org/apache/ignite/marshaller/IgniteObjectInputFilter.java
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java b/modules/binary/api/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
similarity index 94%
rename from modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
rename to modules/binary/api/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
index 4d474aa826a46..1a237d23bb5f4 100644
--- a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
+++ b/modules/binary/api/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java
@@ -31,14 +31,13 @@
import java.util.Objects;
import java.util.function.Consumer;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteCommonsSystemProperties;
import org.apache.ignite.IgniteException;
-import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.internal.ClassSet;
import org.apache.ignite.plugin.PluginProvider;
import org.jetbrains.annotations.Nullable;
-import static org.apache.ignite.IgniteSystemProperties.IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION;
-import static org.apache.ignite.IgniteSystemProperties.IGNITE_MARSHALLER_BLACKLIST;
+import static org.apache.ignite.IgniteCommonsSystemProperties.IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION;
/**
* Utility marshaller methods.
@@ -81,7 +80,7 @@ public static IgniteMarshallerClassFilter classNameFilter(ClassLoader clsLdr) th
* @throws IgniteCheckedException if autoconfiguration failed.
*/
public static void autoconfigureObjectInputFilter(IgniteMarshallerClassFilter clsFilter) throws IgniteCheckedException {
- if (!IgniteSystemProperties.getBoolean(IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION, true))
+ if (!IgniteCommonsSystemProperties.getBoolean(IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION, true))
return;
synchronized (MUX) {
@@ -116,7 +115,7 @@ else if (objFilter instanceof IgniteObjectInputFilter) {
private static ClassSet classWhiteList(ClassLoader clsLdr) throws IgniteCheckedException {
ClassSet clsSet = null;
- String fileName = IgniteSystemProperties.getString(IgniteSystemProperties.IGNITE_MARSHALLER_WHITELIST);
+ String fileName = IgniteCommonsSystemProperties.getString(IgniteCommonsSystemProperties.IGNITE_MARSHALLER_WHITELIST);
if (fileName != null) {
clsSet = new ClassSet();
@@ -139,7 +138,7 @@ private static ClassSet classBlackList(ClassLoader clsLdr) throws IgniteCheckedE
addClassNames(DEFAULT_BLACKLIST_CLS_NAMES_FILE, clsSet, clsLdr);
- String blackListFileName = IgniteSystemProperties.getString(IGNITE_MARSHALLER_BLACKLIST);
+ String blackListFileName = IgniteCommonsSystemProperties.getString(IgniteCommonsSystemProperties.IGNITE_MARSHALLER_BLACKLIST);
if (blackListFileName != null)
addClassNames(blackListFileName, clsSet, clsLdr);
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/package-info.java b/modules/binary/api/src/main/java/org/apache/ignite/marshaller/package-info.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/marshaller/package-info.java
rename to modules/binary/api/src/main/java/org/apache/ignite/marshaller/package-info.java
diff --git a/modules/bom/pom.xml b/modules/bom/pom.xml
index e14c89f779b55..865b97ca23582 100644
--- a/modules/bom/pom.xml
+++ b/modules/bom/pom.xml
@@ -186,6 +186,11 @@
ignite-thin-client-api
${revision}
+
+ ${project.groupId}
+ ignite-thin-client-impl
+ ${revision}
+
${project.groupId}
ignite-codegen
diff --git a/modules/commons/src/main/java/org/apache/ignite/IgniteCommonsSystemProperties.java b/modules/commons/src/main/java/org/apache/ignite/IgniteCommonsSystemProperties.java
index 6aa8c01e95744..b5ab3a858f365 100644
--- a/modules/commons/src/main/java/org/apache/ignite/IgniteCommonsSystemProperties.java
+++ b/modules/commons/src/main/java/org/apache/ignite/IgniteCommonsSystemProperties.java
@@ -19,12 +19,14 @@
import java.io.Serializable;
import org.apache.ignite.internal.util.GridLogThrottle;
+import org.apache.ignite.lang.IgniteExperimental;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.util.CommonUtils.DFLT_MARSHAL_BUFFERS_PER_THREAD_POOL_SIZE;
import static org.apache.ignite.internal.util.CommonUtils.DFLT_MARSHAL_BUFFERS_RECHECK;
import static org.apache.ignite.internal.util.CommonUtils.DFLT_MEMORY_PER_BYTE_COPY_THRESHOLD;
import static org.apache.ignite.internal.util.GridLogThrottle.DFLT_LOG_THROTTLE_CAPACITY;
+import static org.apache.ignite.internal.util.nio.GridNioRecoveryDescriptor.DFLT_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT;
import static org.apache.ignite.internal.util.tostring.GridToStringBuilder.DFLT_TO_STRING_COLLECTION_LIMIT;
import static org.apache.ignite.internal.util.tostring.GridToStringBuilder.DFLT_TO_STRING_INCLUDE_SENSITIVE;
import static org.apache.ignite.internal.util.tostring.GridToStringBuilder.DFLT_TO_STRING_MAX_LENGTH;
@@ -153,6 +155,45 @@ public class IgniteCommonsSystemProperties {
"memory block is released. This will help to recognize cases when already released memory is accessed")
public static final String IGNITE_OFFHEAP_SAFE_RELEASE = "IGNITE_OFFHEAP_SAFE_RELEASE";
+ /** Human-readable ID of a data center where the node is running. */
+ @IgniteExperimental
+ @SystemProperty(value = "Data Center ID where local node is running. Not required for a single Data Center deployments",
+ type = String.class)
+ public static final String IGNITE_DATA_CENTER_ID = "IGNITE_DATA_CENTER_ID";
+
+ /**
+ * If this parameter is set to true, Ignite will automatically configure an ObjectInputFilter instance for the
+ * current JVM it is running in.
+ * Default value is {@code true}.
+ */
+ @SystemProperty(
+ value = "If this parameter is set to true, Ignite will automatically configure an ObjectInputFilter" +
+ " instance for the current JVM it is running in. Filtering is based on class lists defined by the" +
+ " `IGNITE_MARSHALLER_WHITELIST` and `IGNITE_MARSHALLER_BLACKLIST` system properties or their default values." +
+ " Disabling it is not recommended because the Ignite host may be vulnerable to RCE attacks based on Java" +
+ " serialization mechanisms",
+ defaults = "true"
+ )
+ public static final String IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION = "IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION";
+
+ /** Defines path to the file that contains list of classes allowed to safe deserialization.*/
+ @SystemProperty(value = "Path to the file that contains list of classes allowed to safe deserialization",
+ type = String.class)
+ public static final String IGNITE_MARSHALLER_WHITELIST = "IGNITE_MARSHALLER_WHITELIST";
+
+ /** Defines path to the file that contains list of classes disallowed to safe deserialization.*/
+ @SystemProperty(value = "Path to the file that contains list of classes disallowed to safe deserialization",
+ type = String.class)
+ public static final String IGNITE_MARSHALLER_BLACKLIST = "IGNITE_MARSHALLER_BLACKLIST";
+
+ /**
+ * Sets timeout for TCP client recovery descriptor reservation.
+ */
+ @SystemProperty(value = "Timeout for TCP client recovery descriptor reservation in milliseconds",
+ type = Long.class, defaults = "" + DFLT_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT)
+ public static final String IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT =
+ "IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT";
+
/**
* @param enumCls Enum type.
* @param name Name of the system property or environment variable.
diff --git a/modules/commons/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunctionHelper.java b/modules/commons/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunctionHelper.java
new file mode 100644
index 0000000000000..9d517d46f80ff
--- /dev/null
+++ b/modules/commons/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunctionHelper.java
@@ -0,0 +1,51 @@
+/*
+ * 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.cache.affinity.rendezvous;
+
+import org.apache.ignite.internal.util.CommonUtils;
+
+/** */
+public class RendezvousAffinityFunctionHelper {
+ /**
+ * Helper method to calculates mask.
+ *
+ * @param parts Number of partitions.
+ * @return Mask to use in calculation when partitions count is power of 2.
+ */
+ public static int calculateMask(int parts) {
+ return (parts & (parts - 1)) == 0 ? parts - 1 : -1;
+ }
+
+ /**
+ * Helper method to calculate partition.
+ *
+ * @param key – Key to get partition for.
+ * @param mask Mask to use in calculation when partitions count is power of 2.
+ * @param parts Number of partitions.
+ * @return Partition number for a given key.
+ */
+ public static int calculatePartition(Object key, int mask, int parts) {
+ if (mask >= 0) {
+ int h;
+
+ return ((h = key.hashCode()) ^ (h >>> 16)) & mask;
+ }
+
+ return CommonUtils.safeAbs(key.hashCode() % parts);
+ }
+}
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/CacheEntryEventAdapter.java b/modules/commons/src/main/java/org/apache/ignite/cache/query/CacheEntryEventAdapter.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/cache/query/CacheEntryEventAdapter.java
rename to modules/commons/src/main/java/org/apache/ignite/cache/query/CacheEntryEventAdapter.java
diff --git a/modules/core/src/main/java/org/apache/ignite/failure/FailureType.java b/modules/commons/src/main/java/org/apache/ignite/failure/FailureType.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/failure/FailureType.java
rename to modules/commons/src/main/java/org/apache/ignite/failure/FailureType.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/AffinityTopologyVersion.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/affinity/AffinityTopologyVersion.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/AffinityTopologyVersion.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/affinity/AffinityTopologyVersion.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientConnectionNodeRecoveryException.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/odbc/ClientConnectionNodeRecoveryException.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientConnectionNodeRecoveryException.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/odbc/ClientConnectionNodeRecoveryException.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequest.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequest.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequest.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequest.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/expiry/PlatformExpiryPolicy.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/cache/expiry/PlatformExpiryPolicy.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cache/expiry/PlatformExpiryPolicy.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/cache/expiry/PlatformExpiryPolicy.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientFlag.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientFlag.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientFlag.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientFlag.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientStatus.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientStatus.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientStatus.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientStatus.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/IgniteClientException.java b/modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/client/IgniteClientException.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/IgniteClientException.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/processors/platform/client/IgniteClientException.java
diff --git a/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
index e87513b9b0aae..1e2417fc01453 100644
--- a/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/util/CommonUtils.java
@@ -79,6 +79,7 @@
import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
import org.apache.ignite.internal.IgniteInterruptedCheckedException;
import org.apache.ignite.internal.processors.cache.CacheClassLoaderMarker;
+import org.apache.ignite.internal.util.lang.GridClosureException;
import org.apache.ignite.internal.util.lang.GridTuple;
import org.apache.ignite.internal.util.typedef.C1;
import org.apache.ignite.internal.util.typedef.F;
@@ -241,6 +242,27 @@ public abstract class CommonUtils {
/** Field name for value. */
public static final String VAL_FIELD_NAME = "_VAL";
+ /** Default key / trust store type. */
+ public static final String DFLT_STORE_TYPE = System.getProperty("javax.net.ssl.keyStoreType", "JKS");
+
+ /** Default SSL protocol. */
+ public static final String DFLT_SSL_PROTOCOL = "TLS";
+
+ /** Default key manager / trust manager algorithm. Specifying different trust manager algorithm is not supported. */
+ public static final String DFLT_KEY_ALGORITHM = System.getProperty("ssl.KeyManagerFactory.algorithm", "SunX509");
+
+ /** */
+ public static final String DEFAULT_DS_GROUP_NAME = "default-ds-group";
+
+ /** Atomics system cache name. */
+ public static final String ATOMICS_CACHE_NAME = "ignite-sys-atomic-cache";
+
+ /** Default port. */
+ public static final int DFLT_PORT = 10800;
+
+ /** Default port range. */
+ public static final int DFLT_PORT_RANGE = 100;
+
/** Byte bit-mask. */
private static final int MASK = 0xf;
@@ -1132,6 +1154,21 @@ public static void close(@Nullable URLClassLoader clsLdr, @Nullable IgniteLogger
}
}
+ /**
+ * Quietly closes given resource ignoring possible checked exception.
+ *
+ * @param rsrc Resource to close. If it's {@code null} - it's no-op.
+ */
+ public static void closeQuiet(@Nullable AutoCloseable rsrc) {
+ if (rsrc != null)
+ try {
+ rsrc.close();
+ }
+ catch (Exception ignored) {
+ // No-op.
+ }
+ }
+
/**
* Depending on whether log is provided and quiet mode is enabled logs given
* messages as quiet message or normal log WARN message. If {@code log} is {@code null}
@@ -2325,6 +2362,98 @@ public static int toDigit(char ch, int idx) throws IgniteCheckedException {
return digit;
}
+ /**
+ * Gets absolute value for integer. If integer is {@link Integer#MIN_VALUE}, then {@code 0} is returned.
+ *
+ * @param i Integer.
+ * @return Absolute value.
+ */
+ public static int safeAbs(int i) {
+ i = Math.abs(i);
+
+ return i < 0 ? 0 : i;
+ }
+
+ /**
+ * Gets absolute value for long. If argument is {@link Long#MIN_VALUE}, then {@code 0} is returned.
+ *
+ * @param i Argument.
+ * @return Absolute value.
+ */
+ public static long safeAbs(long i) {
+ i = Math.abs(i);
+
+ return i < 0 ? 0 : i;
+ }
+
+ /**
+ * Casts the passed {@code Throwable t} to {@link IgniteCheckedException}.
+ * If {@code t} is a {@link GridClosureException}, it is unwrapped and then cast to {@link IgniteCheckedException}.
+ * If {@code t} is an {@link IgniteCheckedException}, it is returned.
+ * If {@code t} is not a {@link IgniteCheckedException}, a new {@link IgniteCheckedException} caused by {@code t}
+ * is returned.
+ *
+ * @param t Throwable to cast.
+ * @return {@code t} cast to {@link IgniteCheckedException}.
+ */
+ public static IgniteCheckedException cast(Throwable t) {
+ assert t != null;
+
+ t = unwrap(t);
+
+ return t instanceof IgniteCheckedException
+ ? (IgniteCheckedException)t
+ : new IgniteCheckedException(t);
+ }
+
+ /**
+ * Unwraps closure exceptions.
+ *
+ * @param t Exception.
+ * @return Unwrapped exception.
+ */
+ public static Exception unwrap(Throwable t) {
+ assert t != null;
+
+ while (true) {
+ if (t instanceof Error)
+ throw (Error)t;
+
+ if (t instanceof GridClosureException) {
+ t = ((GridClosureException)t).unwrap();
+
+ continue;
+ }
+
+ return (Exception)t;
+ }
+ }
+
+ /**
+ * Utility method to add the given throwable error to the given throwable root error. If the given
+ * suppressed throwable is an {@code Error}, but the root error is not, will change the root to the {@code Error}.
+ *
+ * @param root Root error to add suppressed error to.
+ * @param err Error to add.
+ * @return New root error.
+ */
+ public static T addSuppressed(T root, T err) {
+ assert err != null;
+
+ if (root == null)
+ return err;
+
+ if (err instanceof Error && !(root instanceof Error)) {
+ err.addSuppressed(root);
+
+ root = err;
+ }
+ else
+ root.addSuppressed(err);
+
+ return root;
+ }
+
/**
* Creates SQL types set.
*
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/HostAndPortRange.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/HostAndPortRange.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/HostAndPortRange.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/HostAndPortRange.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFinishedFuture.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFinishedFuture.java
similarity index 98%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFinishedFuture.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFinishedFuture.java
index 2b42c4bb2f58d..cc6d57dfeb884 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFinishedFuture.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFinishedFuture.java
@@ -21,9 +21,9 @@
import java.util.concurrent.TimeUnit;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.lang.GridClosureException;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteClosure;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.lang.IgniteOutClosure;
@@ -100,7 +100,7 @@ public GridFinishedFuture(Throwable err) {
/** {@inheritDoc} */
@Override public T get() throws IgniteCheckedException {
if (resFlag == ERR)
- throw U.cast((Throwable)res);
+ throw CommonUtils.cast((Throwable)res);
return (T)res;
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFutureAdapter.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFutureAdapter.java
similarity index 98%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFutureAdapter.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFutureAdapter.java
index c932a9c3f8ffc..6f301814f1b01 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFutureAdapter.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFutureAdapter.java
@@ -29,11 +29,11 @@
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.IgniteInterruptedCheckedException;
import org.apache.ignite.internal.thread.context.function.OperationContextAwareInClosure;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.lang.GridClosureException;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteClosure;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.lang.IgniteOutClosure;
@@ -263,7 +263,7 @@ private R resolve() throws IgniteCheckedException {
if (state == null || state.getClass() != ErrorWrapper.class)
return (R)state;
- throw U.cast(((ErrorWrapper)state).error);
+ throw CommonUtils.cast(((ErrorWrapper)state).error);
}
/**
@@ -477,11 +477,11 @@ private void notifyListener(IgniteInClosure super IgniteInternalFuture> lsn
lsnr.apply(this);
}
catch (IllegalStateException e) {
- U.error(logger(), "Failed to notify listener (is grid stopped?) [fut=" + this +
+ CommonUtils.error(logger(), "Failed to notify listener (is grid stopped?) [fut=" + this +
", lsnr=" + lsnr + ", err=" + e.getMessage() + ']', e);
}
catch (RuntimeException | Error e) {
- U.error(logger(), "Failed to notify listener: " + lsnr, e);
+ CommonUtils.error(logger(), "Failed to notify listener: " + lsnr, e);
throw e;
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFutureChainListener.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFutureChainListener.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/future/GridFutureChainListener.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/future/GridFutureChainListener.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/ClusterNodeFunc.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/lang/ClusterNodeFunc.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/lang/ClusterNodeFunc.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/lang/ClusterNodeFunc.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/ContainsNodeIdsPredicate.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/ContainsNodeIdsPredicate.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/ContainsNodeIdsPredicate.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/ContainsNodeIdsPredicate.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/EqualsClusterNodeIdPredicate.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/EqualsClusterNodeIdPredicate.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/EqualsClusterNodeIdPredicate.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/EqualsClusterNodeIdPredicate.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasEqualIdPredicate.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasEqualIdPredicate.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasEqualIdPredicate.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasEqualIdPredicate.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasNotEqualIdPredicate.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasNotEqualIdPredicate.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasNotEqualIdPredicate.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/HasNotEqualIdPredicate.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioParser.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioParser.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioParser.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioParser.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java
similarity index 97%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java
index 1cedb7d800ee4..6cf8bdf74fb76 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java
+++ b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java
@@ -20,9 +20,9 @@
import java.io.IOException;
import java.util.ArrayDeque;
import java.util.Deque;
+import org.apache.ignite.IgniteCommonsSystemProperties;
import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
-import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
@@ -30,18 +30,16 @@
import org.apache.ignite.lang.IgniteInClosure;
import org.jetbrains.annotations.Nullable;
-import static org.apache.ignite.IgniteSystemProperties.IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT;
-
/**
* Recovery information for single node.
*/
public class GridNioRecoveryDescriptor {
- /** @see IgniteSystemProperties#IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT */
+ /** @see IgniteCommonsSystemProperties#IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT */
public static final int DFLT_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT = 5_000;
/** Timeout for outgoing recovery descriptor reservation. */
private static final long DESC_RESERVATION_TIMEOUT = Math.max(1_000,
- IgniteSystemProperties.getLong(IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT,
+ IgniteCommonsSystemProperties.getLong(IgniteCommonsSystemProperties.IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT,
DFLT_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT));
/** Number of acknowledged messages. */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServerListener.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioServerListener.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServerListener.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioServerListener.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/SessionWriteRequest.java b/modules/commons/src/main/java/org/apache/ignite/internal/util/nio/SessionWriteRequest.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/util/nio/SessionWriteRequest.java
rename to modules/commons/src/main/java/org/apache/ignite/internal/util/nio/SessionWriteRequest.java
diff --git a/modules/core/src/main/java/org/apache/ignite/logger/NullLogger.java b/modules/commons/src/main/java/org/apache/ignite/logger/NullLogger.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/logger/NullLogger.java
rename to modules/commons/src/main/java/org/apache/ignite/logger/NullLogger.java
diff --git a/modules/core/src/main/java/org/apache/ignite/platform/PlatformServiceMethod.java b/modules/commons/src/main/java/org/apache/ignite/platform/PlatformServiceMethod.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/platform/PlatformServiceMethod.java
rename to modules/commons/src/main/java/org/apache/ignite/platform/PlatformServiceMethod.java
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityException.java b/modules/commons/src/main/java/org/apache/ignite/plugin/security/SecurityException.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityException.java
rename to modules/commons/src/main/java/org/apache/ignite/plugin/security/SecurityException.java
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 959a706488e3c..46a29ae641120 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -72,7 +72,7 @@
${project.groupId}
ignite-binary-impl
- compile
+ runtime
@@ -81,6 +81,12 @@
compile
+
+ ${project.groupId}
+ ignite-thin-client-impl
+ compile
+
+
${project.groupId}
ignite-codegen
@@ -360,6 +366,7 @@
${project.groupId}:ignite-binary-impl
${project.groupId}:ignite-grid-unsafe
${project.groupId}:ignite-thin-client-api
+ ${project.groupId}:ignite-thin-client-impl
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index b1c36a9015827..7671efe66ef8b 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -41,7 +41,6 @@
import org.apache.ignite.internal.processors.query.schema.SchemaIndexCachePartitionWorker;
import org.apache.ignite.internal.processors.rest.GridRestCommand;
import org.apache.ignite.internal.util.IgniteUtils;
-import org.apache.ignite.lang.IgniteExperimental;
import org.apache.ignite.mxbean.MetricsMxBean;
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
@@ -744,12 +743,6 @@ public final class IgniteSystemProperties extends IgniteCommonsSystemProperties
defaults = "" + DFLT_DISCOVERY_HISTORY_SIZE)
public static final String IGNITE_DISCOVERY_HISTORY_SIZE = "IGNITE_DISCOVERY_HISTORY_SIZE";
- /** Human-readable ID of a data center where the node is running. */
- @IgniteExperimental
- @SystemProperty(value = "Data Center ID where local node is running. Not required for a single Data Center deployments",
- type = String.class)
- public static final String IGNITE_DATA_CENTER_ID = "IGNITE_DATA_CENTER_ID";
-
/** Maximum number of discovery message history used to support client reconnect. */
@SystemProperty(value = "Maximum number of discovery message history used to support client reconnect",
type = Integer.class, defaults = "" + DFLT_DISCOVERY_CLIENT_RECONNECT_HISTORY_SIZE)
@@ -814,31 +807,6 @@ public final class IgniteSystemProperties extends IgniteCommonsSystemProperties
@SystemProperty("Enables local store keeps primary only. Backward compatibility flag")
public static final String IGNITE_LOCAL_STORE_KEEPS_PRIMARY_ONLY = "IGNITE_LOCAL_STORE_KEEPS_PRIMARY_ONLY";
- /** Defines path to the file that contains list of classes allowed to safe deserialization.*/
- @SystemProperty(value = "Path to the file that contains list of classes allowed to safe deserialization",
- type = String.class)
- public static final String IGNITE_MARSHALLER_WHITELIST = "IGNITE_MARSHALLER_WHITELIST";
-
- /** Defines path to the file that contains list of classes disallowed to safe deserialization.*/
- @SystemProperty(value = "Path to the file that contains list of classes disallowed to safe deserialization",
- type = String.class)
- public static final String IGNITE_MARSHALLER_BLACKLIST = "IGNITE_MARSHALLER_BLACKLIST";
-
- /**
- * If this parameter is set to true, Ignite will automatically configure an ObjectInputFilter instance for the
- * current JVM it is running in.
- * Default value is {@code true}.
- */
- @SystemProperty(
- value = "If this parameter is set to true, Ignite will automatically configure an ObjectInputFilter" +
- " instance for the current JVM it is running in. Filtering is based on class lists defined by the" +
- " `IGNITE_MARSHALLER_WHITELIST` and `IGNITE_MARSHALLER_BLACKLIST` system properties or their default values." +
- " Disabling it is not recommended because the Ignite host may be vulnerable to RCE attacks based on Java" +
- " serialization mechanisms",
- defaults = "true"
- )
- public static final String IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION = "IGNITE_ENABLE_OBJECT_INPUT_FILTER_AUTOCONFIGURATION";
-
/**
* If set to {@code true}, then default selected keys set is used inside
* {@code GridNioServer} which lead to some extra garbage generation when
@@ -1351,14 +1319,6 @@ public final class IgniteSystemProperties extends IgniteCommonsSystemProperties
public static final String IGNITE_DISABLE_REBALANCING_CANCELLATION_OPTIMIZATION =
"IGNITE_DISABLE_REBALANCING_CANCELLATION_OPTIMIZATION";
- /**
- * Sets timeout for TCP client recovery descriptor reservation.
- */
- @SystemProperty(value = "Timeout for TCP client recovery descriptor reservation in milliseconds",
- type = Long.class, defaults = "" + DFLT_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT)
- public static final String IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT =
- "IGNITE_NIO_RECOVERY_DESCRIPTOR_RESERVATION_TIMEOUT";
-
/**
* When set to {@code true}, Ignite will skip partitions sizes check on partition validation after rebalance has finished.
* Partitions sizes may differs on nodes when Expiry Policy is in use and it is ok due to lazy entry eviction mechanics.
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
index 3c14f5d2615f0..e184e952b6e28 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
@@ -42,7 +42,6 @@
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.LT;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiPredicate;
import org.apache.ignite.lang.IgniteBiTuple;
import org.apache.ignite.resources.IgniteInstanceResource;
@@ -110,34 +109,6 @@ public class RendezvousAffinityFunction implements AffinityFunction, Serializabl
@IgniteInstanceResource
private transient IgniteEx ignite;
- /**
- * Helper method to calculates mask.
- *
- * @param parts Number of partitions.
- * @return Mask to use in calculation when partitions count is power of 2.
- */
- public static int calculateMask(int parts) {
- return (parts & (parts - 1)) == 0 ? parts - 1 : -1;
- }
-
- /**
- * Helper method to calculate partition.
- *
- * @param key – Key to get partition for.
- * @param mask Mask to use in calculation when partitions count is power of 2.
- * @param parts Number of partitions.
- * @return Partition number for a given key.
- */
- public static int calculatePartition(Object key, int mask, int parts) {
- if (mask >= 0) {
- int h;
-
- return ((h = key.hashCode()) ^ (h >>> 16)) & mask;
- }
-
- return U.safeAbs(key.hashCode() % parts);
- }
-
/**
* Empty constructor with all defaults.
*/
@@ -237,7 +208,7 @@ public RendezvousAffinityFunction setPartitions(int parts) {
this.parts = parts;
- mask = calculateMask(parts);
+ mask = RendezvousAffinityFunctionHelper.calculateMask(parts);
return this;
}
@@ -506,7 +477,7 @@ private static long hash(int key0, int key1) {
throw new IllegalArgumentException("Null key is passed for a partition calculation. " +
"Make sure that an affinity key that is used is initialized properly.");
- return calculatePartition(key, mask, parts);
+ return RendezvousAffinityFunctionHelper.calculatePartition(key, mask, parts);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
index 4a8d52e81e770..ce1bc69c9b77d 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java
@@ -52,10 +52,10 @@
import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.cache.store.CacheStoreSessionListener;
import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.processors.query.QueryUtils;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteExperimental;
@@ -1984,7 +1984,7 @@ public CacheConfiguration setIndexedTypes(Class>... indexedTypes) {
qryEntities.add(newEntity);
// Set key configuration if needed.
- String affFieldName = CU.affinityFieldName(keyCls);
+ String affFieldName = BinaryUtils.affinityFieldName(keyCls);
if (affFieldName != null) {
CacheKeyConfiguration newKeyCfg = new CacheKeyConfiguration(newEntity.getKeyType(), affFieldName);
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/ClientConnectorConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/ClientConnectorConfiguration.java
index 8a993bcc5304d..9f5b62b25e729 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/ClientConnectorConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/ClientConnectorConfiguration.java
@@ -19,6 +19,7 @@
import javax.cache.configuration.Factory;
import javax.net.ssl.SSLContext;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.internal.A;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.ssl.SslContextFactory;
@@ -29,10 +30,10 @@
*/
public class ClientConnectorConfiguration {
/** Default port. */
- public static final int DFLT_PORT = 10800;
+ public static final int DFLT_PORT = CommonUtils.DFLT_PORT;
/** Default port range. */
- public static final int DFLT_PORT_RANGE = 100;
+ public static final int DFLT_PORT_RANGE = CommonUtils.DFLT_PORT_RANGE;
/** Default socket send and receive buffer size. */
public static final int DFLT_SOCK_BUF_SIZE = 0;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 9437762372485..ce469a139383b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -17,7 +17,6 @@
package org.apache.ignite.internal.processors.cache;
-import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -53,7 +52,6 @@
import org.apache.ignite.cache.CacheServerNotFoundException;
import org.apache.ignite.cache.QueryEntity;
import org.apache.ignite.cache.affinity.AffinityFunction;
-import org.apache.ignite.cache.affinity.AffinityKeyMapped;
import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
import org.apache.ignite.cache.store.CacheStoreSessionListener;
import org.apache.ignite.cluster.ClusterNode;
@@ -2189,37 +2187,6 @@ public static Map, WarmUpStrategy> warmUpSt
return strategies;
}
- /**
- * @param cfg Ignite configuration.
- * @return Type name to affinity key field name mapping.
- */
- public static Map affinityFields(@Nullable IgniteConfiguration cfg) {
- Map affFields = new HashMap<>();
-
- if (cfg == null || F.isEmpty(cfg.getCacheKeyConfiguration()))
- return affFields;
-
- for (CacheKeyConfiguration keyCfg : cfg.getCacheKeyConfiguration())
- affFields.put(keyCfg.getTypeName(), keyCfg.getAffinityKeyFieldName());
-
- return affFields;
- }
-
- /**
- * @param cls Class to get affinity field for.
- * @return Affinity field name or {@code null} if field name was not found.
- */
- public static String affinityFieldName(Class cls) {
- for (; cls != Object.class && cls != null; cls = cls.getSuperclass()) {
- for (Field f : cls.getDeclaredFields()) {
- if (f.getAnnotation(AffinityKeyMapped.class) != null)
- return f.getName();
- }
- }
-
- return null;
- }
-
/**
*
*/
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
index 8867e576ec8af..b67cafda2cad4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
@@ -116,9 +116,9 @@
import static org.apache.ignite.IgniteSystemProperties.IGNITE_WAIT_SCHEMA_UPDATE;
import static org.apache.ignite.IgniteSystemProperties.getBoolean;
import static org.apache.ignite.internal.GridComponent.DiscoveryDataExchangeType.BINARY_PROC;
+import static org.apache.ignite.internal.binary.BinaryUtils.affinityFieldName;
import static org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata;
import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
-import static org.apache.ignite.internal.util.typedef.internal.CU.affinityFieldName;
/**
* Binary processor implementation.
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index 5f81792151696..6900102982072 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -75,6 +75,7 @@
import org.apache.ignite.internal.systemview.ReentrantLockViewWalker;
import org.apache.ignite.internal.systemview.SemaphoreViewWalker;
import org.apache.ignite.internal.systemview.SetViewWalker;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.lang.GridPlainCallable;
import org.apache.ignite.internal.util.lang.IgniteClosureX;
import org.apache.ignite.internal.util.lang.IgniteInClosureX;
@@ -137,13 +138,13 @@ public final class DataStructuresProcessor extends GridProcessorAdapter implemen
public static final String VOLATILE_GRP_NAME = DEFAULT_VOLATILE_DS_GROUP_NAME + "@" + VOLATILE_DATA_REGION_NAME;
/** */
- public static final String DEFAULT_DS_GROUP_NAME = "default-ds-group";
+ public static final String DEFAULT_DS_GROUP_NAME = CommonUtils.DEFAULT_DS_GROUP_NAME;
/** */
private static final String DS_CACHE_NAME_PREFIX = "datastructures_";
/** Atomics system cache name. */
- public static final String ATOMICS_CACHE_NAME = "ignite-sys-atomic-cache";
+ public static final String ATOMICS_CACHE_NAME = CommonUtils.ATOMICS_CACHE_NAME;
/** */
public static final String QUEUES_VIEW = metricName("ds", "queues");
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/sql/optimizer/affinity/PartitionClientContext.java b/modules/core/src/main/java/org/apache/ignite/internal/sql/optimizer/affinity/PartitionClientContext.java
index fca178adb78ec..60859b4df889e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/sql/optimizer/affinity/PartitionClientContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/sql/optimizer/affinity/PartitionClientContext.java
@@ -16,7 +16,7 @@
*/
package org.apache.ignite.internal.sql.optimizer.affinity;
-import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
+import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunctionHelper;
import org.apache.ignite.configuration.CacheConfiguration;
import org.jetbrains.annotations.Nullable;
@@ -41,7 +41,7 @@ public PartitionClientContext(int parts) {
this.parts = parts;
- mask = RendezvousAffinityFunction.calculateMask(parts);
+ mask = RendezvousAffinityFunctionHelper.calculateMask(parts);
}
/**
@@ -63,6 +63,6 @@ public PartitionClientContext(int parts) {
if (key == null)
return null;
- return RendezvousAffinityFunction.calculatePartition(key, mask, parts);
+ return RendezvousAffinityFunctionHelper.calculatePartition(key, mask, parts);
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 1513346138589..2cd60ab9f305d 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -114,7 +114,6 @@
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.function.Consumer;
-import java.util.function.Function;
import java.util.jar.JarFile;
import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
@@ -144,13 +143,7 @@
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.binary.BinaryField;
-import org.apache.ignite.binary.BinaryIdMapper;
-import org.apache.ignite.binary.BinaryNameMapper;
import org.apache.ignite.binary.BinaryObjectBuilder;
-import org.apache.ignite.binary.BinaryObjectException;
-import org.apache.ignite.binary.BinarySerializer;
-import org.apache.ignite.binary.BinaryType;
-import org.apache.ignite.binary.BinaryTypeConfiguration;
import org.apache.ignite.cluster.ClusterGroupEmptyException;
import org.apache.ignite.cluster.ClusterMetrics;
import org.apache.ignite.cluster.ClusterNode;
@@ -171,7 +164,6 @@
import org.apache.ignite.internal.IgniteNodeAttributes;
import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryMarshaller;
-import org.apache.ignite.internal.binary.BinaryMetadata;
import org.apache.ignite.internal.binary.BinaryMetadataHandler;
import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderEx;
@@ -200,7 +192,6 @@
import org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.future.IgniteFutureImpl;
-import org.apache.ignite.internal.util.lang.GridClosureException;
import org.apache.ignite.internal.util.lang.GridPeerDeployAware;
import org.apache.ignite.internal.util.lang.IgniteThrowableFunction;
import org.apache.ignite.internal.util.typedef.C1;
@@ -209,7 +200,6 @@
import org.apache.ignite.internal.util.typedef.P1;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.SB;
import org.apache.ignite.internal.util.worker.GridWorker;
@@ -413,10 +403,6 @@ public abstract class IgniteUtils extends CommonUtils {
public static boolean IGNITE_TEST_FEATURES_ENABLED =
IgniteSystemProperties.getBoolean(IgniteSystemProperties.IGNITE_TEST_FEATURES_ENABLED);
- /** For tests. */
- @SuppressWarnings("PublicField")
- public static boolean useTestBinaryCtx;
-
/** */
private static final boolean assertionsEnabled;
@@ -2796,21 +2782,6 @@ public static void closeWithSuppressingException(@Nullable AutoCloseable rsrc, @
}
}
- /**
- * Quietly closes given resource ignoring possible checked exception.
- *
- * @param rsrc Resource to close. If it's {@code null} - it's no-op.
- */
- public static void closeQuiet(@Nullable AutoCloseable rsrc) {
- if (rsrc != null)
- try {
- rsrc.close();
- }
- catch (Exception ignored) {
- // No-op.
- }
- }
-
/**
* Quietly closes given {@link Socket} ignoring possible checked exception.
*
@@ -4880,49 +4851,6 @@ public static JMException jmException(Throwable e) {
return new JMException(e.getMessage());
}
- /**
- * Unwraps closure exceptions.
- *
- * @param t Exception.
- * @return Unwrapped exception.
- */
- public static Exception unwrap(Throwable t) {
- assert t != null;
-
- while (true) {
- if (t instanceof Error)
- throw (Error)t;
-
- if (t instanceof GridClosureException) {
- t = ((GridClosureException)t).unwrap();
-
- continue;
- }
-
- return (Exception)t;
- }
- }
-
- /**
- * Casts the passed {@code Throwable t} to {@link IgniteCheckedException}.
- * If {@code t} is a {@link GridClosureException}, it is unwrapped and then cast to {@link IgniteCheckedException}.
- * If {@code t} is an {@link IgniteCheckedException}, it is returned.
- * If {@code t} is not a {@link IgniteCheckedException}, a new {@link IgniteCheckedException} caused by {@code t}
- * is returned.
- *
- * @param t Throwable to cast.
- * @return {@code t} cast to {@link IgniteCheckedException}.
- */
- public static IgniteCheckedException cast(Throwable t) {
- assert t != null;
-
- t = unwrap(t);
-
- return t instanceof IgniteCheckedException
- ? (IgniteCheckedException)t
- : new IgniteCheckedException(t);
- }
-
/**
* Checks if class loader is an internal P2P class loader.
*
@@ -5648,30 +5576,6 @@ public static void removeJavaNoOpLogger(Collection rmvHnds) {
}
}
- /**
- * Gets absolute value for integer. If integer is {@link Integer#MIN_VALUE}, then {@code 0} is returned.
- *
- * @param i Integer.
- * @return Absolute value.
- */
- public static int safeAbs(int i) {
- i = Math.abs(i);
-
- return i < 0 ? 0 : i;
- }
-
- /**
- * Gets absolute value for long. If argument is {@link Long#MIN_VALUE}, then {@code 0} is returned.
- *
- * @param i Argument.
- * @return Absolute value.
- */
- public static long safeAbs(long i) {
- i = Math.abs(i);
-
- return i < 0 ? 0 : i;
- }
-
/**
* When {@code long} value given is positive returns that value, otherwise returns provided default value.
*
@@ -7289,31 +7193,6 @@ private static Collection doInParallel(
return results;
}
- /**
- * Utility method to add the given throwable error to the given throwable root error. If the given
- * suppressed throwable is an {@code Error}, but the root error is not, will change the root to the {@code Error}.
- *
- * @param root Root error to add suppressed error to.
- * @param err Error to add.
- * @return New root error.
- */
- public static T addSuppressed(T root, T err) {
- assert err != null;
-
- if (root == null)
- return err;
-
- if (err instanceof Error && !(root instanceof Error)) {
- err.addSuppressed(root);
-
- root = err;
- }
- else
- root.addSuppressed(err);
-
- return root;
- }
-
/**
* @return {@code true} if local node is coordinator.
*/
@@ -7895,36 +7774,15 @@ public static BinaryContext binaryContext(
IgniteLogger log
) {
BinaryConfiguration bcfg = cfg.getBinaryConfiguration() == null ? new BinaryConfiguration() : cfg.getBinaryConfiguration();
-
- return useTestBinaryCtx
- ? new TestBinaryContext(
- metaHnd,
- marsh,
- cfg.getIgniteInstanceName(),
- cfg.getClassLoader(),
- bcfg.getSerializer(),
- bcfg.getIdMapper(),
- bcfg.getNameMapper(),
- bcfg.getTypeConfigurations(),
- CU.affinityFields(cfg),
- bcfg.isCompactFooter(),
- CU::affinityFieldName,
- log
- )
- : new BinaryContext(
- metaHnd,
- marsh,
- cfg.getIgniteInstanceName(),
- cfg.getClassLoader(),
- bcfg.getSerializer(),
- bcfg.getIdMapper(),
- bcfg.getNameMapper(),
- bcfg.getTypeConfigurations(),
- CU.affinityFields(cfg),
- bcfg.isCompactFooter(),
- CU::affinityFieldName,
- log
- );
+ return BinaryUtils.binaryContext(
+ metaHnd,
+ marsh,
+ bcfg,
+ cfg.getIgniteInstanceName(),
+ cfg.getClassLoader(),
+ cfg.getCacheKeyConfiguration(),
+ log
+ );
}
/**
@@ -8009,97 +7867,6 @@ public static IgniteThread newThread(GridWorker worker) {
return new IgniteThread(worker.igniteInstanceName(), worker.name(), worker);
}
- /** */
- @SuppressWarnings("PublicInnerClass")
- public static class TestBinaryContext extends BinaryContext {
- /** */
- private List listeners;
-
- /** */
- public TestBinaryContext(
- BinaryMetadataHandler metaHnd,
- @Nullable BinaryMarshaller marsh,
- @Nullable String igniteInstanceName,
- @Nullable ClassLoader clsLdr,
- @Nullable BinarySerializer dfltSerializer,
- @Nullable BinaryIdMapper idMapper,
- @Nullable BinaryNameMapper nameMapper,
- @Nullable Collection typeCfgs,
- Map affFlds,
- boolean compactFooter,
- Function, String> affFldNameProvider,
- IgniteLogger log
- ) {
- super(
- metaHnd,
- marsh,
- igniteInstanceName,
- clsLdr,
- dfltSerializer,
- idMapper,
- nameMapper,
- typeCfgs,
- affFlds,
- compactFooter,
- affFldNameProvider,
- log
- );
- }
-
-
- /** {@inheritDoc} */
- @Nullable @Override public BinaryType metadata(int typeId) throws BinaryObjectException {
- BinaryType metadata = super.metadata(typeId);
-
- if (listeners != null) {
- for (TestBinaryContextListener listener : listeners)
- listener.onAfterMetadataRequest(typeId, metadata);
- }
-
- return metadata;
- }
-
- /** {@inheritDoc} */
- @Override public void updateMetadata(int typeId, BinaryMetadata meta, boolean failIfUnregistered) throws BinaryObjectException {
- if (listeners != null) {
- for (TestBinaryContextListener listener : listeners)
- listener.onBeforeMetadataUpdate(typeId, meta);
- }
-
- super.updateMetadata(typeId, meta, failIfUnregistered);
- }
-
- /** */
- public interface TestBinaryContextListener {
- /**
- * @param typeId Type id.
- * @param type Type.
- */
- void onAfterMetadataRequest(int typeId, BinaryType type);
-
- /**
- * @param typeId Type id.
- * @param metadata Metadata.
- */
- void onBeforeMetadataUpdate(int typeId, BinaryMetadata metadata);
- }
-
- /** @param lsnr Listener. */
- public void addListener(TestBinaryContextListener lsnr) {
- if (listeners == null)
- listeners = new ArrayList<>();
-
- if (!listeners.contains(lsnr))
- listeners.add(lsnr);
- }
-
- /** */
- public void clearAllListener() {
- if (listeners != null)
- listeners.clear();
- }
- }
-
/** */
public static final IgniteDataTransferObjectSerializer> EMPTY_DTO_SERIALIZER = new IgniteDataTransferObjectSerializer() {
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/ssl/AbstractSslContextFactory.java b/modules/core/src/main/java/org/apache/ignite/ssl/AbstractSslContextFactory.java
index 77dedf84eba78..61a291a85fa6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/ssl/AbstractSslContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/ssl/AbstractSslContextFactory.java
@@ -27,6 +27,7 @@
import javax.net.ssl.SSLParameters;
import javax.net.ssl.TrustManager;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.internal.A;
/**
@@ -39,7 +40,7 @@ public abstract class AbstractSslContextFactory implements Factory {
private static final long serialVersionUID = 0L;
/** Default SSL protocol. */
- public static final String DFLT_SSL_PROTOCOL = "TLS";
+ public static final String DFLT_SSL_PROTOCOL = CommonUtils.DFLT_SSL_PROTOCOL;
/** SSL protocol. */
protected String proto = DFLT_SSL_PROTOCOL;
diff --git a/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java b/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
index af7d140b01f2f..12a876a9e5076 100644
--- a/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
@@ -34,6 +34,7 @@
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.internal.A;
/**
@@ -56,13 +57,13 @@ public class SslContextFactory extends AbstractSslContextFactory {
private static final long serialVersionUID = 0L;
/** Default key / trust store type. */
- public static final String DFLT_STORE_TYPE = System.getProperty("javax.net.ssl.keyStoreType", "JKS");
+ public static final String DFLT_STORE_TYPE = CommonUtils.DFLT_STORE_TYPE;
/** Default SSL protocol. */
- public static final String DFLT_SSL_PROTOCOL = AbstractSslContextFactory.DFLT_SSL_PROTOCOL;
+ public static final String DFLT_SSL_PROTOCOL = CommonUtils.DFLT_SSL_PROTOCOL;
/** Default key manager / trust manager algorithm. Specifying different trust manager algorithm is not supported. */
- public static final String DFLT_KEY_ALGORITHM = System.getProperty("ssl.KeyManagerFactory.algorithm", "SunX509");
+ public static final String DFLT_KEY_ALGORITHM = CommonUtils.DFLT_KEY_ALGORITHM;
/** Key manager algorithm. */
protected String keyAlgorithm = DFLT_KEY_ALGORITHM;
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
index 152b209a533a7..c5890eb1248a6 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
@@ -78,7 +78,6 @@
import org.apache.ignite.internal.processors.cacheobject.NoOpBinary;
import org.apache.ignite.internal.processors.subscription.GridInternalSubscriptionProcessor;
import org.apache.ignite.internal.processors.tracing.configuration.NoopTracingConfigurationManager;
-import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
import org.apache.ignite.lang.IgnitePredicate;
@@ -478,9 +477,9 @@ public IgniteMock(String name, String locHost, UUID nodeId, Marshaller marshalle
bcfg.getIdMapper(),
bcfg.getNameMapper(),
bcfg.getTypeConfigurations(),
- CU.affinityFields(configuration()),
+ BinaryUtils.affinityFields(configuration().getCacheKeyConfiguration()),
bcfg.isCompactFooter(),
- CU::affinityFieldName,
+ BinaryUtils::affinityFieldName,
NullLogger.INSTANCE
) {
@Override public int typeId(String typeName) {
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
index 1a4403a307acd..8e9bbd48ca383 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/BinaryMetadataConcurrentUpdateWithIndexesTest.java
@@ -44,10 +44,11 @@
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.binary.BinaryMetadata;
+import org.apache.ignite.internal.binary.BinaryUtils;
+import org.apache.ignite.internal.binary.BinaryUtils.TestBinaryContext;
+import org.apache.ignite.internal.binary.BinaryUtils.TestBinaryContext.TestBinaryContextListener;
import org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl;
import org.apache.ignite.internal.processors.cache.binary.MetadataUpdateProposedMessage;
-import org.apache.ignite.internal.util.IgniteUtils.TestBinaryContext;
-import org.apache.ignite.internal.util.IgniteUtils.TestBinaryContext.TestBinaryContextListener;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.spi.discovery.tcp.BlockTcpDiscoverySpi;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -343,14 +344,14 @@ protected BinaryObject build(Ignite ignite, String prefix, int... fields) {
@Override protected void beforeTest() throws Exception {
super.beforeTest();
- U.useTestBinaryCtx = true;
+ BinaryUtils.useTestBinaryCtx = true;
}
/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
super.afterTest();
- U.useTestBinaryCtx = false;
+ BinaryUtils.useTestBinaryCtx = false;
stopAllGrids();
}
diff --git a/modules/thin-client/impl/pom.xml b/modules/thin-client/impl/pom.xml
new file mode 100644
index 0000000000000..772e79f6d51e9
--- /dev/null
+++ b/modules/thin-client/impl/pom.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.ignite
+ ignite-parent-internal
+ ${revision}
+ ../../../parent-internal/pom.xml
+
+
+ ignite-thin-client-impl
+
+ http://ignite.apache.org
+
+
+
+ ${project.groupId}
+ ignite-commons
+ provided
+
+
+
+ ${project.groupId}
+ ignite-binary-api
+ provided
+
+
+
+ ${project.groupId}
+ ignite-thin-client-api
+ provided
+
+
+
+ org.jetbrains
+ annotations
+ ${jetbrains.annotations.version}
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ 2.8.2
+
+ false
+
+
+
+
+
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/monitoring/EventListenerDemultiplexer.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/monitoring/EventListenerDemultiplexer.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/monitoring/EventListenerDemultiplexer.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/monitoring/EventListenerDemultiplexer.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/BinaryNameMapperMode.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/BinaryNameMapperMode.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/BinaryNameMapperMode.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/BinaryNameMapperMode.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientAtomicLongImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientAtomicLongImpl.java
similarity index 94%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientAtomicLongImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientAtomicLongImpl.java
index f7f6f521b2659..29055ea3d3fc3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientAtomicLongImpl.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientAtomicLongImpl.java
@@ -21,7 +21,7 @@
import org.apache.ignite.client.ClientAtomicLong;
import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.binary.BinaryWriterEx;
-import org.apache.ignite.internal.processors.datastructures.DataStructuresProcessor;
+import org.apache.ignite.internal.util.CommonUtils;
import org.jetbrains.annotations.Nullable;
/**
@@ -53,8 +53,8 @@ public ClientAtomicLongImpl(String name, @Nullable String groupName, ReliableCha
this.groupName = groupName;
this.ch = ch;
- String grpNameInternal = groupName == null ? DataStructuresProcessor.DEFAULT_DS_GROUP_NAME : groupName;
- cacheId = ClientUtils.cacheId(DataStructuresProcessor.ATOMICS_CACHE_NAME + "@" + grpNameInternal);
+ String grpNameInternal = groupName == null ? CommonUtils.DEFAULT_DS_GROUP_NAME : groupName;
+ cacheId = ClientUtils.cacheId(CommonUtils.ATOMICS_CACHE_NAME + "@" + grpNameInternal);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientBinary.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
similarity index 93%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
index a496265c5b18e..80063cc55b835 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientBinaryMarshaller.java
@@ -18,13 +18,12 @@
package org.apache.ignite.internal.client.thin;
import org.apache.ignite.configuration.BinaryConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.binary.BinaryMetadataHandler;
+import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.binary.GridBinaryMarshaller;
import org.apache.ignite.internal.binary.streams.BinaryInputStream;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.logger.NullLogger;
import org.apache.ignite.marshaller.MarshallerContext;
@@ -108,10 +107,13 @@ private GridBinaryMarshaller createImpl(BinaryConfiguration binCfg) {
marsh.setContext(marshCtx);
- BinaryContext ctx = U.binaryContext(
+ BinaryContext ctx = BinaryUtils.binaryContext(
metaHnd,
marsh,
- new IgniteConfiguration().setBinaryConfiguration(binCfg),
+ binCfg,
+ null,
+ null,
+ null,
NullLogger.INSTANCE
);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityContext.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityContext.java
similarity index 99%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityContext.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityContext.java
index 9ac655460ef71..fb3877dbdee6d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityContext.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityContext.java
@@ -38,8 +38,8 @@
import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.binary.BinaryWriterEx;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.GridConcurrentHashSet;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion.NONE;
@@ -365,7 +365,7 @@ public void registerCache(String cacheName) {
ClientPartitionAwarenessMapperHolder hld = cacheKeyMapperFactoryMap.computeIfAbsent(ClientUtils.cacheId(cacheName),
id -> new ClientPartitionAwarenessMapperHolder(cacheName));
- hld.ts = U.currentTimeMillis();
+ hld.ts = CommonUtils.currentTimeMillis();
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
similarity index 96%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
index 4a944e0c6915e..6487fd9d6f1d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheAffinityMapping.java
@@ -26,7 +26,7 @@
import java.util.UUID;
import java.util.function.Function;
import org.apache.ignite.IgniteBinary;
-import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
+import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunctionHelper;
import org.apache.ignite.client.ClientFeatureNotSupportedByServerException;
import org.apache.ignite.client.ClientPartitionAwarenessMapper;
import org.apache.ignite.internal.binary.BinaryReaderEx;
@@ -34,8 +34,8 @@
import org.apache.ignite.internal.binary.BinaryWriterEx;
import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.internal.U;
import static org.apache.ignite.internal.client.thin.ProtocolBitmaskFeature.ALL_AFFINITY_MAPPINGS;
import static org.apache.ignite.internal.client.thin.ProtocolBitmaskFeature.DC_AWARE;
@@ -211,7 +211,7 @@ public static ClientCacheAffinityMapping readResponse(
int cachesCnt = in.readInt();
if (applicable) { // Partition awareness is applicable for these caches.
- Map> cacheKeyCfg = U.newHashMap(cachesCnt);
+ Map> cacheKeyCfg = CommonUtils.newHashMap(cachesCnt);
for (int j = 0; j < cachesCnt; j++)
cacheKeyCfg.put(in.readInt(), readCacheKeyConfiguration(in));
@@ -264,7 +264,7 @@ public static ClientCacheAffinityMapping readResponse(
private static Map readCacheKeyConfiguration(BinaryReaderEx in) {
int keyCfgCnt = in.readInt();
- Map keyCfg = U.newHashMap(keyCfgCnt);
+ Map keyCfg = CommonUtils.newHashMap(keyCfgCnt);
for (int i = 0; i < keyCfgCnt; i++)
keyCfg.put(in.readInt(), in.readInt());
@@ -298,7 +298,7 @@ private static UUID[] readNodePartitions(BinaryReaderEx in) {
// Expand partToNode if needed.
if (part >= partToNode.length)
- partToNode = Arrays.copyOf(partToNode, U.ceilPow2(part + 1));
+ partToNode = Arrays.copyOf(partToNode, CommonUtils.ceilPow2(part + 1));
}
partToNode[part] = nodeId;
@@ -384,12 +384,12 @@ private static class RendezvousAffinityKeyMapper implements ClientPartitionAware
*/
private RendezvousAffinityKeyMapper(int parts) {
this.parts = parts;
- affinityMask = RendezvousAffinityFunction.calculateMask(parts);
+ affinityMask = RendezvousAffinityFunctionHelper.calculateMask(parts);
}
/** {@inheritDoc} */
@Override public int partition(Object key) {
- return RendezvousAffinityFunction.calculatePartition(key, affinityMask, parts);
+ return RendezvousAffinityFunctionHelper.calculatePartition(key, affinityMask, parts);
}
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntry.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntry.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntry.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntry.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenerHandler.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenerHandler.java
similarity index 97%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenerHandler.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenerHandler.java
index 72142323a2546..24eb09e210ef0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenerHandler.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenerHandler.java
@@ -36,11 +36,10 @@
import org.apache.ignite.internal.binary.streams.BinaryInputStream;
import org.apache.ignite.internal.binary.streams.BinaryOutputStream;
import org.apache.ignite.internal.binary.streams.BinaryStreams;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.T2;
-import org.apache.ignite.internal.util.typedef.internal.U;
import static org.apache.ignite.internal.client.thin.ClientNotificationType.CONTINUOUS_QUERY_EVENT;
-import static org.apache.ignite.internal.client.thin.TcpClientCache.JAVA_PLATFORM;
/**
* Handler for {@link ContinuousQuery} listeners and JCache cache entry listeners.
@@ -118,7 +117,7 @@ public synchronized void startListen(
out.writeByte(GridBinaryMarshaller.NULL);
else {
utils.writeObject(out, rmtFilterFactory);
- out.writeByte(JAVA_PLATFORM);
+ out.writeByte(TcpClientCache.JAVA_PLATFORM);
}
};
@@ -176,7 +175,7 @@ public synchronized void startListen(
if (lsnr != null)
lsnr.onDisconnected(reason);
- U.closeQuiet(this);
+ CommonUtils.closeQuiet(this);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenersRegistry.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenersRegistry.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenersRegistry.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientCacheEntryListenersRegistry.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientChannel.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientChannel.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientChannel.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientChannel.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientChannelConfiguration.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientChannelConfiguration.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientChannelConfiguration.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientChannelConfiguration.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterGroupImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterGroupImpl.java
similarity index 99%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterGroupImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterGroupImpl.java
index 838aecc92a33a..fbca7b15caa04 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterGroupImpl.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterGroupImpl.java
@@ -42,10 +42,10 @@
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.internal.binary.BinaryReaderEx;
import org.apache.ignite.internal.binary.BinaryWriterEx;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.lang.ClusterNodeFunc;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteProductVersion;
import org.jetbrains.annotations.Nullable;
@@ -121,7 +121,7 @@ private ClientClusterGroupImpl(ReliableChannelEx ch, ClientUtils utils,
@Override public ClientClusterGroup forOthers(ClusterNode node, ClusterNode... nodes) {
A.notNull(node, "node");
- Collection nodes0 = collection(U::newHashSet, node, nodes);
+ Collection nodes0 = collection(CommonUtils::newHashSet, node, nodes);
return forPredicate(n -> !nodes0.contains(n));
}
@@ -221,7 +221,7 @@ private ClientClusterGroupImpl(ReliableChannelEx ch, ClientUtils utils,
@Override public ClientClusterGroup forHost(String host, String... hosts) {
A.notNull(host, "host");
- Collection hosts0 = collection(U::newHashSet, host, hosts);
+ Collection hosts0 = collection(CommonUtils::newHashSet, host, hosts);
return forPredicate(n -> {
for (String hostName : n.hostNames()) {
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterImpl.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterImpl.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterNodeImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterNodeImpl.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterNodeImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientClusterNodeImpl.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientComputeImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientComputeImpl.java
similarity index 99%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientComputeImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientComputeImpl.java
index 7234473597c2e..d3fbf8744ffae 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientComputeImpl.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientComputeImpl.java
@@ -37,9 +37,9 @@
import org.apache.ignite.internal.binary.BinaryWriterEx;
import org.apache.ignite.internal.binary.streams.BinaryStreams;
import org.apache.ignite.internal.processors.platform.client.ClientStatus;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.client.thin.ClientNotificationType.COMPUTE_TASK_FINISHED;
@@ -266,7 +266,7 @@ private static boolean cancelGridFuture(GridFutureAdapter> fut, Boolean mayInt
return mayInterruptIfRunning ? fut.cancel() : fut.onCancelled();
}
catch (IgniteCheckedException e) {
- throw U.convertException(e);
+ throw CommonUtils.convertException(e);
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientContinuousQueryCursor.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientContinuousQueryCursor.java
similarity index 93%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientContinuousQueryCursor.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientContinuousQueryCursor.java
index 0ff1f41782e61..7a5e1447b5e25 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientContinuousQueryCursor.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientContinuousQueryCursor.java
@@ -21,7 +21,7 @@
import java.util.Iterator;
import java.util.List;
import org.apache.ignite.cache.query.QueryCursor;
-import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.util.CommonUtils;
import org.jetbrains.annotations.NotNull;
/**
@@ -50,8 +50,8 @@ class ClientContinuousQueryCursor implements QueryCursor {
/** {@inheritDoc} */
@Override public void close() {
- U.closeQuiet(initQryCursor);
- U.closeQuiet(lsnrHnd);
+ CommonUtils.closeQuiet(initQryCursor);
+ CommonUtils.closeQuiet(lsnrHnd);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientDiscoveryContext.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientDiscoveryContext.java
similarity index 97%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientDiscoveryContext.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientDiscoveryContext.java
index 928c00349c860..b09a119d731ea 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientDiscoveryContext.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientDiscoveryContext.java
@@ -37,8 +37,8 @@
import org.apache.ignite.client.ClientAddressFinder;
import org.apache.ignite.client.ClientException;
import org.apache.ignite.configuration.ClientConfiguration;
-import org.apache.ignite.configuration.ClientConnectorConfiguration;
import org.apache.ignite.internal.binary.BinaryReaderEx;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.HostAndPortRange;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.logger.NullLogger;
@@ -231,8 +231,8 @@ private static Set> parsedAddresses(String[] addrs) thro
try {
ranges.add(HostAndPortRange.parse(
a,
- ClientConnectorConfiguration.DFLT_PORT,
- ClientConnectorConfiguration.DFLT_PORT + ClientConnectorConfiguration.DFLT_PORT_RANGE,
+ CommonUtils.DFLT_PORT,
+ CommonUtils.DFLT_PORT + CommonUtils.DFLT_PORT_RANGE,
"Failed to parse Ignite server address"
));
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryCursor.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryCursor.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryCursor.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryCursor.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryPager.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryPager.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryPager.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientFieldsQueryPager.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientIgniteSetImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientIgniteSetImpl.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientIgniteSetImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientIgniteSetImpl.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientInternalBinaryConfiguration.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientInternalBinaryConfiguration.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientInternalBinaryConfiguration.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientInternalBinaryConfiguration.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheAdapter.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheAdapter.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheAdapter.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheAdapter.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheEntryListenerAdapter.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheEntryListenerAdapter.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheEntryListenerAdapter.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientJCacheEntryListenerAdapter.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientNotificationType.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientNotificationType.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientNotificationType.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientNotificationType.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientOperation.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientOperation.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientOperation.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientOperation.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientProtocolError.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientProtocolError.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientProtocolError.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientProtocolError.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryCursor.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryCursor.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryCursor.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryCursor.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryPager.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryPager.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryPager.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientQueryPager.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientRetryPolicyContextImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientRetryPolicyContextImpl.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientRetryPolicyContextImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientRetryPolicyContextImpl.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java
similarity index 98%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java
index 51a1eea708b93..580c7963676d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientServiceDescriptorImpl.java
@@ -20,7 +20,6 @@
import java.util.UUID;
import org.apache.ignite.client.ClientServiceDescriptor;
import org.apache.ignite.platform.PlatformType;
-import org.apache.ignite.services.Service;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServicesImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientServicesImpl.java
similarity index 98%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServicesImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientServicesImpl.java
index 6cda195ddf72a..342ce8f630c5f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientServicesImpl.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientServicesImpl.java
@@ -40,9 +40,9 @@
import org.apache.ignite.internal.binary.BinaryWriterEx;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.service.ServiceCallContextImpl;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.platform.PlatformServiceMethod;
import org.apache.ignite.platform.PlatformType;
import org.apache.ignite.services.ServiceCallContext;
@@ -218,7 +218,7 @@ private ServiceTopology(String name) {
*/
private boolean isUpdateRequired(AffinityTopologyVersion curAffTop) {
return lastAffTop == null || curAffTop.topologyVersion() > lastAffTop.topologyVersion()
- || U.nanosToMillis(System.nanoTime() - lastUpdateRequestTime) >= SRV_TOP_UPDATE_PERIOD;
+ || CommonUtils.nanosToMillis(System.nanoTime() - lastUpdateRequestTime) >= SRV_TOP_UPDATE_PERIOD;
}
/**
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientSslUtils.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientSslUtils.java
similarity index 97%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientSslUtils.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientSslUtils.java
index 4264aa1c3a344..bf701bf8c962c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientSslUtils.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientSslUtils.java
@@ -43,9 +43,7 @@
import org.apache.ignite.client.SslMode;
import org.apache.ignite.client.SslProtocol;
import org.apache.ignite.configuration.ClientConfiguration;
-
-import static org.apache.ignite.ssl.SslContextFactory.DFLT_KEY_ALGORITHM;
-import static org.apache.ignite.ssl.SslContextFactory.DFLT_STORE_TYPE;
+import org.apache.ignite.internal.util.CommonUtils;
/** */
public class ClientSslUtils {
@@ -100,7 +98,7 @@ public static SSLContext getSslContext(ClientConfiguration cfg) {
String keyStoreType = or.apply(
cfg.getSslClientCertificateKeyStoreType(),
- or.apply(System.getProperty("javax.net.ssl.keyStoreType"), DFLT_STORE_TYPE)
+ or.apply(System.getProperty("javax.net.ssl.keyStoreType"), CommonUtils.DFLT_STORE_TYPE)
);
String keyStorePwd = or.apply(
@@ -115,7 +113,7 @@ public static SSLContext getSslContext(ClientConfiguration cfg) {
String trustStoreType = or.apply(
cfg.getSslTrustCertificateKeyStoreType(),
- or.apply(System.getProperty("javax.net.ssl.trustStoreType"), DFLT_STORE_TYPE)
+ or.apply(System.getProperty("javax.net.ssl.trustStoreType"), CommonUtils.DFLT_STORE_TYPE)
);
String trustStorePwd = or.apply(
@@ -123,7 +121,7 @@ public static SSLContext getSslContext(ClientConfiguration cfg) {
System.getProperty("javax.net.ssl.trustStorePassword")
);
- String algorithm = or.apply(cfg.getSslKeyAlgorithm(), DFLT_KEY_ALGORITHM);
+ String algorithm = or.apply(cfg.getSslKeyAlgorithm(), CommonUtils.DFLT_KEY_ALGORITHM);
String proto = toString(cfg.getSslProtocol());
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientUtils.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientUtils.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ClientUtils.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ClientUtils.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/FieldsQueryPager.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/FieldsQueryPager.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/FieldsQueryPager.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/FieldsQueryPager.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/GenericQueryPager.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/GenericQueryPager.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/GenericQueryPager.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/GenericQueryPager.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/IgniteClientFutureImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/IgniteClientFutureImpl.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/IgniteClientFutureImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/IgniteClientFutureImpl.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/NotificationListener.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/NotificationListener.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/NotificationListener.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/NotificationListener.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/PayloadInputChannel.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/PayloadInputChannel.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/PayloadInputChannel.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/PayloadInputChannel.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/PayloadOutputChannel.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/PayloadOutputChannel.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/PayloadOutputChannel.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/PayloadOutputChannel.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ProtocolContext.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ProtocolContext.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ProtocolContext.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ProtocolContext.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersion.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersion.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersion.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersion.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersionFeature.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersionFeature.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersionFeature.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ProtocolVersionFeature.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/QueryPager.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/QueryPager.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/QueryPager.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/QueryPager.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelEx.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelEx.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelEx.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelEx.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelImpl.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelImpl.java
similarity index 99%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelImpl.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelImpl.java
index ec6e96cb0f979..b29bb69629fe3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelImpl.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannelImpl.java
@@ -39,8 +39,8 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.ignite.IgniteBinary;
+import org.apache.ignite.IgniteCommonsSystemProperties;
import org.apache.ignite.IgniteLogger;
-import org.apache.ignite.IgniteSystemProperties;
import org.apache.ignite.client.ClientAuthenticationException;
import org.apache.ignite.client.ClientConnectionException;
import org.apache.ignite.client.ClientException;
@@ -52,8 +52,8 @@
import org.apache.ignite.configuration.ClientConfiguration;
import org.apache.ignite.internal.client.thin.io.ClientConnectionMultiplexer;
import org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.logger.NullLogger;
import org.jetbrains.annotations.Nullable;
@@ -141,10 +141,10 @@ final class ReliableChannelImpl implements ReliableChannelEx {
partitionAwarenessEnabled = clientCfg.isPartitionAwarenessEnabled();
- String dcId = IgniteSystemProperties.getString(IgniteSystemProperties.IGNITE_DATA_CENTER_ID);
+ String dcId = IgniteCommonsSystemProperties.getString(IgniteCommonsSystemProperties.IGNITE_DATA_CENTER_ID);
if (dcId == null && !F.isEmpty(clientCfg.getUserAttributes()))
- dcId = clientCfg.getUserAttributes().get(IgniteSystemProperties.IGNITE_DATA_CENTER_ID);
+ dcId = clientCfg.getUserAttributes().get(IgniteCommonsSystemProperties.IGNITE_DATA_CENTER_ID);
affinityCtx = new ClientCacheAffinityContext(
binary,
@@ -1133,7 +1133,7 @@ private ClientChannel getOrCreateChannel(boolean ignoreThrottling)
*/
private synchronized void closeChannel() {
if (ch != null) {
- U.closeQuiet(ch);
+ CommonUtils.closeQuiet(ch);
ch = null;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientCache.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientCache.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientCache.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientCache.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
similarity index 99%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
index 00a6c56c59e88..ba84b69cde13e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientChannel.java
@@ -68,6 +68,7 @@
import org.apache.ignite.internal.processors.odbc.ClientListenerRequest;
import org.apache.ignite.internal.processors.platform.client.ClientFlag;
import org.apache.ignite.internal.processors.platform.client.ClientStatus;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.T2;
@@ -217,7 +218,7 @@ class TcpClientChannel implements ClientChannel, ClientMessageHandler, ClientCon
catch (ClientConnectionException e) {
log.info("Can't establish connection with " + addr);
- connectionEx = U.addSuppressed(connectionEx, e);
+ connectionEx = CommonUtils.addSuppressed(connectionEx, e);
continue;
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientTransactions.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientTransactions.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpClientTransactions.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpClientTransactions.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java
similarity index 99%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java
index b21eca8578160..ee7ec14795ca1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java
+++ b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java
@@ -71,6 +71,7 @@
import org.apache.ignite.internal.client.thin.io.ClientConnectionMultiplexer;
import org.apache.ignite.internal.processors.platform.client.ClientStatus;
import org.apache.ignite.internal.processors.platform.client.IgniteClientException;
+import org.apache.ignite.internal.util.CommonUtils;
import org.apache.ignite.internal.util.GridArgumentCheck;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -792,7 +793,7 @@ private class ClientMarshallerContext implements MarshallerContext {
*/
public ClientMarshallerContext() {
try {
- MarshallerUtils.processSystemClasses(U.gridClassLoader(), null, sysTypes::add);
+ MarshallerUtils.processSystemClasses(CommonUtils.gridClassLoader(), null, sysTypes::add);
}
catch (IOException e) {
throw new IllegalStateException("Failed to initialize marshaller context.", e);
@@ -858,7 +859,7 @@ public ClientMarshallerContext() {
@Override public Class getClass(int typeId, ClassLoader ldr)
throws ClassNotFoundException, IgniteCheckedException {
- return U.forName(getClassName(MarshallerPlatformIds.JAVA_ID, typeId), ldr, null);
+ return CommonUtils.forName(getClassName(MarshallerPlatformIds.JAVA_ID, typeId), ldr, null);
}
/** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnection.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnection.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnection.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnection.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionMultiplexer.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionMultiplexer.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionMultiplexer.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionMultiplexer.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionStateHandler.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionStateHandler.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionStateHandler.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientConnectionStateHandler.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageDecoder.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageDecoder.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageDecoder.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageDecoder.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageHandler.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageHandler.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageHandler.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/ClientMessageHandler.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnection.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnection.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnection.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnection.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientListener.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientListener.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientListener.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientListener.java
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientParser.java b/modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientParser.java
similarity index 100%
rename from modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientParser.java
rename to modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientParser.java
diff --git a/pom.xml b/pom.xml
index 5b4ef9e6f5516..beaba513ff029 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,7 @@
modules/binary/api
modules/binary/impl
modules/thin-client/api
+ modules/thin-client/impl
modules/unsafe
modules/core
modules/compress