package org.infinispan.configuration.global; import org.infinispan.commons.configuration.attributes.Attribute; import org.infinispan.commons.configuration.attributes.AttributeDefinition; import org.infinispan.commons.configuration.attributes.AttributeSet; /** * * GlobalStateConfiguration. * * @author Tristan Tarrant * @since 8.1 */ public class GlobalStateConfiguration { public static final AttributeDefinition<Boolean> ENABLED = AttributeDefinition.builder("enabled", false).immutable() .build(); public static final AttributeDefinition<String> PERSISTENT_LOCATION = AttributeDefinition .builder("persistentLocation", null, String.class).initializer(() -> { return SecurityActions.getSystemProperty("user.dir"); }).immutable().build(); public static final AttributeDefinition<String> TEMPORARY_LOCATION = AttributeDefinition .builder("temporaryLocation", null, String.class).initializer(() -> { return SecurityActions.getSystemProperty("java.io.tmpdir"); }).immutable().build(); public static AttributeSet attributeDefinitionSet() { return new AttributeSet(GlobalStateConfiguration.class, ENABLED, PERSISTENT_LOCATION, TEMPORARY_LOCATION); } private final AttributeSet attributes; private final Attribute<Boolean> enabled; private Attribute<String> persistentLocation; private Attribute<String> temporaryLocation; public GlobalStateConfiguration(AttributeSet attributes) { this.attributes = attributes.checkProtection(); this.enabled = attributes.attribute(ENABLED); this.persistentLocation = attributes.attribute(PERSISTENT_LOCATION); this.temporaryLocation = attributes.attribute(TEMPORARY_LOCATION); } public boolean enabled() { return enabled.get(); } /** * Returns the filesystem path where persistent state data which needs to survive container * restarts should be stored. Defaults to the user.dir system property which usually is where the * application was started. */ public String persistentLocation() { return persistentLocation.get(); } /** * Returns the filesystem path where temporary state should be stored. Defaults to the value of * the java.io.tmpdir system property. */ public String temporaryLocation() { return temporaryLocation.get(); } public AttributeSet attributes() { return attributes; } @Override public String toString() { return "GlobalStateConfiguration [attributes=" + attributes + "]"; } }