public static MemberVersion of(int major, int minor, int patch) { if (major == 0 && minor == 0 && patch == 0) { return MemberVersion.UNKNOWN; } else { return new MemberVersion(major, minor, patch); } }
@Override public int compare(MemberVersion o1, MemberVersion o2) { int thisVersion = (o1.getMajor() << 8 & 0xff00) | (o1.getMinor() & 0xff); int thatVersion = (o2.getMajor() << 8 & 0xff00) | (o2.getMinor() & 0xff); if (thisVersion > thatVersion) { return 1; } else { return thisVersion == thatVersion ? 0 : -1; } } }
public MemberVersion(String version) { parse(version); }
@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 boolean isNodeVersionCompatibleWith(Version clusterVersion) { Preconditions.checkNotNull(clusterVersion); return node.getVersion().asVersion().equals(clusterVersion); }
private Version getClusterOrNodeVersion() { if (node.getClusterService() != null && !node.getClusterService().getClusterVersion().isUnknown()) { return node.getClusterService().getClusterVersion(); } else { String overriddenClusterVersion = node.getProperties().getString(GroupProperty.INIT_CLUSTER_VERSION); return (overriddenClusterVersion != null) ? MemberVersion.of(overriddenClusterVersion).asVersion() : node.getVersion().asVersion(); } }
memberVersion = MemberVersion.of(jsonNodeVersion);
@Override public JsonObject toJson() { JsonObject root = new JsonObject(); root.add("clusterState", clusterState.name()); root.add("nodeState", nodeState.name()); root.add("clusterVersion", clusterVersion.toString()); root.add("memberVersion", memberVersion.toString()); JsonObject weaknesses = new JsonObject(); for (Map.Entry<String, List<String>> entry : weakSecretsConfigs.entrySet()) { JsonArray values = new JsonArray(); for (String value : entry.getValue()) { values.add(value); } weaknesses.add(entry.getKey(), values); } root.add("weakConfigs", weaknesses); return root; }
@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 boolean isNodeVersionCompatibleWith(Version clusterVersion) { Preconditions.checkNotNull(clusterVersion); return node.getVersion().asVersion().equals(clusterVersion); }
private Version getClusterOrNodeVersion() { if (node.getClusterService() != null && !node.getClusterService().getClusterVersion().isUnknown()) { return node.getClusterService().getClusterVersion(); } else { String overriddenClusterVersion = node.getProperties().getString(GroupProperty.INIT_CLUSTER_VERSION); return (overriddenClusterVersion != null) ? MemberVersion.of(overriddenClusterVersion).asVersion() : node.getVersion().asVersion(); } }
memberVersion = MemberVersion.of(jsonNodeVersion);
@Override public JsonObject toJson() { JsonObject root = new JsonObject(); root.add("clusterState", clusterState.name()); root.add("nodeState", nodeState.name()); root.add("clusterVersion", clusterVersion.toString()); root.add("memberVersion", memberVersion.toString()); JsonObject weaknesses = new JsonObject(); for (Map.Entry<String, List<String>> entry : weakSecretsConfigs.entrySet()) { JsonArray values = new JsonArray(); for (String value : entry.getValue()) { values.add(value); } weaknesses.add(entry.getKey(), values); } root.add("weakConfigs", weaknesses); return root; }
@Override protected boolean requiresExplicitServiceName() { // RU_COMPAT_3_10 Member member = getNodeEngine().getClusterService().getMember(target); if (member == null) { return false; } Version memberVersion = member.getVersion().asVersion(); return memberVersion.isLessThan(Versions.V3_11); }
@Override public int compare(MemberVersion o1, MemberVersion o2) { int thisVersion = (o1.getMajor() << 8 & 0xff00) | (o1.getMinor() & 0xff); int thatVersion = (o2.getMajor() << 8 & 0xff00) | (o2.getMinor() & 0xff); if (thisVersion > thatVersion) { return 1; } else { return thisVersion == thatVersion ? 0 : -1; } } }
public IdentifiedDataSerializable createNew(Integer arg) { return new MemberVersion(); } };
this.version = MemberVersion.of(buildInfo.getVersion());
public MemberVersion(String version) { parse(version); }
@Override protected boolean requiresExplicitServiceName() { // RU_COMPAT_3_10 Member member = getNodeEngine().getClusterService().getMember(target); if (member == null) { return false; } Version memberVersion = member.getVersion().asVersion(); return memberVersion.isLessThan(Versions.V3_11); }
public static MemberVersion of(int major, int minor, int patch) { if (major == 0 && minor == 0 && patch == 0) { return MemberVersion.UNKNOWN; } else { return new MemberVersion(major, minor, patch); } }