All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.contextfw.web.commons.minifier.MinifierModule Maven / Gradle / Ivy

The newest version!
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);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy