@Override public IdentifiedDataSerializable createNew(Integer arg) { return new DiscoveryConfig(); } };
DiscoveryConfigReadOnly(DiscoveryConfig discoveryConfig) { super(discoveryConfig.getDiscoveryServiceProvider(), discoveryConfig.getNodeFilter(), discoveryConfig.getNodeFilterClass(), discoveryConfig.getDiscoveryStrategyConfigs()); }
private NodeFilter getNodeFilter(DiscoveryServiceSettings settings) { DiscoveryConfig discoveryConfig = settings.getDiscoveryConfig(); ClassLoader configClassLoader = settings.getConfigClassLoader(); if (discoveryConfig.getNodeFilter() != null) { return discoveryConfig.getNodeFilter(); } if (discoveryConfig.getNodeFilterClass() != null) { try { ClassLoader cl = configClassLoader; if (cl == null) { cl = DefaultDiscoveryService.class.getClassLoader(); } String className = discoveryConfig.getNodeFilterClass(); return (NodeFilter) cl.loadClass(className).newInstance(); } catch (Exception e) { throw new RuntimeException("Failed to configure discovery node filter", e); } } return null; }
private static void discovery(XmlGenerator gen, DiscoveryConfig discovery) { if (discovery.getNodeFilter() == null && discovery.getNodeFilterClass() == null && discovery.getDiscoveryStrategyConfigs().isEmpty()) { return; } gen.open("discovery-strategies") .node("node-filter", null, "class", classNameOrImplClass(discovery.getNodeFilterClass(), discovery.getNodeFilter())); for (DiscoveryStrategyConfig strategy : discovery.getDiscoveryStrategyConfigs()) { gen.open("discovery-strategy", "class", strategy.getClassName(), "enabled", true) .appendProperties(strategy.getProperties()) .close(); } gen.close(); }
@Override public void fromJson(JsonObject json) { config = new DiscoveryConfig(); JsonValue nodeFilterClass = json.get("nodeFilterClass"); if (nodeFilterClass != null && !nodeFilterClass.isNull()) { config.setNodeFilterClass(nodeFilterClass.asString()); } JsonValue discoveryStrategies = json.get("discoveryStrategy"); if (discoveryStrategies != null && !discoveryStrategies.isNull()) { Collection<DiscoveryStrategyConfig> strategyConfigs = config.getDiscoveryStrategyConfigs(); for (JsonValue strategy : discoveryStrategies.asArray()) { DiscoveryStrategyConfigDTO strategyDTO = new DiscoveryStrategyConfigDTO(); strategyDTO.fromJson(strategy.asObject()); strategyConfigs.add(strategyDTO.getConfig()); } } }
private void handleDiscoveryStrategy(Node node, DiscoveryConfig discoveryConfig) { NamedNodeMap atts = node.getAttributes(); boolean enabled = false; String clazz = null; for (int a = 0; a < atts.getLength(); a++) { Node att = atts.item(a); String value = getTextContent(att).trim(); if ("enabled".equalsIgnoreCase(att.getNodeName())) { enabled = getBooleanValue(value); } else if ("class".equals(att.getNodeName())) { clazz = value; } } if (!enabled || clazz == null) { return; } Map<String, Comparable> properties = new HashMap<String, Comparable>(); for (Node child : childElements(node)) { String name = cleanNodeName(child); if ("properties".equals(name)) { fillProperties(child, properties); } } discoveryConfig.addDiscoveryStrategyConfig(new DiscoveryStrategyConfig(clazz, properties)); }
private static JoinConfig createDiscoveryJoinConfig(final Config config, final HazelcastClusterProperties cluster, final NetworkConfig networkConfig) { val joinConfig = new JoinConfig(); LOGGER.debug("Disabling multicast and TCP/IP configuration for discovery"); joinConfig.getMulticastConfig().setEnabled(false); joinConfig.getTcpIpConfig().setEnabled(false); val discoveryConfig = new DiscoveryConfig(); val strategyConfig = locateDiscoveryStrategyConfig(cluster, joinConfig, config, networkConfig); LOGGER.debug("Creating discovery strategy configuration as [{}]", strategyConfig); discoveryConfig.setDiscoveryStrategyConfigs(CollectionUtils.wrap(strategyConfig)); joinConfig.setDiscoveryConfig(discoveryConfig); return joinConfig; }
private DiscoveryService initDiscoveryService(ClientConfig config) { // Prevent confusing behavior where the DiscoveryService is started // and strategies are resolved but the AddressProvider is never registered List<DiscoveryStrategyConfig> aliasedDiscoveryConfigs = ClientAliasedDiscoveryConfigUtils.createDiscoveryStrategyConfigs(config); if (!properties.getBoolean(ClientProperty.DISCOVERY_SPI_ENABLED) && aliasedDiscoveryConfigs.isEmpty()) { return null; } ILogger logger = loggingService.getLogger(DiscoveryService.class); ClientNetworkConfig networkConfig = config.getNetworkConfig(); DiscoveryConfig discoveryConfig = networkConfig.getDiscoveryConfig().getAsReadOnly(); DiscoveryServiceProvider factory = discoveryConfig.getDiscoveryServiceProvider(); if (factory == null) { factory = new DefaultDiscoveryServiceProvider(); } DiscoveryServiceSettings settings = new DiscoveryServiceSettings() .setConfigClassLoader(config.getClassLoader()) .setLogger(logger) .setDiscoveryMode(DiscoveryMode.Client) .setAliasedDiscoveryConfigs(aliasedDiscoveryConfigs) .setDiscoveryConfig(discoveryConfig); DiscoveryService discoveryService = factory.newDiscoveryService(settings); discoveryService.start(); return discoveryService; }
@Override public JsonObject toJson() { JsonObject root = new JsonObject() .add("nodeFilterClass", config.getNodeFilterClass()); JsonArray strategies = new JsonArray(); for (DiscoveryStrategyConfig strategyConfig : config.getDiscoveryStrategyConfigs()) { DiscoveryStrategyConfigDTO dto = new DiscoveryStrategyConfigDTO(strategyConfig); strategies.add(dto.toJson()); } root.add("discoveryStrategy", strategies); return root; }
public List<DiscoveryStrategyConfig> getAllDiscoveryConfigs() { List<DiscoveryStrategyConfig> result = new ArrayList<DiscoveryStrategyConfig>(); result.addAll(discoveryConfig.getDiscoveryStrategyConfigs()); result.addAll(aliasedDiscoveryConfigs); return result; }
private boolean discoverySpiEnabled(ClientNetworkConfig networkConfig) { return (networkConfig.getDiscoveryConfig() != null && networkConfig.getDiscoveryConfig().isEnabled()) || Boolean.parseBoolean(properties.getString(DISCOVERY_SPI_ENABLED)); }
public DiscoveryService createDiscoveryService(DiscoveryConfig discoveryConfig, List<DiscoveryStrategyConfig> aliasedDiscoveryConfigs, Member localMember) { DiscoveryServiceProvider factory = discoveryConfig.getDiscoveryServiceProvider(); if (factory == null) { factory = new DefaultDiscoveryServiceProvider(); } ILogger logger = getLogger(DiscoveryService.class); DiscoveryServiceSettings settings = new DiscoveryServiceSettings() .setConfigClassLoader(configClassLoader) .setLogger(logger) .setDiscoveryMode(DiscoveryMode.Member) .setDiscoveryConfig(discoveryConfig) .setAliasedDiscoveryConfigs(aliasedDiscoveryConfigs) .setDiscoveryNode( new SimpleDiscoveryNode(localMember.getAddress(), localMember.getAttributes())); return factory.newDiscoveryService(settings); }
clientConfig.getNetworkConfig().getDiscoveryConfig().setDiscoveryServiceProvider(discoveryServiceProvider);
connectionManager = nodeContext.createConnectionManager(this, serverSocketChannel); JoinConfig joinConfig = this.config.getNetworkConfig().getJoin(); DiscoveryConfig discoveryConfig = joinConfig.getDiscoveryConfig().getAsReadOnly(); List<DiscoveryStrategyConfig> aliasedDiscoveryConfigs = AliasedDiscoveryConfigUtils.createDiscoveryStrategyConfigs(joinConfig);
private static void discovery(XmlGenerator gen, DiscoveryConfig discovery) { if (discovery.getNodeFilter() == null && discovery.getNodeFilterClass() == null && discovery.getDiscoveryStrategyConfigs().isEmpty()) { return; } gen.open("discovery-strategies") .node("node-filter", null, "class", classNameOrImplClass(discovery.getNodeFilterClass(), discovery.getNodeFilter())); for (DiscoveryStrategyConfig strategy : discovery.getDiscoveryStrategyConfigs()) { gen.open("discovery-strategy", "class", strategy.getClassName(), "enabled", true) .appendProperties(strategy.getProperties()) .close(); } gen.close(); }
private void handleDiscoveryStrategy(Node node, DiscoveryConfig discoveryConfig) { boolean enabled = false; String clazz = null; NamedNodeMap attributes = node.getAttributes(); for (int a = 0; a < attributes.getLength(); a++) { Node att = attributes.item(a); String value = getTextContent(att).trim(); if ("enabled".equals(lowerCaseInternal(att.getNodeName()))) { enabled = getBooleanValue(value); } else if ("class".equals(att.getNodeName())) { clazz = value; } } if (!enabled || clazz == null) { return; } Map<String, Comparable> properties = new HashMap<String, Comparable>(); for (Node child : childElements(node)) { String name = cleanNodeName(child); if ("properties".equals(name)) { fillProperties(child, properties); } } discoveryConfig.addDiscoveryStrategyConfig(new DiscoveryStrategyConfig(clazz, properties)); }
DiscoveryConfig dc = new DiscoveryConfig(); dc.setDiscoveryStrategyConfigs(Arrays.asList(dsc));
private NodeFilter getNodeFilter(DiscoveryServiceSettings settings) { DiscoveryConfig discoveryConfig = settings.getDiscoveryConfig(); ClassLoader configClassLoader = settings.getConfigClassLoader(); if (discoveryConfig.getNodeFilter() != null) { return discoveryConfig.getNodeFilter(); } if (discoveryConfig.getNodeFilterClass() != null) { try { ClassLoader cl = configClassLoader; if (cl == null) { cl = DefaultDiscoveryService.class.getClassLoader(); } String className = discoveryConfig.getNodeFilterClass(); return (NodeFilter) cl.loadClass(className).newInstance(); } catch (Exception e) { throw new RuntimeException("Failed to configure discovery node filter", e); } } return null; }
private DiscoveryService initDiscoveryService(ClientConfig config) { // Prevent confusing behavior where the DiscoveryService is started // and strategies are resolved but the AddressProvider is never registered List<DiscoveryStrategyConfig> aliasedDiscoveryConfigs = ClientAliasedDiscoveryConfigUtils.createDiscoveryStrategyConfigs(config); if (!properties.getBoolean(ClientProperty.DISCOVERY_SPI_ENABLED) && aliasedDiscoveryConfigs.isEmpty()) { return null; } ILogger logger = loggingService.getLogger(DiscoveryService.class); ClientNetworkConfig networkConfig = config.getNetworkConfig(); DiscoveryConfig discoveryConfig = networkConfig.getDiscoveryConfig().getAsReadOnly(); DiscoveryServiceProvider factory = discoveryConfig.getDiscoveryServiceProvider(); if (factory == null) { factory = new DefaultDiscoveryServiceProvider(); } DiscoveryServiceSettings settings = new DiscoveryServiceSettings() .setConfigClassLoader(config.getClassLoader()) .setLogger(logger) .setDiscoveryMode(DiscoveryMode.Client) .setAliasedDiscoveryConfigs(aliasedDiscoveryConfigs) .setDiscoveryConfig(discoveryConfig); DiscoveryService discoveryService = factory.newDiscoveryService(settings); discoveryService.start(); return discoveryService; }
public List<DiscoveryStrategyConfig> getAllDiscoveryConfigs() { List<DiscoveryStrategyConfig> result = new ArrayList<DiscoveryStrategyConfig>(); result.addAll(discoveryConfig.getDiscoveryStrategyConfigs()); result.addAll(aliasedDiscoveryConfigs); return result; }