<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright The WildFly Authors
  ~ SPDX-License-Identifier: Apache-2.0
  -->

<feature-group-spec name="infinispan-dist-web" xmlns="urn:jboss:galleon:feature-group:1.0">
    <feature spec="subsystem.infinispan">

        <feature spec="subsystem.infinispan.cache-container">
            <param name="cache-container" value="web"/>
            <param name="modules" value="[org.wildfly.clustering.session.infinispan.embedded]"/>
            <param name="marshaller" value="PROTOSTREAM"/>
            <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.component.expiration">
                    <param name="interval" value="0"/>
                </feature>
                <feature spec="subsystem.infinispan.cache-container.distributed-cache.store.file">
                    <param name="passivation" value="true"/>
                    <param name="purge" value="true"/>
                </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 spec="subsystem.infinispan.cache-container.replicated-cache.component.expiration">
                    <param name="interval" value="0"/>
                </feature>
            </feature>
            <feature spec="subsystem.infinispan.cache-container.replicated-cache">
                <param name="replicated-cache" value="routing"/>
                <feature spec="subsystem.infinispan.cache-container.replicated-cache.component.expiration">
                    <param name="interval" value="0"/>
                </feature>
            </feature>
        </feature>

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