io.harness.cf.client.api.BaseConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ff-java-server-sdk Show documentation
Show all versions of ff-java-server-sdk Show documentation
Harness Feature Flag Java Server SDK
The newest version!
package io.harness.cf.client.api;
import io.harness.cf.client.common.Cache;
import io.harness.cf.client.common.Storage;
import java.util.Collections;
import java.util.Set;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
@SuperBuilder
@Data
public class BaseConfig {
public static final int MIN_FREQUENCY = 60;
@Builder.Default private final boolean streamEnabled = true;
@Builder.Default private final int pollIntervalInSeconds = 60;
// configurations for Analytics
@Builder.Default private final boolean analyticsEnabled = true;
@Builder.Default private final boolean globalTargetEnabled = true;
/** If you do not need to be warned about every variation that returned a default value, set this to true */
@Builder.Default private final boolean sdkCode6001Suppressed = false;
@Builder.Default
@Getter(AccessLevel.NONE)
private final int frequency = 60; // unit: second
@Builder.Default private final int bufferSize = 5000;
// Flag to set all attributes as private
@Deprecated @Builder.Default private final boolean allAttributesPrivate = false;
// Custom list to set the attributes which are private; move over to target
@Deprecated @Builder.Default private final Set privateAttributes = Collections.emptySet();
@Builder.Default private final boolean debug = false;
/** If metrics service POST call is taking > this time, we need to know about it */
@Builder.Default private final long metricsServiceAcceptableDuration = 10000;
/** store previous and current version of the FeatureConfig */
@Builder.Default private final boolean enableFeatureSnapshot = false;
/** Get metrics post frequency in seconds */
public int getFrequency() {
return Math.max(frequency, Config.MIN_FREQUENCY);
}
@Builder.Default private final Cache cache = new CaffeineCache(10000);
private final Storage store;
}