<?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.
-->

<!--
    Default rest router configuration.

    This file is automatically scanned by
    $IGNITE_HOME/bin/igniterouter.sh and $IGNITE_HOME/bin/igniterouter.bat
    for org.apache.ignite.client.router.GridTcpRestRouterConfiguration and
    org.apache.ignite.client.router.GridHttpRestRouterConfiguration bean definitions.
    First found are used to start corresponding router instances.

    You can also use org.apache.ignite.client.router.GridRouterFactory to
    programmatically start and stop router instances inside your application.
    Please refer to javadoc for more details.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <description>Main Spring file for router configuration.</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>

    <!-- Set up jetty port from the spring config. -->
    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject">
            <!-- System.getProperties() -->
            <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                <property name="targetClass" value="java.lang.System"/>
                <property name="targetMethod" value="getProperties"/>
            </bean>
        </property>
        <property name="targetMethod" value="putAll"/>
        <property name="arguments">
            <map>
                <entry key="IGNITE_JETTY_PORT" value="12400"/>
            </map>
        </property>
    </bean>

    <!-- Configuration of Tcp router. -->
    <bean id="tcp.router.cfg" class="org.apache.ignite.internal.client.router.GridTcpRouterConfiguration">

        <property name="logger" ref="router.log" />

        <!-- Specify local bind port for Tcp router. -->
        <property name="port" value="12300"/>

        <!-- Allow router use wider port range than default. -->
        <property name="portRange" value="0"/>

        <!-- Specify list of remote grid nodes to connect. -->
        <property name="servers">
            <list>
                <value>127.0.0.1:10443</value>
            </list>
        </property>

        <!-- Sets flag indicating whether or not SSL client authentication is required. -->
        <property name="sslClientAuth" value="true"/>

        <!-- Provide Ssl context. -->
        <property name="sslContextFactory">
            <bean class="org.apache.ignite.internal.client.ssl.GridSslBasicContextFactory">
                <property name="keyStoreFilePath" value="${CLIENTS_MODULE_PATH}/src/test/keystore/server.jks"/>
                <property name="keyStorePassword" value="123456"/>
                <property name="trustStoreFilePath" value="${CLIENTS_MODULE_PATH}/src/test/keystore/trust-one.jks"/>
                <property name="trustStorePassword" value="123456"/>
            </bean>
        </property>

        <!-- Specify credentials for grid connection. -->
        <!--<property name="credentials" value="s3cret"/>-->
    </bean>

    <!--
        Logger with the same configuration as in default grid instances.
    -->
    <bean id="router.log" class="org.apache.ignite.logger.log4j2.Log4J2Logger">
        <constructor-arg type="java.lang.String" value="modules/clients/src/test/resources/log4j2.xml"/>
    </bean>
</beans>
