package cn.dreampie.common.plugin.lesscss.compiler; import cn.dreampie.common.plugin.coffeescript.compiler.CoffeeException; import cn.dreampie.common.plugin.coffeescript.compiler.CoffeeScriptCompiler; import com.jfinal.kit.PathKit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonatype.plexus.build.incremental.ThreadBuildContext; import java.io.File; import java.util.Observable; /** * Created by wangrenhui on 2014/7/22. */ public class LessExecuteThread extends Observable implements Runnable { private Logger logger = LoggerFactory.getLogger(getClass()); private int restartInterval = 10000; // 此方法一经调用,等待restartInterval时间之后可以通知观察者,在本例中是监听线程 public void doBusiness() { logger.error("LessExecuteThread is dead"); try { Thread.sleep(restartInterval); } catch (InterruptedException e) { logger.error(e.getMessage()); } if (true) { super.setChanged(); } notifyObservers(); } @Override public void run() { LessCssCompiler lessCssCompiler = new LessCssCompiler(); lessCssCompiler.setBuildContext(ThreadBuildContext.getContext()); lessCssCompiler.setSourceDirectory(new File(PathKit.getWebRootPath() + "/css/")); lessCssCompiler.setOutputDirectory(new File(PathKit.getWebRootPath() + "/css/")); // lessCssCompiler.setForce(true); // lessCssCompiler.setCompress(true); lessCssCompiler.setWatch(true); try { lessCssCompiler.execute(); } catch (LessCssException e) { logger.error(e.getMessage()); doBusiness(); } } }