org.infinispan.configuration.global.GlobalStateConfigurationBuilder Maven / Gradle / Ivy
package org.infinispan.configuration.global;
import static org.infinispan.configuration.global.GlobalStateConfiguration.ENABLED;
import static org.infinispan.configuration.global.GlobalStateConfiguration.PERSISTENT_LOCATION;
import static org.infinispan.configuration.global.GlobalStateConfiguration.TEMPORARY_LOCATION;
import java.lang.invoke.MethodHandles;
import org.infinispan.commons.configuration.Builder;
import org.infinispan.commons.configuration.attributes.AttributeSet;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
/**
* GlobalStateConfigurationBuilder. Configures filesystem paths where global state is stored.
*
* @author Tristan Tarrant
* @since 8.1
*/
public class GlobalStateConfigurationBuilder extends AbstractGlobalConfigurationBuilder
implements Builder {
private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass());
private final AttributeSet attributes;
GlobalStateConfigurationBuilder(GlobalConfigurationBuilder globalConfig) {
super(globalConfig);
attributes = GlobalStateConfiguration.attributeDefinitionSet();
}
public GlobalStateConfigurationBuilder enable() {
return enabled(true);
}
public GlobalStateConfigurationBuilder disable() {
return enabled(false);
}
/**
* Enables or disables the storage of global state.
*/
public GlobalStateConfigurationBuilder enabled(boolean enabled) {
attributes.attribute(ENABLED).set(enabled);
return this;
}
public boolean enabled() {
return attributes.attribute(ENABLED).get();
}
/**
* Defines the filesystem path where persistent state data which needs to survive container restarts
* should be stored. The data stored at this location is required for graceful
shutdown and restore. Defaults to the user.dir system property which usually is where the
* application was started. This value should be overridden to a more appropriate location.
*/
public GlobalStateConfigurationBuilder persistentLocation(String location) {
attributes.attribute(PERSISTENT_LOCATION).set(location);
return this;
}
/**
* Defines the filesystem path where temporary state should be stored. Defaults to the value of the
* java.io.tmpdir system property.
*/
public GlobalStateConfigurationBuilder temporaryLocation(String location) {
attributes.attribute(TEMPORARY_LOCATION).set(location);
return this;
}
@Override
public void validate() {
if (attributes.attribute(ENABLED).get() && attributes.attribute(PERSISTENT_LOCATION).isNull()) {
log.missingGlobalStatePersistentLocation();
}
}
@Override
public GlobalStateConfiguration create() {
return new GlobalStateConfiguration(attributes.protect());
}
@Override
public Builder> read(GlobalStateConfiguration template) {
attributes.read(template.attributes());
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy