Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Payara 2519 payara 2520 payara 2521 #2450

Merged
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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;
}
}