package net.contextfw.web.commons.minifier; import static net.contextfw.web.application.configuration.Configuration.DEVELOPMENT_MODE; import static net.contextfw.web.application.configuration.Configuration.HOST; import static net.contextfw.web.application.configuration.Configuration.VERSION; import static net.contextfw.web.commons.minifier.MinifierConf.CSS_FILTER; import static net.contextfw.web.commons.minifier.MinifierConf.CSS_PATH; import static net.contextfw.web.commons.minifier.MinifierConf.JS_FILTER; import static net.contextfw.web.commons.minifier.MinifierConf.JS_PATH; import net.contextfw.web.application.configuration.Configuration; import com.google.inject.servlet.ServletModule; public class MinifierModule extends ServletModule { private final String jsPath; private final String cssPath; private final boolean developmentMode; private MinifierFilter jsFilter; private MinifierFilter cssFilter; private final long started; private final String host; private final String version; private final MinifierServiceImpl service; public MinifierModule(Configuration conf) { this.developmentMode = conf.get(DEVELOPMENT_MODE); this.host = conf.get(HOST); this.jsPath = conf.get(JS_PATH); this.cssPath = conf.get(CSS_PATH); this.jsFilter = conf.get(JS_FILTER); this.cssFilter = conf.get(CSS_FILTER); this.version = conf.get(VERSION); service = new MinifierServiceImpl(developmentMode); started = System.currentTimeMillis(); } @Override protected void configureServlets() { bind(MinifierService.class).toInstance(service); if (!developmentMode) { CssMinifierServlet cssMinifier = new CssMinifierServlet( host, cssPath, cssFilter, started, version); JsMinifierServlet jsMinifier = new JsMinifierServlet( host, jsPath, jsFilter, started, version); requestInjection(jsMinifier); requestInjection(cssMinifier); service.setJsMinifier(jsMinifier); service.setCssMinifier(cssMinifier); serve(jsMinifier.getMinifiedPath()).with(jsMinifier); serve(cssMinifier.getMinifiedPath()).with(cssMinifier); } } }