/*******************************************************************************
* Copyright (c) 2011-2014 Fernando Petrola
*
* This file is part of Dragome SDK.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
******************************************************************************/
package com.dragome.web.serverside.servlets;
import java.io.File;
import java.util.List;
import ro.isdc.wro.manager.factory.BaseWroManagerFactory;
import ro.isdc.wro.model.factory.WroModelFactory;
import ro.isdc.wro.model.resource.locator.ClasspathUriLocator;
import ro.isdc.wro.model.resource.locator.ServletContextUriLocator;
import ro.isdc.wro.model.resource.locator.UrlUriLocator;
import ro.isdc.wro.model.resource.locator.factory.SimpleUriLocatorFactory;
import ro.isdc.wro.model.resource.locator.factory.UriLocatorFactory;
import ro.isdc.wro.model.resource.locator.support.LocatorProvider;
import ro.isdc.wro.model.resource.processor.factory.DefaultProcessorsFactory;
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.CssCompressorProcessor;
import ro.isdc.wro.model.resource.processor.impl.js.JSMinProcessor;
import ro.isdc.wro.util.provider.ProviderFinder;
public class DragomeWroManagerFactory extends BaseWroManagerFactory
{
private File baseFolder;
public DragomeWroManagerFactory()
{
}
public DragomeWroManagerFactory(File baseFolder)
{
super();
this.baseFolder= baseFolder;
}
protected UriLocatorFactory newUriLocatorFactory()
{
SimpleUriLocatorFactory uriLocatorFactory= new SimpleUriLocatorFactory();
if (baseFolder != null)
uriLocatorFactory.addLocator(new FileSystemUriLocator(baseFolder));
final List<LocatorProvider> providers= ProviderFinder.of(LocatorProvider.class).find();
for (final LocatorProvider provider : providers)
uriLocatorFactory.addLocators(provider.provideLocators().values());
uriLocatorFactory.addLocator(new ClasspathUriLocator());
uriLocatorFactory.addLocator(new ServletContextUriLocator());
uriLocatorFactory.addLocator(new UrlUriLocator());
return uriLocatorFactory;
}
protected ProcessorsFactory newProcessorsFactory()
{
return createProcessorFactory();
}
public static ProcessorsFactory createProcessorFactory()
{
final SimpleProcessorsFactory processorsFactory= new DefaultProcessorsFactory();
processorsFactory.addPreProcessor(new CssCompressorProcessor());
processorsFactory.addPreProcessor(new JSMinProcessor());
return processorsFactory;
}
protected WroModelFactory newModelFactory()
{
return new DragomeWroModelFactory();
}
}