<?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 client available endpoints.
    </description>

    <!--
        Initialize property configurer so we can reference environment variables.
    -->
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_FALLBACK"/>
        <property name="searchSystemEnvironment" value="true"/>
    </bean>

    <!--
        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="igniteInstanceName" value="node"/>

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

        <!-- Configure to skip all events for better performance. -->
        <property name="includeEventTypes">
            <list>
                <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_FAILED"/>
                <util:constant static-field="org.apache.ignite.events.EventType.EVT_TASK_FINISHED"/>
                <util:constant static-field="org.apache.ignite.events.EventType.EVT_JOB_MAPPED"/>
            </list>
        </property>

        <!-- Client configuration. -->
        <property name="connectorConfiguration">
            <bean class="org.apache.ignite.configuration.ConnectorConfiguration">
                <!-- Configure TCP rest protocol. -->
                <property name="port" value="10080"/>
            </bean>
        </property>

        <property name="cacheConfiguration">
            <!--
                Specify list of cache configurations here. Any property from
                CacheConfiguration interface can be configured here.
            -->
            <list>
                <!--
                    Partitioned cache example configuration.
                -->
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <!-- Cache name is 'partitioned'. -->
                    <property name="name" value="partitioned"/>

                    <!-- PARTITIONED cache mode. -->
                    <property name="cacheMode" value="PARTITIONED"/>

                    <!-- Transactional updates supported. -->
                    <property name="atomicityMode" value="TRANSACTIONAL"/>

                    <!-- Enable near cache to cache recently accessed data. -->
                    <property name="nearConfiguration">
                        <bean class="org.apache.ignite.configuration.NearCacheConfiguration" />
                    </property>

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

                    <property name="affinity">
                        <bean class="org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction">
                            <constructor-arg value="1"/>
                        </bean>
                    </property>

                    <!--<property name="binaryEnabled" value="true"/>-->

                    <property name="queryEntities">
                        <list>
                            <bean class="org.apache.ignite.cache.QueryEntity">
                                <property name="valueType" value="GridBinaryPerson"/>
                                <property name="fields">
                                    <map>
                                        <entry key="name" value="java.lang.String"/>
                                        <entry key="address" value="java.lang.String"/>
                                        <entry key="age" value="java.lang.Integer"/>
                                    </map>
                                </property>
                                <property name="indexes">
                                    <list>
                                        <bean class="org.apache.ignite.cache.QueryIndex">
                                            <property name="fields">
                                                <map>
                                                    <entry key="age" value="true"/>
                                                </map>
                                            </property>
                                        </bean>
                                        <bean class="org.apache.ignite.cache.QueryIndex">
                                            <property name="indexType" value="FULLTEXT"/>
                                            <property name="fields">
                                                <map>
                                                    <entry key="address" value="false"/>
                                                </map>
                                            </property>
                                        </bean>
                                    </list>
                                </property>
                            </bean>
                            <bean class="org.apache.ignite.cache.QueryEntity">
                                <property name="valueType" value="GridImplicitBinaryPerson"/>
                                <property name="fields">
                                    <map>
                                        <entry key="name" value="java.lang.String"/>
                                        <entry key="age" value="java.lang.Integer"/>
                                    </map>
                                </property>
                                <property name="indexes">
                                    <list>
                                        <bean class="org.apache.ignite.cache.QueryIndex">
                                            <property name="fields">
                                                <map>
                                                    <entry key="age" value="true"/>
                                                </map>
                                            </property>
                                        </bean>
                                    </list>
                                </property>
                            </bean>
                            <bean class="org.apache.ignite.cache.QueryEntity">
                                <property name="valueType" value="GridNoDefBinaryPerson"/>
                                <property name="fields">
                                    <map>
                                        <entry key="name" value="java.lang.String"/>
                                        <entry key="age" value="java.lang.Integer"/>
                                    </map>
                                </property>
                                <property name="indexes">
                                    <list>
                                        <bean class="org.apache.ignite.cache.QueryIndex">
                                            <property name="fields">
                                                <map>
                                                    <entry key="age" value="true"/>
                                                </map>
                                            </property>
                                        </bean>
                                    </list>
                                </property>
                            </bean>
                        </list>
                    </property>
                </bean>

                <!--
                    Replicated cache example configuration.
                -->
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <!-- Cache name is 'replicated'. -->
                    <property name="name" value="replicated"/>

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

                    <!-- REPLICATED cache mode. -->
                    <property name="cacheMode" value="REPLICATED"/>

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

                <!--
                    Replicated cache with in-memory store enabled.
                -->
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <!-- Cache name is 'replicated.store'. -->
                    <property name="name" value="replicated.store"/>

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

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

                    <!-- REPLICATED cache mode. -->
                    <property name="cacheMode" value="REPLICATED"/>

                    <!-- Store.-->
                    <property name="store">
                        <bean class="org.apache.ignite.internal.client.HashMapStore"/>
                    </property>
                </bean>
            </list>
        </property>


        <!--
            TCP discovery SPI (uses VM-shared IP-finder).
        -->
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <!-- Make sure both servers (unsecured and SSL-protected) can start as independent grids. -->
                <property name="localPort" value="49500"/>

                <!-- Override default IP-finder.-->
                <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:49500</value>
                                <value>127.0.0.1:49501</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>

        <!--
            Logger to use.
        -->
        <property name="gridLogger">
            <bean class="org.apache.ignite.logger.log4j2.Log4J2Logger">
                <constructor-arg type="java.lang.String" value="modules/clients/src/test/resources/log4j2.xml"/>
            </bean>
        </property>

        <!--
            Explicitly set custom public and system thread pools to increase
            possible started nodes count in one VM.
        -->
        <property name="publicThreadPoolSize" value="15"/>

        <property name="systemThreadPoolSize" value="15"/>
    </bean>
</beans>
