package com.indeed.proctor.webapp.model;
import com.google.common.base.Preconditions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @author parker
* Encapsulate all primitive-type configuration properties
*/
@Component
public class WebappConfiguration {
private final boolean useCompiledCSS;
private final boolean useCompiledJavaScript;
private final int verifyHttpTimeout;
private final int verifyExecutorThreads;
@SuppressWarnings({"SpringJavaAutowiringInspection"})
@Autowired
public WebappConfiguration(@Value("${use.compiled.css:true}") boolean useCompiledCSS,
@Value("${use.compiled.javascript:true}") boolean useCompiledJavaScript,
@Value("${verify.http.timeout:1000}") int verifyHttpTimeout,
@Value("${verify.executor.threads:10}") int verifyExecutorThreads) {
this.useCompiledCSS = useCompiledCSS;
this.useCompiledJavaScript = useCompiledJavaScript;
this.verifyHttpTimeout = verifyHttpTimeout;
this.verifyExecutorThreads = verifyExecutorThreads;
Preconditions.checkArgument(verifyHttpTimeout > 0, "verifyHttpTimeout > 0");
Preconditions.checkArgument(verifyExecutorThreads > 0, "verifyExecutorThreads > 0");
}
public boolean isUseCompiledCSS() {
return useCompiledCSS;
}
public boolean isUseCompiledJavaScript() {
return useCompiledJavaScript;
}
public int getVerifyHttpTimeout() {
return verifyHttpTimeout;
}
public int getVerifyExecutorThreads() {
return verifyExecutorThreads;
}
}