/** * Throws {@link IllegalArgumentException} if the given {@link InMemoryFormat} * is {@link InMemoryFormat#NATIVE} and Hazelcast is OS. * * @param inMemoryFormat supplied inMemoryFormat */ private static void checkNotNativeWhenOpenSource(InMemoryFormat inMemoryFormat) { if (inMemoryFormat == NATIVE && !getBuildInfo().isEnterprise()) { throw new IllegalArgumentException("NATIVE storage format is supported in Hazelcast Enterprise only." + " Make sure you have Hazelcast Enterprise JARs on your classpath!"); } }
/** * Throws {@link IllegalArgumentException} if the given {@link InMemoryFormat} * is {@link InMemoryFormat#NATIVE} and Hazelcast is OS. * * @param inMemoryFormat supplied inMemoryFormat */ private static void checkNotNativeWhenOpenSource(InMemoryFormat inMemoryFormat) { if (inMemoryFormat == NATIVE && !getBuildInfo().isEnterprise()) { throw new IllegalArgumentException("NATIVE storage format is supported in Hazelcast Enterprise only." + " Make sure you have Hazelcast Enterprise JARs on your classpath!"); } }
private boolean mustReadMapIndexInfos(Version version) { // 3.10 OS always reads mapIndexInfos // 3.10 EE always read mapIndexInfos when cluster version >= 3.10 // When cluster version is 3.9: // - an object input from 3.9 EE does not contain mapIndexInfo and arrives with UNKNOWN version // - an object input from 3.10 EE comes with version 3.9 and contains mapIndexInfo return !getBuildInfo().isEnterprise() || version.isGreaterOrEqual(V3_10); }
private boolean mustReadMemberListJoinVersion(VersionAware versionAware) { return (!getBuildInfo().isEnterprise() || versionAware.getVersion().isGreaterOrEqual(V3_10)); } }
@Override public ChannelInitializer createChannelInitializer(IOService ioService) { SSLConfig sslConfig = ioService.getSSLConfig(); if (sslConfig != null && sslConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("SSL/TLS requires Hazelcast Enterprise Edition"); } } return new PlainChannelInitializer(ioService); }
private boolean mustReadMemberListJoinVersion(VersionAware versionAware) { return (!getBuildInfo().isEnterprise() || versionAware.getVersion().isGreaterOrEqual(V3_10)); } }
@Override public ChannelInitializer createChannelInitializer(IOService ioService) { SSLConfig sslConfig = ioService.getSSLConfig(); if (sslConfig != null && sslConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("SSL/TLS requires Hazelcast Enterprise Edition"); } } return new PlainChannelInitializer(ioService); }
private void checkSecurityAllowed() { SecurityConfig securityConfig = node.getConfig().getSecurityConfig(); if (securityConfig != null && securityConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("Security requires Hazelcast Enterprise Edition"); } } SymmetricEncryptionConfig symmetricEncryptionConfig = node.getConfig().getNetworkConfig().getSymmetricEncryptionConfig(); if (symmetricEncryptionConfig != null && symmetricEncryptionConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("Symmetric Encryption requires Hazelcast Enterprise Edition"); } } }
private void checkSecurityAllowed() { SecurityConfig securityConfig = node.getConfig().getSecurityConfig(); if (securityConfig != null && securityConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("Security requires Hazelcast Enterprise Edition"); } } SymmetricEncryptionConfig symmetricEncryptionConfig = node.getConfig().getNetworkConfig().getSymmetricEncryptionConfig(); if (symmetricEncryptionConfig != null && symmetricEncryptionConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("Symmetric Encryption requires Hazelcast Enterprise Edition"); } } }
public Statistics(final HazelcastClientInstanceImpl clientInstance) { this.properties = clientInstance.getProperties(); this.enabled = properties.getBoolean(ENABLED); this.client = clientInstance; this.enterprise = BuildInfoProvider.getBuildInfo().isEnterprise(); this.metricsRegistry = clientInstance.getMetricsRegistry(); }
public Statistics(final HazelcastClientInstanceImpl clientInstance) { this.properties = clientInstance.getProperties(); this.enabled = properties.getBoolean(ENABLED); this.client = clientInstance; this.enterprise = BuildInfoProvider.getBuildInfo().isEnterprise(); this.metricsRegistry = clientInstance.getMetricsRegistry(); }
private BuildInfo(BuildInfo buildInfo, JetBuildInfo jetBuildInfo) { this(buildInfo.getVersion(), buildInfo.getBuild(), buildInfo.getRevision(), buildInfo.getBuildNumber(), buildInfo.isEnterprise(), buildInfo.getSerializationVersion(), buildInfo.getUpstreamBuildInfo(), jetBuildInfo); }
private BuildInfo(BuildInfo buildInfo, JetBuildInfo jetBuildInfo) { this(buildInfo.getVersion(), buildInfo.getBuild(), buildInfo.getRevision(), buildInfo.getBuildNumber(), buildInfo.isEnterprise(), buildInfo.getSerializationVersion(), buildInfo.getUpstreamBuildInfo(), jetBuildInfo); }
@Override public ChannelInitializer createChannelInitializer() { ClientNetworkConfig networkConfig = client.getClientConfig().getNetworkConfig(); SSLConfig sslConfig = networkConfig.getSSLConfig(); if (sslConfig != null && sslConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("SSL/TLS requires Hazelcast Enterprise Edition"); } } SocketOptions socketOptions = networkConfig.getSocketOptions(); HazelcastProperties properties = client.getProperties(); boolean directBuffer = properties.getBoolean(SOCKET_CLIENT_BUFFER_DIRECT); return new ClientPlainChannelInitializer(socketOptions, directBuffer); }
@Override public ChannelInitializer createChannelInitializer() { ClientNetworkConfig networkConfig = client.getClientConfig().getNetworkConfig(); SSLConfig sslConfig = networkConfig.getSSLConfig(); if (sslConfig != null && sslConfig.isEnabled()) { if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { throw new IllegalStateException("SSL/TLS requires Hazelcast Enterprise Edition"); } } SocketOptions socketOptions = networkConfig.getSocketOptions(); HazelcastProperties properties = client.getProperties(); boolean directBuffer = properties.getBoolean(SOCKET_CLIENT_BUFFER_DIRECT); return new ClientPlainChannelInitializer(socketOptions, directBuffer); }
private boolean mustWriteIndexInfos(Version clusterVersion) { // 3.10 OS always writes mapIndexInfos // 3.10 EE on cluster version 3.10 must write index info if (!getBuildInfo().isEnterprise() || clusterVersion.isGreaterOrEqual(V3_10)) { return true; } ClusterService clusterService = operation.getNodeEngine().getClusterService(); Member targetMember = clusterService.getMember(target); // When cluster version is 3.9, only write mapIndexInfo if target member is 3.9 EE. Reasoning: // 3.9 EE expects to read mapIndexInfos when object data input comes with 3.9+ version. This is // the case when the object stream originates from a versioned 3.10 member. return targetMember.getVersion().asVersion().isEqualTo(V3_9) && clusterVersion.isEqualTo(V3_9); }
private boolean mustWriteIndexInfos(Version clusterVersion) { // Do not write index info when OS or cluster version is 3.10+ if (!getBuildInfo().isEnterprise() || clusterVersion.isGreaterOrEqual(V3_10)) { return false; } // 3.9 EE reads index definitions when object input version is UNKNOWN or <= 3.8 // --> it expects to read map index definitions from other 3.9 members but not from // an input coming from 3.10 EE (as it will have version 3.9) --> do not send when target member is 3.9 // --> when target member is 3.10, do send index info so it behaves like 3.9-only cluster ClusterService clusterService = getNodeEngine().getClusterService(); Member targetMember = clusterService.getMember(target); return targetMember.getVersion().asVersion().isEqualTo(V3_10) && clusterVersion.isEqualTo(V3_9); } }
/** * Checks preconditions to create a map proxy with Near Cache. * * @param mapName name of the map that Near Cache will be created for * @param nearCacheConfig the {@link NearCacheConfig} to be checked * @param nativeMemoryConfig the {@link NativeMemoryConfig} of the Hazelcast instance * @param isClient {@code true} if the config is for a Hazelcast client, {@code false} otherwise */ public static void checkNearCacheConfig(String mapName, NearCacheConfig nearCacheConfig, NativeMemoryConfig nativeMemoryConfig, boolean isClient) { checkNotNativeWhenOpenSource(nearCacheConfig.getInMemoryFormat()); checkLocalUpdatePolicy(mapName, nearCacheConfig.getLocalUpdatePolicy()); checkEvictionConfig(nearCacheConfig.getEvictionConfig(), true); checkOnHeapNearCacheMaxSizePolicy(nearCacheConfig); checkNearCacheNativeMemoryConfig(nearCacheConfig.getInMemoryFormat(), nativeMemoryConfig, getBuildInfo().isEnterprise()); if (isClient && nearCacheConfig.isCacheLocalEntries()) { throw new IllegalArgumentException("The Near Cache option `cache-local-entries` is not supported in " + "client configurations."); } checkPreloaderConfig(nearCacheConfig, isClient); }
@Override public void validateJoinRequest(JoinMessage joinMessage) { // check joining member's major.minor version is same as current cluster version's major.minor numbers MemberVersion memberVersion = joinMessage.getMemberVersion(); Version clusterVersion = node.getClusterService().getClusterVersion(); if (!memberVersion.asVersion().equals(clusterVersion)) { String msg = "Joining node's version " + memberVersion + " is not compatible with cluster version " + clusterVersion; if (clusterVersion.getMajor() != memberVersion.getMajor()) { msg += " (Rolling Member Upgrades are only supported for the same major version)"; } if (clusterVersion.getMinor() > memberVersion.getMinor()) { msg += " (Rolling Member Upgrades are only supported for the next minor version)"; } if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { msg += " (Rolling Member Upgrades are only supported in Hazelcast Enterprise)"; } throw new VersionMismatchException(msg); } }
@Override public void validateJoinRequest(JoinMessage joinMessage) { // check joining member's major.minor version is same as current cluster version's major.minor numbers MemberVersion memberVersion = joinMessage.getMemberVersion(); Version clusterVersion = node.getClusterService().getClusterVersion(); if (!memberVersion.asVersion().equals(clusterVersion)) { String msg = "Joining node's version " + memberVersion + " is not compatible with cluster version " + clusterVersion; if (clusterVersion.getMajor() != memberVersion.getMajor()) { msg += " (Rolling Member Upgrades are only supported for the same major version)"; } if (clusterVersion.getMinor() > memberVersion.getMinor()) { msg += " (Rolling Member Upgrades are only supported for the next minor version)"; } if (!BuildInfoProvider.getBuildInfo().isEnterprise()) { msg += " (Rolling Member Upgrades are only supported in Hazelcast Enterprise)"; } throw new VersionMismatchException(msg); } }