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> 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