/**
* Copyright Alex Objelean
*/
package ro.isdc.wro.extensions.manager.standalone;
import ro.isdc.wro.extensions.processor.js.GoogleClosureCompressorProcessor;
import ro.isdc.wro.model.resource.processor.factory.ProcessorsFactory;
import ro.isdc.wro.model.resource.processor.factory.SimpleProcessorsFactory;
import ro.isdc.wro.model.resource.processor.impl.css.CssImportPreProcessor;
import ro.isdc.wro.model.resource.processor.impl.css.CssUrlRewritingProcessor;
import ro.isdc.wro.model.resource.processor.impl.css.CssVariablesProcessor;
import ro.isdc.wro.model.resource.processor.impl.css.JawrCssMinifierProcessor;
import ro.isdc.wro.model.resource.processor.impl.js.SemicolonAppenderPreProcessor;
import com.google.javascript.jscomp.CompilationLevel;
/**
* A factory using google closure compressor for processing resources.
*
* @author Alex Objelean
*/
public class GoogleStandaloneManagerFactory extends ExtensionsStandaloneManagerFactory {
/**
* {@inheritDoc}
*/
@Override
protected ProcessorsFactory newProcessorsFactory() {
final SimpleProcessorsFactory factory = new SimpleProcessorsFactory();
factory.addPreProcessor(new CssUrlRewritingProcessor());
factory.addPreProcessor(new CssImportPreProcessor());
factory.addPreProcessor(new SemicolonAppenderPreProcessor());
factory.addPreProcessor(new GoogleClosureCompressorProcessor(CompilationLevel.SIMPLE_OPTIMIZATIONS));
factory.addPreProcessor(new JawrCssMinifierProcessor());
factory.addPostProcessor(new CssVariablesProcessor());
return factory;
}
}