Skip to content

Commit

Permalink
Payara 2519 payara 2520 payara 2521 (#2450)
Browse files Browse the repository at this point in the history
* PAYARA-2519-PAYARA-2520-PAYARA-2521 Fix PAYARA-2519 and PAYARA-2520

* PAYARA-2519-PAYARA-2520-PAYARA-2521 fix PAYARA-2521
  • Loading branch information
smillidge authored and arjantijms committed Feb 26, 2018
1 parent 81535e8 commit cfe290a
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 69 deletions.
Expand Up @@ -103,67 +103,63 @@ public void execute(AdminCommandContext context) {

HazelcastRuntimeConfiguration runtimeConfiguration = domain.getExtensionByType(HazelcastRuntimeConfiguration.class);
final ActionReport actionReport = context.getActionReport();
String headers[] = {"Configuration File","Enabled","Start Port","MulticastGroup","MulticastPort","JNDIName","Lite Member",
"Cluster Name","Cluster Password", "License Key", "Host Aware Partitioning","Das Public Address","DAS Bind Address","Das Port","Tcpip Members",
"Cluster Mode", "Member Name", "Member Group", "Interfaces", "Cache Manager JNDI Name", "Caching Provider JNDI Name",
"Executor Pool Size", "Executor Queue Capacity", "Scheduled Executor Pool Size", "Scheduled Executor Queue Capacity"};
ColumnFormatter columnFormatter = new ColumnFormatter(headers);
Object values[] = new Object[25];
values[0] = runtimeConfiguration.getHazelcastConfigurationFile();
values[1] = nodeConfiguration.getEnabled();
values[2] = runtimeConfiguration.getStartPort();
values[3] = runtimeConfiguration.getMulticastGroup();
values[4] = runtimeConfiguration.getMulticastPort();
values[5] = nodeConfiguration.getJNDIName();
values[6] = nodeConfiguration.getLite();
values[7] = runtimeConfiguration.getClusterGroupName();
values[8] = runtimeConfiguration.getClusterGroupPassword();
values[9] = runtimeConfiguration.getLicenseKey();
values[10] = runtimeConfiguration.getHostAwarePartitioning();
values[11] = runtimeConfiguration.getDASPublicAddress();
values[12] = runtimeConfiguration.getDASBindAddress();
values[13] = runtimeConfiguration.getDasPort();
values[14] = runtimeConfiguration.getTcpipMembers();
values[15] = runtimeConfiguration.getDiscoveryMode();
values[16] = nodeConfiguration.getMemberName();
values[17] = nodeConfiguration.getMemberGroup();
values[18] = runtimeConfiguration.getInterface();
values[19] = nodeConfiguration.getCacheManagerJNDIName();
values[20] = nodeConfiguration.getCachingProviderJNDIName();
values[21] = nodeConfiguration.getExecutorPoolSize();
values[22] = nodeConfiguration.getExecutorQueueCapacity();
values[23] = nodeConfiguration.getScheduledExecutorPoolSize();
values[24] = nodeConfiguration.getScheduledExecutorQueueCapacity();
StringBuilder builder = new StringBuilder();
String headers[] = {"Property Name","PropertyValue","Scope"};

columnFormatter.addRow(values);
ColumnFormatter columnFormatter = new ColumnFormatter(headers);
columnFormatter.addRow(new Object[]{"Configuration File",runtimeConfiguration.getHazelcastConfigurationFile(),"Domain"});
columnFormatter.addRow(new Object[]{"Interfaces",runtimeConfiguration.getInterface(),"Domain"});
columnFormatter.addRow(new Object[]{"Start Port",runtimeConfiguration.getStartPort(),"Domain"});
columnFormatter.addRow(new Object[]{"Cluster Name",runtimeConfiguration.getClusterGroupName(),"Domain"});
columnFormatter.addRow(new Object[]{"Cluster Password",runtimeConfiguration.getClusterGroupPassword(),"Domain"});
columnFormatter.addRow(new Object[]{"License Key",runtimeConfiguration.getLicenseKey(),"Domain"});
columnFormatter.addRow(new Object[]{"Host Aware Partitioning",runtimeConfiguration.getHostAwarePartitioning(),"Domain"});
columnFormatter.addRow(new Object[]{"DAS Public Address",runtimeConfiguration.getDASPublicAddress(),"Domain"});
columnFormatter.addRow(new Object[]{"DAS Bind Address",runtimeConfiguration.getDASBindAddress(),"Domain"});
columnFormatter.addRow(new Object[]{"DAS Port",runtimeConfiguration.getDasPort(),"Domain"});
columnFormatter.addRow(new Object[]{"Cluster Mode",runtimeConfiguration.getDiscoveryMode(),"Domain"});
columnFormatter.addRow(new Object[]{"Tcpip Members",runtimeConfiguration.getTcpipMembers(),"Domain"});
columnFormatter.addRow(new Object[]{"MulticastGroup",runtimeConfiguration.getMulticastGroup(),"Domain"});
columnFormatter.addRow(new Object[]{"MulticastPort",runtimeConfiguration.getMulticastPort(),"Domain"});
columnFormatter.addRow(new Object[]{"Enabled",nodeConfiguration.getEnabled(),"Config"});
columnFormatter.addRow(new Object[]{"JNDIName",nodeConfiguration.getJNDIName(),"Config"});
columnFormatter.addRow(new Object[]{"Cache Manager JNDI Name",nodeConfiguration.getCacheManagerJNDIName(),"Config"});
columnFormatter.addRow(new Object[]{"Caching Provider JNDI Name",nodeConfiguration.getCachingProviderJNDIName(),"Config"});
columnFormatter.addRow(new Object[]{"Lite Member",nodeConfiguration.getLite(),"Config"});
columnFormatter.addRow(new Object[]{"Member Name",nodeConfiguration.getMemberName(),"Config"});
columnFormatter.addRow(new Object[]{"Member Group",nodeConfiguration.getMemberGroup(),"Config"});
columnFormatter.addRow(new Object[]{"Executor Pool Size",nodeConfiguration.getExecutorPoolSize(),"Config"});
columnFormatter.addRow(new Object[]{"Executor Queue Capacity",nodeConfiguration.getExecutorQueueCapacity(),"Config"});
columnFormatter.addRow(new Object[]{"Scheduled Executor Pool Size",nodeConfiguration.getScheduledExecutorPoolSize(),"Config"});
columnFormatter.addRow(new Object[]{"Scheduled Executor Queue Capacity",nodeConfiguration.getScheduledExecutorQueueCapacity(),"Config"});

Map<String, Object> map = new HashMap<>(25);
Properties extraProps = new Properties();
map.put("hazelcastConfigurationFile", values[0]);
map.put("enabled", values[1]);
map.put("startPort", values[2]);
map.put("multicastGroup", values[3]);
map.put("multicastPort", values[4]);
map.put("jndiName", values[5]);
map.put("lite", values[6]);
map.put("clusterName", values[7]);
map.put("clusterPassword", values[8]);
map.put("licenseKey", values[9]);
map.put("hostAwarePartitioning", values[10]);
map.put("dasPublicAddress", values[11]);
map.put("dasBindAddress", values[12]);
map.put("dasPort", values[13]);
map.put("tcpipMembers", values[14]);
map.put("clusterMode", values[15]);
map.put("memberName", values[16]);
map.put("memberGroup", values[17]);
map.put("interfaces", values[18]);
map.put("cacheManagerJndiName", values[19]);
map.put("cachingProviderJndiName", values[20]);
map.put("executorPoolSize", values[21]);
map.put("executorQueueCapacity", values[22]);
map.put("scheduledExecutorPoolSize", values[23]);
map.put("scheduledExecutorQueueCapacity", values[24]);
map.put("hazelcastConfigurationFile", runtimeConfiguration.getHazelcastConfigurationFile());
map.put("enabled", nodeConfiguration.getEnabled());
map.put("startPort", runtimeConfiguration.getStartPort());
map.put("multicastGroup", runtimeConfiguration.getMulticastGroup());
map.put("multicastPort", runtimeConfiguration.getMulticastPort());
map.put("jndiName", nodeConfiguration.getJNDIName());
map.put("lite", nodeConfiguration.getLite());
map.put("clusterName", runtimeConfiguration.getClusterGroupName());
map.put("clusterPassword", runtimeConfiguration.getClusterGroupPassword());
map.put("licenseKey", runtimeConfiguration.getLicenseKey());
map.put("hostAwarePartitioning", runtimeConfiguration.getHostAwarePartitioning());
map.put("dasPublicAddress", runtimeConfiguration.getDASPublicAddress());
map.put("dasBindAddress", runtimeConfiguration.getDASBindAddress());
map.put("dasPort", runtimeConfiguration.getDasPort());
map.put("tcpipMembers", runtimeConfiguration.getTcpipMembers());
map.put("clusterMode", runtimeConfiguration.getDiscoveryMode());
map.put("memberName", nodeConfiguration.getMemberName());
map.put("memberGroup", nodeConfiguration.getMemberGroup());
map.put("interfaces", runtimeConfiguration.getInterface());
map.put("cacheManagerJndiName", nodeConfiguration.getCacheManagerJNDIName());
map.put("cachingProviderJndiName", nodeConfiguration.getCachingProviderJNDIName());
map.put("executorPoolSize", nodeConfiguration.getExecutorPoolSize());
map.put("executorQueueCapacity", nodeConfiguration.getExecutorQueueCapacity());
map.put("scheduledExecutorPoolSize", nodeConfiguration.getScheduledExecutorPoolSize());
map.put("scheduledExecutorQueueCapacity", nodeConfiguration.getScheduledExecutorQueueCapacity());

extraProps.put("getHazelcastConfiguration",map);

Expand Down
Expand Up @@ -49,6 +49,7 @@
import java.beans.PropertyVetoException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Level;
Expand All @@ -72,6 +73,7 @@
import org.glassfish.hk2.api.PerLookup;
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.internal.api.Target;
import org.glassfish.internal.deployment.DeploymentTargetResolver;
import org.jvnet.hk2.annotations.Service;
import org.jvnet.hk2.config.ConfigSupport;
import org.jvnet.hk2.config.SingleConfigCode;
Expand All @@ -93,7 +95,7 @@
path = "set-hazelcast-configuration",
description = "Set Hazelcast Configuration")
})
public class SetHazelcastConfiguration implements AdminCommand {
public class SetHazelcastConfiguration implements AdminCommand, DeploymentTargetResolver {

@Inject
protected Logger logger;
Expand All @@ -107,10 +109,10 @@ public class SetHazelcastConfiguration implements AdminCommand {
@Inject
private Target targetUtil;

@Param(name = "target", optional = true, defaultValue = SystemPropertyConstants.DAS_SERVER_NAME)
@Param(name = "target", optional = true, defaultValue = "domain")
String target;

@Param(name = "enabled", optional = false)
@Param(name = "enabled", optional = true)
private Boolean enabled;

@Param(name = "dynamic", optional = true, defaultValue = "false")
Expand All @@ -131,7 +133,7 @@ public class SetHazelcastConfiguration implements AdminCommand {
@Param(name = "dasPort", optional = true)
private String dasPort;

@Param(name = "clusterMode", optional = true)
@Param(name = "clusterMode", optional = true, acceptableValues = "domain,multicast,tcpip")
private String clusterMode;

@Param(name = "tcpIpMembers", optional = true)
Expand Down Expand Up @@ -176,10 +178,10 @@ public class SetHazelcastConfiguration implements AdminCommand {
@Param(name = "licenseKey", shortName = "lk", optional = true)
private String licenseKey;

@Param(name = "lite", optional = true, defaultValue = "false")
@Param(name = "lite", optional = true)
private Boolean lite;

@Param(name = "hostawarePartitioning", optional = true, defaultValue = "false")
@Param(name = "hostawarePartitioning", optional = true)
private Boolean hostawarePartitioning;

@Param(name = "memberName", optional = true)
Expand All @@ -199,7 +201,6 @@ public void execute(AdminCommandContext context) {

final AdminCommandContext theContext = context;
final ActionReport actionReport = context.getActionReport();
Config config = targetUtil.getConfig(target);
Properties extraProperties = actionReport.getExtraProperties();
if (extraProperties == null) {
extraProperties = new Properties();
Expand Down Expand Up @@ -267,10 +268,18 @@ public Object run(final HazelcastRuntimeConfiguration hazelcastRuntimeConfigurat

}, hazelcastRuntimeConfiguration);

// get the local config to be applied to
// get the configs that need the change applied if target is domain it is all configs
Config config = targetUtil.getConfig(target);
List<Config> configsToApply = new ArrayList<>(5);
if (config == null && target.equals("domain")) {
configsToApply.addAll(domain.getConfigs().getConfig());
} else if (config != null) {
configsToApply.add(config);
}

if (config != null) {
HazelcastConfigSpecificConfiguration nodeConfiguration = config.getExtensionByType(HazelcastConfigSpecificConfiguration.class);
for(Config configToApply : configsToApply) {

HazelcastConfigSpecificConfiguration nodeConfiguration = configToApply.getExtensionByType(HazelcastConfigSpecificConfiguration.class);

ConfigSupport.apply(new SingleConfigCode<HazelcastConfigSpecificConfiguration>() {
@Override
Expand Down Expand Up @@ -322,13 +331,19 @@ public Object run(final HazelcastConfigSpecificConfiguration hazelcastRuntimeCon
}

if (dynamic) {
boolean isEnabled = false;
if (enabled != null) {
isEnabled = enabled;
} else {
isEnabled = hazelcast.isEnabled();
}
// this command runs on all instances so they can update their configuration.
if ("domain".equals(target)) {
hazelcast.setEnabled(enabled);
hazelcast.setEnabled(isEnabled);
} else {
for (Server targetServer : targetUtil.getInstances(target) ) {
if (server.getInstanceName().equals(targetServer.getName())) {
hazelcast.setEnabled(enabled);
hazelcast.setEnabled(isEnabled);
}
}
}
Expand Down Expand Up @@ -404,4 +419,13 @@ private boolean validate(ActionReport actionReport) {

return true;
}

@Override
public String getTarget(ParameterMap pm) {
String result = pm.getOne("target");
if (result == null) {
result = target;
}
return result;
}
}

0 comments on commit cfe290a

Please sign in to comment.