Skip to content
Permalink
Browse files

Expose setValue(...) to all protocol configurators.

  • Loading branch information
pferraro committed Mar 25, 2019
1 parent ace56a8 commit 6c5d487bb7ead6b61a4f74617d1608450bc5cde2
@@ -26,6 +26,7 @@
import static org.jboss.as.clustering.jgroups.subsystem.AbstractProtocolResourceDefinition.Attribute.PROPERTIES;
import static org.jboss.as.clustering.jgroups.subsystem.AbstractProtocolResourceDefinition.Attribute.STATISTICS_ENABLED;

import java.security.PrivilegedAction;
import java.security.PrivilegedExceptionAction;
import java.util.Collections;
import java.util.HashMap;
@@ -130,4 +131,14 @@ public final P createProtocol(ProtocolStackConfiguration stackConfiguration) {
throw new IllegalArgumentException(e);
}
}

void setValue(P protocol, String propertyName, Object propertyValue) {
PrivilegedAction<P> action = new PrivilegedAction<P>() {
@Override
public P run() {
return protocol.setValue(propertyName, propertyValue);
}
};
WildFlySecurityManager.doUnchecked(action);
}
}
@@ -26,7 +26,6 @@

import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@@ -43,12 +42,10 @@
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceBuilder;
import org.jgroups.protocols.Discovery;
import org.jgroups.stack.Protocol;
import org.wildfly.clustering.service.Dependency;
import org.wildfly.clustering.service.ServiceConfigurator;
import org.wildfly.clustering.service.ServiceSupplierDependency;
import org.wildfly.clustering.service.SupplierDependency;
import org.wildfly.security.manager.WildFlySecurityManager;

/**
* @author Paul Ferraro
@@ -93,8 +90,7 @@ public void accept(P protocol) {
}
}
// In the absence of some common interface, we need to use reflection
PrivilegedAction<Protocol> action = () -> protocol.setValue("initial_hosts", initialHosts);
WildFlySecurityManager.doUnchecked(action);
this.setValue(protocol, "initial_hosts", initialHosts);
}
}
}
@@ -145,8 +145,8 @@ public void accept(T protocol) {
// JGroups cannot select a client mapping based on the source address, so just use the first one
ClientMapping mapping = clientMappings.get(0);
try {
protocol.setValue("external_addr", InetAddress.getByName(mapping.getDestinationAddress()));
protocol.setValue("external_port", mapping.getDestinationPort());
this.setValue(protocol, "external_addr", InetAddress.getByName(mapping.getDestinationAddress()));
this.setValue(protocol, "external_port", mapping.getDestinationPort());
} catch (UnknownHostException e) {
throw new IllegalArgumentException(e);
}
@@ -164,11 +164,11 @@ public void accept(T protocol) {
;
protocol.setInternalThreadPool(factory.apply(protocol.getInternalThreadPoolThreadFactory()));

protocol.setValue("enable_diagnostics", this.diagnosticsSocketBinding != null);
this.setValue(protocol, "enable_diagnostics", this.diagnosticsSocketBinding != null);
if (this.diagnosticsSocketBinding != null) {
InetSocketAddress address = this.diagnosticsSocketBinding.get().getSocketAddress();
protocol.setValue("diagnostics_addr", address.getAddress());
protocol.setValue("diagnostics_port", address.getPort());
this.setValue(protocol, "diagnostics_addr", address.getAddress());
this.setValue(protocol, "diagnostics_port", address.getPort());
}
}

0 comments on commit 6c5d487

Please sign in to comment.
You can’t perform that action at this time.