package org.apereo.cas.configuration.model.support.ignite; import org.apereo.cas.configuration.model.core.util.CryptographyProperties; import org.apereo.cas.configuration.support.Beans; import org.springframework.boot.context.properties.NestedConfigurationProperty; import java.time.Duration; /** * This is {@link IgniteProperties}. * * @author Misagh Moayyed * @since 5.0.0 */ public class IgniteProperties { private String igniteAddresses = "localhost:47500"; private TicketsCache ticketsCache = new TicketsCache(); private String keyStoreType; private String keyStoreFilePath; private String keyStorePassword; private String trustStoreType; private String protocol; private String keyAlgorithm; private String trustStoreFilePath; private String trustStorePassword; private String heartbeatFrequency = "PT2S"; private String joinTimeout = "PT1S"; private String localAddress; private int localPort = -1; private String networkTimeout = "PT5S"; private String socketTimeout = "PT5S"; private int threadPriority = 10; private boolean forceServerMode; @NestedConfigurationProperty private CryptographyProperties crypto = new CryptographyProperties(); public long getHeartbeatFrequency() { return Duration.parse(heartbeatFrequency).toMillis(); } public void setHeartbeatFrequency(final String heartbeatFrequency) { this.heartbeatFrequency = heartbeatFrequency; } public long getJoinTimeout() { return Beans.newDuration(joinTimeout).toMillis(); } public void setJoinTimeout(final String joinTimeout) { this.joinTimeout = joinTimeout; } public String getLocalAddress() { return localAddress; } public void setLocalAddress(final String localAddress) { this.localAddress = localAddress; } public int getLocalPort() { return localPort; } public void setLocalPort(final int localPort) { this.localPort = localPort; } public long getNetworkTimeout() { return Beans.newDuration(networkTimeout).toMillis(); } public void setNetworkTimeout(final String networkTimeout) { this.networkTimeout = networkTimeout; } public long getSocketTimeout() { return Beans.newDuration(socketTimeout).toMillis(); } public void setSocketTimeout(final String socketTimeout) { this.socketTimeout = socketTimeout; } public int getThreadPriority() { return threadPriority; } public void setThreadPriority(final int threadPriority) { this.threadPriority = threadPriority; } public boolean isForceServerMode() { return forceServerMode; } public void setForceServerMode(final boolean forceServerMode) { this.forceServerMode = forceServerMode; } public CryptographyProperties getCrypto() { return crypto; } public void setCrypto(final CryptographyProperties crypto) { this.crypto = crypto; } public String getKeyStoreType() { return keyStoreType; } public void setKeyStoreType(final String keyStoreType) { this.keyStoreType = keyStoreType; } public String getKeyStoreFilePath() { return keyStoreFilePath; } public void setKeyStoreFilePath(final String keyStoreFilePath) { this.keyStoreFilePath = keyStoreFilePath; } public String getKeyStorePassword() { return keyStorePassword; } public void setKeyStorePassword(final String keyStorePassword) { this.keyStorePassword = keyStorePassword; } public String getTrustStoreType() { return trustStoreType; } public void setTrustStoreType(final String trustStoreType) { this.trustStoreType = trustStoreType; } public String getProtocol() { return protocol; } public void setProtocol(final String protocol) { this.protocol = protocol; } public String getKeyAlgorithm() { return keyAlgorithm; } public void setKeyAlgorithm(final String keyAlgorithm) { this.keyAlgorithm = keyAlgorithm; } public String getTrustStoreFilePath() { return trustStoreFilePath; } public void setTrustStoreFilePath(final String trustStoreFilePath) { this.trustStoreFilePath = trustStoreFilePath; } public String getTrustStorePassword() { return trustStorePassword; } public void setTrustStorePassword(final String trustStorePassword) { this.trustStorePassword = trustStorePassword; } public String getIgniteAddresses() { return igniteAddresses; } public void setIgniteAddresses(final String igniteAddresses) { this.igniteAddresses = igniteAddresses; } public TicketsCache getTicketsCache() { return ticketsCache; } public void setTicketsCache(final TicketsCache ticketsCache) { this.ticketsCache = ticketsCache; } public static class TicketsCache { private String cacheName = "TicketsCache"; private String cacheMode = "REPLICATED"; private String atomicityMode = "TRANSACTIONAL"; private String writeSynchronizationMode = "FULL_SYNC"; public String getCacheName() { return cacheName; } public void setCacheName(final String cacheName) { this.cacheName = cacheName; } public String getCacheMode() { return cacheMode; } public void setCacheMode(final String cacheMode) { this.cacheMode = cacheMode; } public String getAtomicityMode() { return atomicityMode; } public void setAtomicityMode(final String atomicityMode) { this.atomicityMode = atomicityMode; } public String getWriteSynchronizationMode() { return writeSynchronizationMode; } public void setWriteSynchronizationMode(final String writeSynchronizationMode) { this.writeSynchronizationMode = writeSynchronizationMode; } } }