<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--
    Ignite Spring configuration file to startup grid cache.

    When starting a standalone Ignite node, you need to execute the following command:
    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml

    When starting Ignite from Java IDE, pass path to this file into Ignition:
    Ignition.start("path-to-this-file/example-benchmark.xml");
-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
    <!--
        Optional description.
    -->
    <description>
        Spring file for grid configuration with benchmark.
    </description>

    <!--
        Configuration below demonstrates how to setup a collision and failover SPI's
        to enable work stealing from overloaded nodes to underloaded nodes.

        Note that for job stealing to work, you must always use both,
        GridJobStealingCollisionSpi and GridJobStealingFailoverSPI.
    -->
    <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="deploymentMode" value="CONTINUOUS"/>

        <!-- Set to local host address just for examples. -->
        <property name="localHost" value="127.0.0.1"/>

        <property name="cacheConfiguration">
            <!--
                Specify list of cache configurations here. Any property from
                CacheConfiguration interface can be configured here.
                Note that absolutely all configuration properties are optional.
            -->
            <list>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned1"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned2"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned3"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned4"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned5"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned6"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned7"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned8"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <property name="writeSynchronizationMode" value="FULL_SYNC"/>

                    <property name="rebalanceMode" value="SYNC"/>

                    <property name="onheapCacheEnabled" value="true"/>

                    <property name="evictionPolicy">
                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                            <property name="maxSize" value="100"/>
                        </bean>
                    </property>

                    <property name="backups" value="1"/>
                </bean>
            </list>
        </property>


        <!--
            Uncomment this to provide TCP discovery SPI (predefined addresses).
            Use the addresses list to provide IP addresses of initial nodes in the grid
            (at least one address must be provided).
        -->
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                        <property name="addresses">
                            <list>
                                <!--
                                    List all IP/port configurations that potentially
                                    can be started first in examples. We are assuming
                                    grid of size 10 or less.
                                -->
                                <value>127.0.0.1:47500</value>
                                <value>127.0.0.1:47501</value>
                                <value>127.0.0.1:47502</value>
                                <value>127.0.0.1:47503</value>
                                <value>127.0.0.1:47504</value>
                                <value>127.0.0.1:47505</value>
                                <value>127.0.0.1:47506</value>
                                <value>127.0.0.1:47507</value>
                                <value>127.0.0.1:47508</value>
                                <value>127.0.0.1:47509</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>

        <!--
            Uncomment to provide custom configuration for executor service.
            By default thread pool size is 100.
            All threads are pre-started and are available for use.
        -->
        <property name="publicThreadPoolSize" value="10"/>

        <!--
            Uncomment to provide custom configuration for System executor service.
            By default the thread pool size is 5 which should be good enough.
            Threads are not started unless used.
        -->
        <property name="systemThreadPoolSize" value="10"/>

        <!--
            Uncomment to provide custom configuration for P2P executor service.
            By default the thread pool size is 20 which should be good enough.
            Threads are not started unless used.
        -->
        <property name="peerClassLoadingThreadPoolSize" value="2"/>
    </bean>
</beans>
