private void handleTcpIp(Node node) { NamedNodeMap attributes = node.getAttributes(); JoinConfig join = config.getNetworkConfig().getJoin(); TcpIpConfig tcpIpConfig = join.getTcpIpConfig(); for (int a = 0; a < attributes.getLength(); a++) { Node att = attributes.item(a); String value = getTextContent(att).trim(); if (att.getNodeName().equals("enabled")) { tcpIpConfig.setEnabled(getBooleanValue(value)); } else if (att.getNodeName().equals("connection-timeout-seconds")) { tcpIpConfig.setConnectionTimeoutSeconds(getIntegerValue("connection-timeout-seconds", value)); } } Set<String> memberTags = new HashSet<String>(Arrays.asList("interface", "member", "members")); for (Node n : childElements(node)) { String value = getTextContent(n).trim(); if (cleanNodeName(n).equals("member-list")) { handleMemberList(n); } else if (cleanNodeName(n).equals("required-member")) { if (tcpIpConfig.getRequiredMember() != null) { throw new InvalidConfigurationException("Duplicate required-member" + " definition found in XML configuration. "); } tcpIpConfig.setRequiredMember(value); } else if (memberTags.contains(cleanNodeName(n))) { tcpIpConfig.addMember(value); } } }
private void handleTcpIp(Node node) { NamedNodeMap attributes = node.getAttributes(); JoinConfig join = config.getNetworkConfig().getJoin(); TcpIpConfig tcpIpConfig = join.getTcpIpConfig(); for (int a = 0; a < attributes.getLength(); a++) { Node att = attributes.item(a); String value = getTextContent(att).trim(); if (att.getNodeName().equals("enabled")) { tcpIpConfig.setEnabled(getBooleanValue(value)); } else if (att.getNodeName().equals("connection-timeout-seconds")) { tcpIpConfig.setConnectionTimeoutSeconds(getIntegerValue("connection-timeout-seconds", value)); } } Set<String> memberTags = new HashSet<String>(Arrays.asList("interface", "member", "members")); for (Node n : childElements(node)) { String value = getTextContent(n).trim(); if (cleanNodeName(n).equals("member-list")) { handleMemberList(n); } else if (cleanNodeName(n).equals("required-member")) { if (tcpIpConfig.getRequiredMember() != null) { throw new InvalidConfigurationException("Duplicate required-member" + " definition found in XML configuration. "); } tcpIpConfig.setRequiredMember(value); } else if (memberTags.contains(cleanNodeName(n))) { tcpIpConfig.addMember(value); } } }
private static void tcpConfigXmlGenerator(XmlGenerator gen, JoinConfig join) { TcpIpConfig c = join.getTcpIpConfig(); gen.open("tcp-ip", "enabled", c.isEnabled(), "connection-timeout-seconds", c.getConnectionTimeoutSeconds()) .open("member-list"); for (String m : c.getMembers()) { gen.node("member", m); } gen.close() .node("required-member", c.getRequiredMember()) .close(); }
private static void tcpConfigXmlGenerator(XmlGenerator gen, JoinConfig join) { TcpIpConfig c = join.getTcpIpConfig(); gen.open("tcp-ip", "enabled", c.isEnabled(), "connection-timeout-seconds", c.getConnectionTimeoutSeconds()) .open("member-list"); for (String m : c.getMembers()) { gen.node("member", m); } gen.close() .node("required-member", c.getRequiredMember()) .close(); }
@Override public void doJoin() { final Address targetAddress = getTargetAddress(); if (targetAddress != null) { long maxJoinMergeTargetMillis = node.getProperties().getMillis(GroupProperty.MAX_JOIN_MERGE_TARGET_SECONDS); joinViaTargetMember(targetAddress, maxJoinMergeTargetMillis); if (!clusterService.isJoined()) { joinViaPossibleMembers(); } } else if (config.getNetworkConfig().getJoin().getTcpIpConfig().getRequiredMember() != null) { Address requiredMember = getRequiredMemberAddress(); long maxJoinMillis = getMaxJoinMillis(); joinViaTargetMember(requiredMember, maxJoinMillis); } else { joinViaPossibleMembers(); } }
@Override public void doJoin() { final Address targetAddress = getTargetAddress(); if (targetAddress != null) { long maxJoinMergeTargetMillis = node.getProperties().getMillis(GroupProperty.MAX_JOIN_MERGE_TARGET_SECONDS); joinViaTargetMember(targetAddress, maxJoinMergeTargetMillis); if (!clusterService.isJoined()) { joinViaPossibleMembers(); } } else if (config.getNetworkConfig().getJoin().getTcpIpConfig().getRequiredMember() != null) { Address requiredMember = getRequiredMemberAddress(); long maxJoinMillis = getMaxJoinMillis(); joinViaTargetMember(requiredMember, maxJoinMillis); } else { joinViaPossibleMembers(); } }
private Address getRequiredMemberAddress() { TcpIpConfig tcpIpConfig = config.getNetworkConfig().getJoin().getTcpIpConfig(); String host = tcpIpConfig.getRequiredMember(); try { AddressHolder addressHolder = AddressUtil.getAddressHolder(host, config.getNetworkConfig().getPort()); if (AddressUtil.isIpAddress(addressHolder.getAddress())) { return new Address(addressHolder.getAddress(), addressHolder.getPort()); } InterfacesConfig interfaces = config.getNetworkConfig().getInterfaces(); if (interfaces.isEnabled()) { InetAddress[] inetAddresses = InetAddress.getAllByName(addressHolder.getAddress()); if (inetAddresses.length > 1) { for (InetAddress inetAddress : inetAddresses) { if (AddressUtil.matchAnyInterface(inetAddress.getHostAddress(), interfaces.getInterfaces())) { return new Address(inetAddress, addressHolder.getPort()); } } } else if (AddressUtil.matchAnyInterface(inetAddresses[0].getHostAddress(), interfaces.getInterfaces())) { return new Address(addressHolder.getAddress(), addressHolder.getPort()); } } else { return new Address(addressHolder.getAddress(), addressHolder.getPort()); } } catch (final Exception e) { logger.warning(e); } return null; }
private Address getRequiredMemberAddress() { TcpIpConfig tcpIpConfig = config.getNetworkConfig().getJoin().getTcpIpConfig(); String host = tcpIpConfig.getRequiredMember(); try { AddressHolder addressHolder = AddressUtil.getAddressHolder(host, config.getNetworkConfig().getPort()); if (AddressUtil.isIpAddress(addressHolder.getAddress())) { return new Address(addressHolder.getAddress(), addressHolder.getPort()); } InterfacesConfig interfaces = config.getNetworkConfig().getInterfaces(); if (interfaces.isEnabled()) { InetAddress[] inetAddresses = InetAddress.getAllByName(addressHolder.getAddress()); if (inetAddresses.length > 1) { for (InetAddress inetAddress : inetAddresses) { if (AddressUtil.matchAnyInterface(inetAddress.getHostAddress(), interfaces.getInterfaces())) { return new Address(inetAddress, addressHolder.getPort()); } } } else if (AddressUtil.matchAnyInterface(inetAddresses[0].getHostAddress(), interfaces.getInterfaces())) { return new Address(addressHolder.getAddress(), addressHolder.getPort()); } } else { return new Address(addressHolder.getAddress(), addressHolder.getPort()); } } catch (final Exception e) { logger.warning(e); } return null; }