content: /**
   * 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;
    }
  }
  