@Override public ProtocolDefaults get() { ProtocolStackConfigurator configurator = load(ProtocolDefaultsServiceConfigurator.this.resource); try { for (org.jgroups.conf.ProtocolConfiguration config: configurator.getProtocolStack()) { String protocolClassName = String.join(".", org.jgroups.conf.ProtocolConfiguration.protocol_prefix, config.getProtocolName()); Class<? extends Protocol> protocolClass = Protocol.class.getClassLoader().loadClass(protocolClassName).asSubclass(Protocol.class); this.map.put(protocolClass, Collections.unmodifiableMap(config.getProperties())); } return this; } catch (ClassNotFoundException e) { throw new IllegalArgumentException(e); } }
private static String dump(Collection<ProtocolConfiguration> configs) { StringBuilder sb=new StringBuilder(); String indent=" "; sb.append("<config>\n"); for(ProtocolConfiguration cfg: configs) { sb.append(indent).append("<").append(cfg.getProtocolName()); Map<String,String> props=cfg.getProperties(); if(props.isEmpty()) { sb.append(" />\n"); } else { sb.append("\n").append(indent).append(indent); for(Map.Entry<String,String> entry: props.entrySet()) { String key=entry.getKey(); String val=entry.getValue(); key=trim(key); val=trim(val); sb.append(key).append("=\"").append(val).append("\" "); } sb.append(" />\n"); } } sb.append("</config>\n"); return sb.toString(); }
protected static Protocol createLayer(ProtocolStack stack, ProtocolConfiguration config) throws Exception { String protocol_name=config.getProtocolName(); Map<String, String> properties=new HashMap<>(config.getProperties()); Protocol retval=null;
private void configureMulticastSocket(ProtocolConfiguration protocol, org.jgroups.conf.ProtocolConfiguration config, String addressProperty, String portProperty, SocketBinding binding) { try { InetSocketAddress mcastSocketAddress = binding.getMulticastSocketAddress(); this.setPropertyNoOverride(protocol, config, addressProperty, mcastSocketAddress.getAddress().getHostAddress()); this.setPropertyNoOverride(protocol, config, portProperty, String.valueOf(mcastSocketAddress.getPort())); } catch (IllegalStateException e) { ROOT_LOGGER.couldNotSetAddressAndPortNoMulticastSocket(e, config.getProtocolName(), addressProperty, config.getProtocolName(), portProperty, binding.getName()); } }
private static void configureMulticastSocket(Introspector introspector, org.jgroups.conf.ProtocolConfiguration config, String addressProperty, String portProperty, SocketBinding binding) { try { InetSocketAddress mcastSocketAddress = binding.getMulticastSocketAddress(); setSocketBindingProperty(introspector, config, addressProperty, mcastSocketAddress.getAddress().getHostAddress()); setSocketBindingProperty(introspector, config, portProperty, String.valueOf(mcastSocketAddress.getPort())); } catch (IllegalStateException e) { ROOT_LOGGER.couldNotSetAddressAndPortNoMulticastSocket(e, config.getProtocolName(), addressProperty, config.getProtocolName(), portProperty, binding.getName()); } }
@Override public ProtocolDefaults get() { ProtocolStackConfigurator configurator = load(ProtocolDefaultsServiceConfigurator.this.resource); try { for (org.jgroups.conf.ProtocolConfiguration config: configurator.getProtocolStack()) { String protocolClassName = String.join(".", org.jgroups.conf.ProtocolConfiguration.protocol_prefix, config.getProtocolName()); Class<? extends Protocol> protocolClass = Protocol.class.getClassLoader().loadClass(protocolClassName).asSubclass(Protocol.class); this.map.put(protocolClass, Collections.unmodifiableMap(config.getProperties())); } return this; } catch (ClassNotFoundException e) { throw new IllegalArgumentException(e); } }
private static void setSocketBindingProperty(Introspector introspector, org.jgroups.conf.ProtocolConfiguration config, String name, String value) { try { Map<String, String> properties = config.getOriginalProperties(); if (properties.containsKey(name)) { ROOT_LOGGER.unableToOverrideSocketBindingValue(name, config.getProtocolName(), value, properties.get(name)); } setProperty(introspector, config, name, value); } catch (Exception e) { ROOT_LOGGER.unableToAccessProtocolPropertyValue(e, name, config.getProtocolName()); } }
/** * {@inheritDoc} * @see org.jboss.msc.value.Value#getValue() */ @Override public ProtocolDefaults getValue() { ProtocolStackConfigurator configurator = load(ProtocolDefaultsBuilder.this.resource); for (org.jgroups.conf.ProtocolConfiguration config: configurator.getProtocolStack()) { this.map.put(config.getProtocolName(), Collections.unmodifiableMap(config.getProperties())); } return this; }
private static String dump(Collection<ProtocolConfiguration> configs) { StringBuilder sb=new StringBuilder(); String indent=" "; sb.append("<config>\n"); for(ProtocolConfiguration cfg: configs) { sb.append(indent).append("<").append(cfg.getProtocolName()); Map<String,String> props=cfg.getProperties(); if(props.isEmpty()) { sb.append(" />\n"); } else { sb.append("\n").append(indent).append(indent); for(Map.Entry<String,String> entry: props.entrySet()) { String key=entry.getKey(); String val=entry.getValue(); key=trim(key); val=trim(val); sb.append(key).append("=\"").append(val).append("\" "); } sb.append(" />\n"); } } sb.append("</config>\n"); return sb.toString(); }
Introspector(org.jgroups.conf.ProtocolConfiguration config) { String name = config.getProtocolName(); try { this.protocolClass = config.getClassLoader().loadClass(name).asSubclass(Protocol.class); PrivilegedAction<Void> action = () -> { Class<?> targetClass = Introspector.this.protocolClass; while (Protocol.class.isAssignableFrom(targetClass)) { for (Method method: targetClass.getDeclaredMethods()) { if (method.isAnnotationPresent(Property.class)) { String property = method.getAnnotation(Property.class).name(); if (!property.isEmpty()) { Introspector.this.properties.add(property); } } } for (Field field: targetClass.getDeclaredFields()) { if (field.isAnnotationPresent(Property.class)) { String property = field.getAnnotation(Property.class).name(); Introspector.this.properties.add(!property.isEmpty() ? property : field.getName()); } } targetClass = targetClass.getSuperclass(); } return null; }; WildFlySecurityManager.doChecked(action); } catch (ClassNotFoundException e) { throw new IllegalArgumentException(e); } }
static List<ProtocolConfiguration> copy(List<ProtocolConfiguration> protocols) { // Make a safe copy of the protocol stack to avoid concurrent modification issues List<ProtocolConfiguration> copy = new ArrayList<ProtocolConfiguration>(protocols.size()); for (ProtocolConfiguration p : protocols) copy.add(new ProtocolConfiguration( p.getProtocolName(), immutableMapCopy(p.getProperties()))); return copy; } }
private static JGroupsProtocolCfg getJGroupsProtocolCfg(List<ProtocolConfiguration> baseStack) { JGroupsXmxlConfigurator configurator = new JGroupsXmxlConfigurator(baseStack); List<ProtocolConfiguration> protoStack = configurator.getProtocolStack(); Map<ProtocolType, ProtocolConfiguration> protoMap = new HashMap<ProtocolType, ProtocolConfiguration>(protoStack.size()); for (ProtocolConfiguration cfg : protoStack) protoMap.put(getProtocolType(cfg.getProtocolName()), cfg); return new JGroupsProtocolCfg(protoMap, configurator); }
/** * {@inheritDoc} * @see org.jboss.msc.service.Service#start(org.jboss.msc.service.StartContext) */ @Override public void start(final StartContext context) throws StartException { ProtocolStackConfigurator configurator = load(ProtocolDefaultsService.this.resource); Defaults defaults = new Defaults(); for (org.jgroups.conf.ProtocolConfiguration config: configurator.getProtocolStack()) { defaults.add(config.getProtocolName(), config.getProperties()); } ProtocolDefaultsService.this.defaults = defaults; }
protected static Protocol createLayer(ProtocolStack stack, ProtocolConfiguration config) throws Exception { String protocol_name=config.getProtocolName(); Map<String, String> properties=new HashMap<>(config.getProperties()); Protocol retval=null;
private static String replaceProperties( JGroupsProtocolCfg cfg, Map<String, String> newProps, ProtocolType type) { ProtocolConfiguration protocol = cfg.getProtocol(type); ProtocolConfiguration newProtocol = new ProtocolConfiguration(protocol.getProtocolName(), newProps); cfg.replaceProtocol(type, newProtocol); return cfg.toString(); }
assertEquals("UDP", udpConfiguration.getProtocolName()); udpConfiguration.getProperties().put("mcast_addr", "224.0.0.15"); udpConfiguration.getProperties().put("thread_pool.min_threads", "0"); udpConfiguration.getProperties().put("thread_pool.max_threads", String.valueOf(JGROUPS_MAX_THREADS)); ProtocolConfiguration gmsConfiguration = configurator.getProtocolStack().get(9); assertEquals("pbcast.GMS", gmsConfiguration.getProtocolName()); gmsConfiguration.getProperties().put("join_timeout", "5000");