All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.openservices.ots.OTSServiceConfiguration Maven / Gradle / Ivy

package com.aliyun.openservices.ots;

import com.aliyun.openservices.ots.internal.OTSDefaultRetryStrategy;
import com.aliyun.openservices.ots.internal.OTSRetryStrategy;

/**
 * 一些OTS服务特定相关的配置
 *
 */
public class OTSServiceConfiguration {

    private boolean enableRequestCompression = false;
    private boolean enableResponseCompression = false;
    private boolean enableResponseContentMD5Checking = false;
    private boolean enableResponseValidation = true;
    private OTSRetryStrategy retryStrategy = new OTSDefaultRetryStrategy();
    private int timeThresholdOfTraceLogger = 1000;
    
    public OTSServiceConfiguration() {
        
    }
    
    /**
     * 设置是否需要对请求数据进行压缩
     * @param enableRequestCompression
     *          是否需要压缩(true/false)
     */
    public void setEnableRequestCompression(boolean enableRequestCompression) {
        this.enableRequestCompression = enableRequestCompression;
    }    

    /**
     * 返回是否需要对请求数据进行压缩
     * @return 是否需要对request进行压缩
     */
    public boolean isEnableRequestCompression() {
        return enableRequestCompression;
    }

    /**
     * 是否需要告知OTS对返回的响应内容进行压缩 
     * @param enableResponseCompression
     *          是否告知OTS对返回的响应内容进行压缩
     */
    public void setEnableResponseCompression(boolean enableResponseCompression) {
        this.enableResponseCompression = enableResponseCompression;
    }
    
    /**
     * 返回是否需要告知OTS对返回的响应内容进行压缩
     * @return
     *      是否需要告知OTS对返回的响应内容进行压缩
     */ 
    public boolean isEnableResponseCompression() {
        return enableResponseCompression;
    }
    
    /**
     * 返回是否需要对响应内容做MD5校验
     * @return
     *      是否需要对MD5内容做MD5校验
     */
    public boolean isEnableResponseContentMD5Checking() {
        return enableResponseContentMD5Checking;
    }
    
    /**
     * 是否需要对响应的内容做MD5校验, 如果需要校验, 
     * Client会计算响应数据的MD5值并与返回的响应头中的Content-Md5头的值进行比对
     * @param enableResponseContentMD5Checking
     *          是否需要校验响应数据MD5
     */
    public void setEnableResponseContentMD5Checking(
            boolean enableResponseContentMD5Checking) {
        this.enableResponseContentMD5Checking = enableResponseContentMD5Checking;
    }

    /**
     * 返回是否需要对响应进行验证
     * @return
     *      是否需要对响应进行验证
     */
    public boolean isEnableResponseValidation() {
        return enableResponseValidation;
    }
    
    /**
     * 是否需要对响应进行验证, 如果需要验证, 
     * Client会验证头信息完整性、结果是否过期、授权信息是否正确
     * @param enableResponseValidation
     *          是否需要对响应进行验证
     */
    public void setEnableResponseValidation(boolean enableResponseValidation) {
        this.enableResponseValidation = enableResponseValidation;
    }

    /**
     * 返回OTS的请求重试策略
     * @return 请求重试策略
     */
    public OTSRetryStrategy getRetryStrategy() {
        return retryStrategy;
    }

    /**
     * 设置OTS的请求重试策略
     * @param retryStrategy
     *          OTS的请求重试策略
     */
    public void setRetryStrategy(OTSRetryStrategy retryStrategy) {
        this.retryStrategy = retryStrategy;
    }

    /**
     * 返回当前设置的时间阈值(单位:毫秒)。
     * 当一个请求的总执行时间(包含重试占用的时间)超过该阈值时,SDK会记录一条WARN级别的日志。
     * 该功能依赖于日志相关的配置。
     * @return
     */
    public int getTimeThresholdOfTraceLogger() {
        return timeThresholdOfTraceLogger;
    }

    /**
     * 设置一个时间阈值(单位:毫秒)。
     * 当一个请求的总执行时间(包含重试占用的时间)超过该阈值时,SDK会记录一条WARN级别的日志。
     * 该功能依赖于日志相关的配置。
     * 
     * @param timeThresholdOfTraceLogger
     */
    public void setTimeThresholdOfTraceLogger(int timeThresholdOfTraceLogger) {
        this.timeThresholdOfTraceLogger = timeThresholdOfTraceLogger;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy