package com.mossle.cdn; import java.io.File; import java.io.IOException; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.servlet.ServletContext; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; public class CdnStrategy { private static Logger logger = LoggerFactory.getLogger(CdnStrategy.class); private String baseDir; private boolean copyDir; private ServletContext servletContext; @PostConstruct public void init() throws Exception { if (copyDir) { this.copyResources(); } } public void copyResources() throws IOException { // copy from webapp/cdn to mossle.store/cdn File srcDir = new File(servletContext.getRealPath("/") + "/cdn"); File destDir = new File(baseDir); if (!destDir.exists()) { destDir.mkdirs(); } logger.info("CDN copy from {} to {}", srcDir, destDir); FileUtils.copyDirectory(srcDir, destDir); } @Value("${cdn.baseDir}") public void setBaseDir(String baseDir) { this.baseDir = baseDir; } @Value("${cdn.copyDir}") public void setCopyDir(boolean copyDir) { this.copyDir = copyDir; } @Resource public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } }