<?xml version="1.0" encoding="UTF-8"?>
<feature-group-spec name="infinispan-dist" xmlns="urn:jboss:galleon:feature-group:1.0">
    <feature spec="subsystem.infinispan">

        <feature spec="subsystem.infinispan.cache-container">
            <param name="cache-container" value="server"/>
            <param name="module" value="org.wildfly.clustering.server"/>
            <param name="default-cache" value="default"/>
            <param name="aliases" value="[singleton, cluster]"/>
            <feature spec="subsystem.infinispan.cache-container.transport.jgroups">
                <param name="lock-timeout" value="60000"/>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.replicated-cache">
                <param name="replicated-cache" value="default"/>
                <feature spec="subsystem.infinispan.cache-container.replicated-cache.component.transaction">
                    <param name="mode" value="BATCH"/>
                </feature>
            </feature>
        </feature>

        <feature spec="subsystem.infinispan.cache-container">
            <param name="cache-container" value="web"/>
            <param name="module" value="org.wildfly.clustering.web.infinispan"/>
            <param name="default-cache" value="dist"/>
            <feature spec="subsystem.infinispan.cache-container.transport.jgroups">
                <param name="transport" value="jgroups"/>
                <param name="lock-timeout" value="60000"/>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.distributed-cache">
                <param name="distributed-cache" value="dist"/>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.component.locking">
                    <param name="isolation" value="REPEATABLE_READ"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.component.transaction">
                    <param name="mode" value="BATCH"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.store.file">
                    <unset param="relative-to"/>
                </feature>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.replicated-cache">
                <param name="replicated-cache" value="sso"/>
                <feature spec="subsystem.infinispan.cache-container.replicated-cache.component.locking">
                    <param name="isolation" value="REPEATABLE_READ"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.replicated-cache.component.transaction">
                    <param name="mode" value="BATCH"/>
                </feature>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.distributed-cache">
                <param name="distributed-cache" value="routing"/>
            </feature>
        </feature>

        <feature spec="subsystem.infinispan.cache-container">
            <param name="cache-container" value="ejb"/>
            <param name="module" value="org.wildfly.clustering.ejb.infinispan"/>
            <param name="default-cache" value="dist"/>
            <param name="aliases" value="[sfsb]"/>
            <feature spec="subsystem.infinispan.cache-container.transport.jgroups">
                <param name="lock-timeout" value="60000"/>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.distributed-cache">
                <param name="distributed-cache" value="dist"/>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.component.locking">
                    <param name="isolation" value="REPEATABLE_READ"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.component.transaction">
                    <param name="mode" value="BATCH"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.store.file">
                    <unset param="relative-to"/>
                </feature>
            </feature>
        </feature>

        <feature spec="subsystem.infinispan.cache-container">
            <param name="cache-container" value="hibernate"/>
            <param name="module" value="org.infinispan.hibernate-cache"/>
            <!-- <param name="default-cache" value="local-query"/> -->
            <feature spec="subsystem.infinispan.cache-container.local-cache">
                <param name="local-cache" value="local-query"/>
                <feature spec="subsystem.infinispan.cache-container.local-cache.component.expiration">
                    <param name="max-idle" value="100000"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.local-cache.memory.object">
                    <param name="size" value="10000"/>
                </feature>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.transport.jgroups">
                <param name="lock-timeout" value="60000"/>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.replicated-cache">
                <param name="replicated-cache" value="timestamps"/>
                <param name="mode" value="ASYNC"/>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.invalidation-cache">
                <param name="invalidation-cache" value="entity"/>
                <feature spec="subsystem.infinispan.cache-container.invalidation-cache.component.expiration">
                    <param name="max-idle" value="100000"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.invalidation-cache.memory.object">
                    <param name="size" value="10000"/>
                </feature>
            </feature>
        </feature>

    </feature>
</feature-group-spec>
