<?xml version="1.0" ?>

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

    <doctrine:config
        fixture_loader="Symfony\Bridge\Doctrine\DataFixtures\ContainerAwareLoader"
        auto-generate-hydrator-classes="true"
        auto-generate-proxy-classes="true"
        auto-generate-persistent-collection-classes="3"
        default-connection="conn1"
        default-database="default_db_name"
        default-document-manager="default_dm_name"
        hydrator-dir="%kernel.cache_dir%/doctrine/odm/mongodb/Test_Hydrators"
        hydrator-namespace="Test_Hydrators"
        proxy-dir="%kernel.cache_dir%/doctrine/odm/mongodb/Test_Proxies"
        proxy-namespace="Test_Proxies"
        persistent-collection-dir="%kernel.cache_dir%/doctrine/odm/mongodb/Test_Pcolls"
        persistent-collection-namespace="Test_Pcolls"
    >

        <doctrine:default-commit-options
            j="false"
            timeout="10"
            w="majority"
            wtimeout="10"
            fsync="false"
            safe="2"
        />

        <doctrine:connection id="conn1" server="mongodb://localhost">
            <doctrine:options
                connect="true"
                connectTimeoutMS="500"
                db="database_val"
                journal="true"
                password="password_val"
                readPreference="secondaryPreferred"
                replicaSet="foo"
                slaveOkay="true"
                socketTimeoutMS="1000"
                ssl="true"
                authMechanism="X509"
                username="username_val"
                w="majority"
                wTimeoutMS="1000"
            >
                <doctrine:readPreferenceTags>
                    <doctrine:readPreferenceTag name="dc" value="east" />
                    <doctrine:readPreferenceTag name="use" value="reporting" />
                </doctrine:readPreferenceTags>
                <doctrine:readPreferenceTags>
                    <doctrine:readPreferenceTag name="dc" value="west" />
                </doctrine:readPreferenceTags>
                <doctrine:readPreferenceTags />
            </doctrine:options>
        </doctrine:connection>

        <doctrine:connection id="conn2" server="mongodb://otherhost" />

        <doctrine:document-manager id="dm1">
            <doctrine:mapping name="FooBundle" type="annotation" />
            <doctrine:metadata-cache-driver type="memcache">
                <doctrine:class>fooClass</doctrine:class>
                <doctrine:host>host_val</doctrine:host>
                <doctrine:port>1234</doctrine:port>
                <doctrine:instance-class>instance_val</doctrine:instance-class>
            </doctrine:metadata-cache-driver>
            <doctrine:profiler enabled="true" pretty="false" />
            <doctrine:filter name="disabled_filter" enabled="false" class="Vendor\Filter\DisabledFilter" />
            <doctrine:filter name="basic_filter" enabled="true" class="Vendor\Filter\BasicFilter" />
            <doctrine:filter name="complex_filter" enabled="true" class="Vendor\Filter\ComplexFilter">
                <doctrine:parameter name="integer">1</doctrine:parameter>
                <doctrine:parameter name="string">foo</doctrine:parameter>
                <doctrine:parameter name="object">{"key":"value"}</doctrine:parameter>
                <doctrine:parameter name="array">[1,2,3]</doctrine:parameter>
            </doctrine:filter>
        </doctrine:document-manager>

        <doctrine:document-manager
            id="dm2"
            connection="dm2_connection"
            database="db1"
            metadata-cache-driver="apc"
            logging="true"
            default-repository-class="Foo\Bar\CustomRepository"
        >
            <doctrine:mapping
                name="BarBundle"
                type="yml"
                dir="%kernel.cache_dir%"
                prefix="prefix_val"
                alias="alias_val"
                is-bundle="false"
            />
        </doctrine:document-manager>

        <doctrine:resolve-target-document interface="Foo\BarInterface">Bar\FooClass</doctrine:resolve-target-document>
    </doctrine:config>
</container>
