package kr.debop4j.core.compress.spring;
import kr.debop4j.core.compress.BZip2Compressor;
import kr.debop4j.core.compress.DeflateCompressor;
import kr.debop4j.core.compress.GZipCompressor;
import kr.debop4j.core.compress.XZCompressor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* ICompressor 를 구현한 클래스들을 Springs Bean 으로 제공하는 Anntated Configuration 입니다.
*
* @author 배성혁 ( sunghyouk.bae@gmail.com )
* @since 12. 12. 17
*/
@Configuration
public class CompressorConfiguration {
private static final Logger log = LoggerFactory.getLogger(CompressorConfiguration.class);
private static final boolean isTraceEnabled = log.isTraceEnabled();
private static final boolean isDebugEnabled = log.isDebugEnabled();
@Bean(name = "bzip2Compressor")
public BZip2Compressor bzip2Compressor() {
if (isTraceEnabled)
log.trace("BZip2Compressor Bean 을 생성합니다.");
return new BZip2Compressor();
}
@Bean(name = "gzipCompressor")
public GZipCompressor gzipCompressor() {
if (isTraceEnabled)
log.trace("GZipCompressor Bean 을 생성합니다.");
return new GZipCompressor();
}
@Bean(name = "deflateCompressor")
public DeflateCompressor deflateCompressor() {
if (isTraceEnabled)
log.trace("DeflateCompressor Bean 을 생성합니다.");
return new DeflateCompressor();
}
@Bean(name = "xzCompressor")
public XZCompressor xzCompressor() {
if (isTraceEnabled)
log.trace("XZCompressor Bean 을 생성합니다.");
return new XZCompressor();
}
}