package org.apereo.cas.configuration.model.core.ticket.registry; import org.apereo.cas.configuration.model.core.util.CryptographyProperties; import org.apereo.cas.configuration.model.support.couchbase.ticketregistry.CouchbaseTicketRegistryProperties; import org.apereo.cas.configuration.model.support.dynamodb.DynamoDbTicketRegistryProperties; import org.apereo.cas.configuration.model.support.ehcache.EhcacheProperties; import org.apereo.cas.configuration.model.support.hazelcast.HazelcastProperties; import org.apereo.cas.configuration.model.support.ignite.IgniteProperties; import org.apereo.cas.configuration.model.support.infinispan.InfinispanProperties; import org.apereo.cas.configuration.model.support.jpa.ticketregistry.JpaTicketRegistryProperties; import org.apereo.cas.configuration.model.support.memcached.MemcachedTicketRegistryProperties; import org.apereo.cas.configuration.model.support.mongo.ticketregistry.MongoTicketRegistryProperties; import org.apereo.cas.configuration.model.support.redis.RedisTicketRegistryProperties; import org.apereo.cas.configuration.support.Beans; import org.springframework.boot.context.properties.NestedConfigurationProperty; /** * This is {@link TicketRegistryProperties}. * * @author Misagh Moayyed * @since 5.0.0 */ public class TicketRegistryProperties { @NestedConfigurationProperty private DynamoDbTicketRegistryProperties dynamoDb = new DynamoDbTicketRegistryProperties(); @NestedConfigurationProperty private InfinispanProperties infinispan = new InfinispanProperties(); @NestedConfigurationProperty private CouchbaseTicketRegistryProperties couchbase = new CouchbaseTicketRegistryProperties(); @NestedConfigurationProperty private MongoTicketRegistryProperties mongo = new MongoTicketRegistryProperties(); @NestedConfigurationProperty private EhcacheProperties ehcache = new EhcacheProperties(); @NestedConfigurationProperty private HazelcastProperties hazelcast = new HazelcastProperties(); @NestedConfigurationProperty private IgniteProperties ignite = new IgniteProperties(); @NestedConfigurationProperty private JpaTicketRegistryProperties jpa = new JpaTicketRegistryProperties(); @NestedConfigurationProperty private MemcachedTicketRegistryProperties memcached = new MemcachedTicketRegistryProperties(); @NestedConfigurationProperty private RedisTicketRegistryProperties redis = new RedisTicketRegistryProperties(); private InMemory inMemory = new InMemory(); private Cleaner cleaner = new Cleaner(); public MongoTicketRegistryProperties getMongo() { return mongo; } public void setMongo(final MongoTicketRegistryProperties mongo) { this.mongo = mongo; } public InMemory getInMemory() { return inMemory; } public void setInMemory(final InMemory inMemory) { this.inMemory = inMemory; } public Cleaner getCleaner() { return cleaner; } public void setCleaner(final Cleaner cleaner) { this.cleaner = cleaner; } public CouchbaseTicketRegistryProperties getCouchbase() { return couchbase; } public void setCouchbase(final CouchbaseTicketRegistryProperties couchbase) { this.couchbase = couchbase; } public EhcacheProperties getEhcache() { return ehcache; } public void setEhcache(final EhcacheProperties ehcache) { this.ehcache = ehcache; } public HazelcastProperties getHazelcast() { return hazelcast; } public void setHazelcast(final HazelcastProperties hazelcast) { this.hazelcast = hazelcast; } public IgniteProperties getIgnite() { return ignite; } public void setIgnite(final IgniteProperties ignite) { this.ignite = ignite; } public JpaTicketRegistryProperties getJpa() { return jpa; } public void setJpa(final JpaTicketRegistryProperties jpa) { this.jpa = jpa; } public MemcachedTicketRegistryProperties getMemcached() { return memcached; } public void setMemcached(final MemcachedTicketRegistryProperties memcached) { this.memcached = memcached; } public InfinispanProperties getInfinispan() { return infinispan; } public void setInfinispan(final InfinispanProperties infinispan) { this.infinispan = infinispan; } public RedisTicketRegistryProperties getRedis() { return redis; } public void setRedis(final RedisTicketRegistryProperties redis) { this.redis = redis; } public DynamoDbTicketRegistryProperties getDynamoDb() { return dynamoDb; } public void setDynamoDb(final DynamoDbTicketRegistryProperties dynamoDb) { this.dynamoDb = dynamoDb; } public static class InMemory { private int initialCapacity = 1000; private int loadFactor = 1; private int concurrency = 20; @NestedConfigurationProperty private CryptographyProperties crypto = new CryptographyProperties(); public CryptographyProperties getCrypto() { return crypto; } public void setCrypto(final CryptographyProperties crypto) { this.crypto = crypto; } public int getInitialCapacity() { return initialCapacity; } public void setInitialCapacity(final int initialCapacity) { this.initialCapacity = initialCapacity; } public int getLoadFactor() { return loadFactor; } public void setLoadFactor(final int loadFactor) { this.loadFactor = loadFactor; } public int getConcurrency() { return concurrency; } public void setConcurrency(final int concurrency) { this.concurrency = concurrency; } } public static class Cleaner { private boolean enabled = true; private String startDelay = "PT10S"; private String repeatInterval = "PT1M"; private String appId = "cas-ticket-registry-cleaner"; public String getAppId() { return appId; } public void setAppId(final String appId) { this.appId = appId; } public boolean isEnabled() { return enabled; } public void setEnabled(final boolean enabled) { this.enabled = enabled; } public long getStartDelay() { return Beans.newDuration(startDelay).toMillis(); } public void setStartDelay(final String startDelay) { this.startDelay = startDelay; } public long getRepeatInterval() { return Beans.newDuration(repeatInterval).toMillis(); } public void setRepeatInterval(final String repeatInterval) { this.repeatInterval = repeatInterval; } } }