package ro.isdc.wro.manager.factory.standalone; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ro.isdc.wro.config.Context; import ro.isdc.wro.manager.factory.WroManagerFactory; import ro.isdc.wro.model.factory.WroModelFactory; import ro.isdc.wro.model.factory.XmlModelFactory; import ro.isdc.wro.model.group.GroupExtractor; import ro.isdc.wro.model.group.processor.GroupExtractorDecorator; import ro.isdc.wro.model.resource.locator.ServletContextUriLocator; import ro.isdc.wro.model.resource.locator.StandaloneServletContextUriLocator; import ro.isdc.wro.model.resource.processor.factory.DefaultProcessorsFactory; import ro.isdc.wro.model.resource.processor.factory.ProcessorsFactory; /** * {@link WroManagerFactory} instance used by the maven plugin. * * @author Alex Objelean */ public class DefaultStandaloneContextAwareManagerFactory extends StandaloneWroManagerFactory implements StandaloneContextAware { private static final Logger LOG = LoggerFactory.getLogger(DefaultStandaloneContextAwareManagerFactory.class); /** * Context used by stand-alone process. */ StandaloneContext standaloneContext; /** * {@inheritDoc} */ public void initialize(final StandaloneContext standaloneContext) { Validate.notNull(standaloneContext); this.standaloneContext = standaloneContext; //Override the ignoreMissingResources flag only when explicitly set if (standaloneContext.getIgnoreMissingResourcesAsString() != null) { Context.get().getConfig().setIgnoreMissingResources(Boolean.parseBoolean(standaloneContext.getIgnoreMissingResourcesAsString())); } LOG.debug("initialize: {}", standaloneContext); LOG.debug("config: {}", Context.get().getConfig()); } @Override protected GroupExtractor newGroupExtractor() { return new GroupExtractorDecorator(super.newGroupExtractor()) { @Override public boolean isMinimized(final HttpServletRequest request) { return standaloneContext.isMinimize(); } }; } @Override protected WroModelFactory newModelFactory() { return new XmlModelFactory() { @Override protected InputStream getModelResourceAsStream() throws IOException { return new FileInputStream(standaloneContext.getWroFile()); } }; } @Override protected ProcessorsFactory newProcessorsFactory() { return new DefaultProcessorsFactory(); } @Override protected ServletContextUriLocator newServletContextUriLocator() { return new StandaloneServletContextUriLocator(standaloneContext); } }