package org.apereo.cas.configuration.model.support.hazelcast;
import org.apereo.cas.configuration.model.core.util.CryptographyProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.core.io.Resource;
import java.util.Arrays;
import java.util.List;
/**
* Encapsulates hazelcast properties exposed by CAS via properties file property source in a type-safe manner.
*
* @author Dmitriy Kopylenko
* @since 4.2.0
*/
public class HazelcastProperties {
/**
* Logging type property name.
*/
public static final String LOGGING_TYPE_PROP = "hazelcast.logging.type";
/**
* Max num of seconds for heartbeat property name.
*/
public static final String MAX_HEARTBEAT_SECONDS_PROP = "hazelcast.max.no.heartbeat.seconds";
private int pageSize = 500;
private Resource configLocation;
private Cluster cluster = new Cluster();
@NestedConfigurationProperty
private CryptographyProperties crypto = new CryptographyProperties();
public CryptographyProperties getCrypto() {
return crypto;
}
public void setCrypto(final CryptographyProperties crypto) {
this.crypto = crypto;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(final int pageSize) {
this.pageSize = pageSize;
}
public Resource getConfigLocation() {
return configLocation;
}
public void setConfigLocation(final Resource configLocation) {
this.configLocation = configLocation;
}
public Cluster getCluster() {
return cluster;
}
public void setCluster(final Cluster cluster) {
this.cluster = cluster;
}
public static class Cluster {
private String loggingType = "slf4j";
private int maxNoHeartbeatSeconds = 300;
private String instanceName = "localhost";
private boolean portAutoIncrement = true;
private int port = 5701;
private boolean multicastEnabled;
private boolean tcpipEnabled = true;
private List<String> members = Arrays.asList("localhost");
private int maxHeapSizePercentage = 85;
private String maxSizePolicy = "USED_HEAP_PERCENTAGE";
private String evictionPolicy = "LRU";
private int backupCount = 1;
private int asyncBackupCount;
private int timeout = 5;
private boolean ipv4Enabled = true;
private String multicastTrustedInterfaces;
private String multicastGroup;
private int multicastPort;
private int multicastTimeout = 2;
private int multicastTimeToLive = 32;
public int getBackupCount() {
return backupCount;
}
public void setBackupCount(final int backupCount) {
this.backupCount = backupCount;
}
public int getAsyncBackupCount() {
return asyncBackupCount;
}
public void setAsyncBackupCount(final int asyncBackupCount) {
this.asyncBackupCount = asyncBackupCount;
}
public String getLoggingType() {
return loggingType;
}
public void setLoggingType(final String loggingType) {
this.loggingType = loggingType;
}
public int getMaxNoHeartbeatSeconds() {
return maxNoHeartbeatSeconds;
}
public void setMaxNoHeartbeatSeconds(final int maxNoHeartbeatSeconds) {
this.maxNoHeartbeatSeconds = maxNoHeartbeatSeconds;
}
public String getInstanceName() {
return instanceName;
}
public void setInstanceName(final String instanceName) {
this.instanceName = instanceName;
}
public boolean isPortAutoIncrement() {
return portAutoIncrement;
}
public void setPortAutoIncrement(final boolean portAutoIncrement) {
this.portAutoIncrement = portAutoIncrement;
}
public int getPort() {
return port;
}
public void setPort(final int port) {
this.port = port;
}
public boolean isMulticastEnabled() {
return multicastEnabled;
}
public void setMulticastEnabled(final boolean multicastEnabled) {
this.multicastEnabled = multicastEnabled;
}
public boolean isTcpipEnabled() {
return tcpipEnabled;
}
public void setTcpipEnabled(final boolean tcpipEnabled) {
this.tcpipEnabled = tcpipEnabled;
}
public List<String> getMembers() {
return members;
}
public void setMembers(final List<String> members) {
this.members = members;
}
public int getMaxHeapSizePercentage() {
return maxHeapSizePercentage;
}
public void setMaxHeapSizePercentage(final int maxHeapSizePercentage) {
this.maxHeapSizePercentage = maxHeapSizePercentage;
}
public String getMaxSizePolicy() {
return maxSizePolicy;
}
public void setMaxSizePolicy(final String maxSizePolicy) {
this.maxSizePolicy = maxSizePolicy;
}
public String getEvictionPolicy() {
return evictionPolicy;
}
public void setEvictionPolicy(final String evictionPolicy) {
this.evictionPolicy = evictionPolicy;
}
public String getMulticastTrustedInterfaces() {
return multicastTrustedInterfaces;
}
public void setMulticastTrustedInterfaces(final String multicastTrustedInterfaces) {
this.multicastTrustedInterfaces = multicastTrustedInterfaces;
}
public String getMulticastGroup() {
return multicastGroup;
}
public void setMulticastGroup(final String multicastGroup) {
this.multicastGroup = multicastGroup;
}
public int getMulticastPort() {
return multicastPort;
}
public void setMulticastPort(final int multicastPort) {
this.multicastPort = multicastPort;
}
public int getMulticastTimeout() {
return multicastTimeout;
}
public void setMulticastTimeout(final int multicastTimeout) {
this.multicastTimeout = multicastTimeout;
}
public int getMulticastTimeToLive() {
return multicastTimeToLive;
}
public void setMulticastTimeToLive(final int multicastTimeToLive) {
this.multicastTimeToLive = multicastTimeToLive;
}
public int getTimeout() {
return timeout;
}
public void setTimeout(final int timeout) {
this.timeout = timeout;
}
public boolean isIpv4Enabled() {
return ipv4Enabled;
}
public void setIpv4Enabled(final boolean ipv4Enabled) {
this.ipv4Enabled = ipv4Enabled;
}
}
}