<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="assetic.asset_factory.class">Symfony\Bundle\AsseticBundle\Factory\AssetFactory</parameter>
        <parameter key="assetic.asset_manager.class">Assetic\Factory\LazyAssetManager</parameter>
        <parameter key="assetic.asset_manager_cache_warmer.class">Symfony\Bundle\AsseticBundle\CacheWarmer\AssetManagerCacheWarmer</parameter>
        <parameter key="assetic.cached_formula_loader.class">Assetic\Factory\Loader\CachedFormulaLoader</parameter>
        <parameter key="assetic.config_cache.class">Assetic\Cache\ConfigCache</parameter>
        <parameter key="assetic.config_loader.class">Symfony\Bundle\AsseticBundle\Factory\Loader\ConfigurationLoader</parameter>
        <parameter key="assetic.config_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\ConfigurationResource</parameter>
        <parameter key="assetic.coalescing_directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\CoalescingDirectoryResource</parameter>
        <parameter key="assetic.directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource</parameter>
        <parameter key="assetic.filter_manager.class">Symfony\Bundle\AsseticBundle\FilterManager</parameter>
        <parameter key="assetic.worker.ensure_filter.class">Assetic\Factory\Worker\EnsureFilterWorker</parameter>
        <parameter key="assetic.value_supplier.class">Symfony\Bundle\AsseticBundle\DefaultValueSupplier</parameter>

        <parameter key="assetic.node.paths" type="collection"></parameter>
        <parameter key="assetic.cache_dir">%kernel.cache_dir%/assetic</parameter>
        <parameter key="assetic.bundles" type="collection"></parameter>
    </parameters>

    <services>
        <!-- managers -->
        <service id="assetic.filter_manager" class="%assetic.filter_manager.class%">
            <argument type="service" id="service_container" />
            <argument type="collection"></argument>
        </service>
        <service id="assetic.asset_manager" class="%assetic.asset_manager.class%">
            <argument type="service" id="assetic.asset_factory" />
            <argument type="collection"></argument>
        </service>

        <service id="assetic.asset_factory" class="%assetic.asset_factory.class%" public="false">
            <argument type="service" id="kernel" />
            <argument type="service" id="service_container" />
            <argument type="service" id="assetic.parameter_bag" />
            <argument>%assetic.read_from%</argument>
            <argument>%assetic.debug%</argument>
        </service>

        <service id="assetic.config_loader" class="%assetic.config_loader.class%" public="false">
            <tag name="assetic.formula_loader" alias="config" />
        </service>
        <service id="assetic.config_resource" class="%assetic.config_resource.class%" public="false">
            <tag name="assetic.formula_resource" loader="config" />
            <argument type="collection" /> <!-- configured formulae -->
        </service>

        <service id="assetic.config_cache" class="%assetic.config_cache.class%" public="false">
            <argument>%assetic.cache_dir%/config</argument>
        </service>

        <service id="assetic.asset_manager_cache_warmer" class="%assetic.asset_manager_cache_warmer.class%" public="false">
            <tag name="kernel.cache_warmer" priority="10" />
            <argument type="service" id="service_container" />
        </service>

        <service id="assetic.worker.ensure_filter" class="%assetic.worker.ensure_filter.class%" abstract="true" public="false">
            <argument /> <!-- pattern -->
            <argument /> <!-- filter -->
        </service>

        <service id="assetic.parameter_bag" class="Symfony\Component\DependencyInjection\ParameterBag\ParameterBag" public="false">
            <argument type="service" id="assetic.parameters" />
        </service>

        <service id="assetic.parameters" class="stdClass" factory-service="service_container" factory-method="getDefaultParameters" public="false" />
        
        <service id="assetic.value_supplier.default" class="%assetic.value_supplier.class%" public="false">
            <argument type="service" id="service_container" />
        </service>
        
        <service id="assetic.value_supplier" alias="assetic.value_supplier.default" public="false" />
    </services>
</container>
