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

<blueprint xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
           xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd





  http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">

    <cm:property-placeholder persistent-id="org.apache.unomi.persistence.elasticsearch"
                             update-strategy="reload" placeholder-prefix="${es.">
        <cm:default-properties>
            <cm:property name="cluster.name" value="contextElasticSearch"/>
            <cm:property name="elasticSearchAddresses" value="localhost:9200"/>
            <cm:property name="index.prefix" value="context"/>
            <cm:property name="numberOfShards" value="5"/>
            <cm:property name="numberOfReplicas" value="0"/>
            <cm:property name="indexMappingTotalFieldsLimit" value="1000"/>
            <cm:property name="indexMaxDocValueFieldsSearch" value="1000"/>
            <cm:property name="monthlyIndex.numberOfShards" value="3"/>
            <cm:property name="monthlyIndex.numberOfReplicas" value="0"/>
            <cm:property name="monthlyIndex.indexMappingTotalFieldsLimit" value="1000"/>
            <cm:property name="monthlyIndex.indexMaxDocValueFieldsSearch" value="1000"/>
            <cm:property name="monthlyIndex.itemsMonthlyIndexedOverride" value="event,session"/>
            <cm:property name="defaultQueryLimit" value="10"/>

            <cm:property name="bulkProcessor.concurrentRequests" value="1" />
            <cm:property name="bulkProcessor.bulkActions" value="1000" />
            <cm:property name="bulkProcessor.bulkSize" value="5MB" />
            <cm:property name="bulkProcessor.flushInterval" value="5s" />
            <cm:property name="bulkProcessor.backoffPolicy" value="exponential" />

            <cm:property name="minimalElasticSearchVersion" value="7.0.0" />
            <cm:property name="maximalElasticSearchVersion" value="8.0.0" />

            <cm:property name="aggregateQueryBucketSize" value="5000" />
            <cm:property name="clientSocketTimeout" value="" />
            <cm:property name="aggQueryMaxResponseSizeHttp" value="" />
            <cm:property name="aggQueryThrowOnMissingDocs" value="false" />
            <cm:property name="itemTypeToRefreshPolicy" value="" />
            <cm:property name="itemClassesToCache" value="" />
            <cm:property name="useBatchingForSave" value="false" />
            <cm:property name="useBatchingForUpdate" value="true" />

            <cm:property name="username" value="" />
            <cm:property name="password" value="" />
            <cm:property name="sslEnable" value="false" />
            <cm:property name="sslTrustAllCertificates" value="false" />
            <cm:property name="throwExceptions" value="false" />
            <cm:property name="alwaysOverwrite" value="true" />
        </cm:default-properties>
    </cm:property-placeholder>

    <reference id="metricsService" interface="org.apache.unomi.metrics.MetricsService" />
    <reference id="hazelcastInstance" interface="com.hazelcast.core.HazelcastInstance" />
    <reference id="scriptExecutor" interface="org.apache.unomi.scripting.ScriptExecutor" />

    <service id="elasticSearchPersistenceService" ref="elasticSearchPersistenceServiceImpl">
        <interfaces>
            <value>org.apache.unomi.persistence.spi.PersistenceService</value>
            <value>org.osgi.framework.SynchronousBundleListener</value>
        </interfaces>
    </service>

    <bean id="conditionESQueryBuilderDispatcher"
          class="org.apache.unomi.persistence.elasticsearch.conditions.ConditionESQueryBuilderDispatcher">
        <property name="scriptExecutor" ref="scriptExecutor" />
    </bean>

    <bean id="conditionEvaluatorDispatcherImpl"
          class="org.apache.unomi.persistence.elasticsearch.conditions.ConditionEvaluatorDispatcher">
        <property name="metricsService" ref="metricsService" />
        <property name="scriptExecutor" ref="scriptExecutor" />
    </bean>

    <bean id="elasticSearchPersistenceServiceImpl"
          class="org.apache.unomi.persistence.elasticsearch.ElasticSearchPersistenceServiceImpl"
          init-method="start"
          destroy-method="stop">
        <property name="bundleContext" ref="blueprintBundleContext"/>
        <property name="conditionEvaluatorDispatcher" ref="conditionEvaluatorDispatcherImpl"/>
        <property name="conditionESQueryBuilderDispatcher" ref="conditionESQueryBuilderDispatcher"/>
        <property name="clusterName" value="${es.cluster.name}"/>
        <property name="indexPrefix" value="${es.index.prefix}"/>
        <property name="monthlyIndexNumberOfShards" value="${es.monthlyIndex.numberOfShards}"/>
        <property name="monthlyIndexNumberOfReplicas" value="${es.monthlyIndex.numberOfReplicas}"/>
        <property name="monthlyIndexMappingTotalFieldsLimit" value="${es.monthlyIndex.indexMappingTotalFieldsLimit}"/>
        <property name="monthlyIndexMaxDocValueFieldsSearch" value="${es.monthlyIndex.indexMaxDocValueFieldsSearch}"/>
        <property name="numberOfShards" value="${es.numberOfShards}"/>
        <property name="numberOfReplicas" value="${es.numberOfReplicas}"/>
        <property name="indexMappingTotalFieldsLimit" value="${es.indexMappingTotalFieldsLimit}"/>
        <property name="indexMaxDocValueFieldsSearch" value="${es.indexMaxDocValueFieldsSearch}"/>
        <property name="elasticSearchAddresses" value="${es.elasticSearchAddresses}"/>
        <property name="fatalIllegalStateErrors" value="${es.fatalIllegalStateErrors}"/>
        <property name="defaultQueryLimit" value="${es.defaultQueryLimit}"/>
        <property name="itemsMonthlyIndexedOverride" value="${es.monthlyIndex.itemsMonthlyIndexedOverride}" />
        <property name="routingByType">
            <map>
            </map>
        </property>
        <property name="bulkProcessorConcurrentRequests" value="${es.bulkProcessor.concurrentRequests}" />
        <property name="bulkProcessorBulkActions" value="${es.bulkProcessor.bulkActions}" />
        <property name="bulkProcessorBulkSize" value="${es.bulkProcessor.bulkSize}" />
        <property name="bulkProcessorFlushInterval" value="${es.bulkProcessor.flushInterval}" />
        <property name="bulkProcessorBackoffPolicy" value="${es.bulkProcessor.backoffPolicy}" />

        <property name="minimalElasticSearchVersion" value="${es.minimalElasticSearchVersion}" />
        <property name="maximalElasticSearchVersion" value="${es.maximalElasticSearchVersion}" />

        <property name="aggregateQueryBucketSize" value="${es.aggregateQueryBucketSize}" />
        <property name="aggQueryMaxResponseSizeHttp" value="${es.aggQueryMaxResponseSizeHttp}" />
        <property name="aggQueryThrowOnMissingDocs" value="${es.aggQueryThrowOnMissingDocs}" />
        <property name="itemTypeToRefreshPolicy" value="${es.itemTypeToRefreshPolicy}" />

        <property name="clientSocketTimeout" value="${es.clientSocketTimeout}" />

        <property name="metricsService" ref="metricsService" />
        <property name="hazelcastInstance" ref="hazelcastInstance" />
        <property name="itemClassesToCache" value="${es.itemClassesToCache}" />
        <property name="useBatchingForSave" value="${es.useBatchingForSave}" />
        <property name="useBatchingForUpdate" value="${es.useBatchingForUpdate}" />

        <property name="username" value="${es.username}" />
        <property name="password" value="${es.password}" />
        <property name="sslEnable" value="${es.sslEnable}" />
        <property name="sslTrustAllCertificates" value="${es.sslTrustAllCertificates}" />
        <property name="throwExceptions" value="${es.throwExceptions}" />
        <property name="alwaysOverwrite" value="${es.alwaysOverwrite}" />
    </bean>

    <!-- We use a listener here because using the list directly for listening to proxies coming from the same bundle didn't seem to work -->
    <reference-list id="conditionEvaluators"
                    interface="org.apache.unomi.persistence.elasticsearch.conditions.ConditionEvaluator"
                    availability="optional">
        <reference-listener
                bind-method="bindConditionEvaluator" unbind-method="unbindConditionEvaluator" ref="elasticSearchPersistenceServiceImpl"/>
    </reference-list>

    <reference-list id="conditionESQueryBuilders"
                    interface="org.apache.unomi.persistence.elasticsearch.conditions.ConditionESQueryBuilder"
        availability="optional">
        <reference-listener
                bind-method="bindConditionESQueryBuilder" unbind-method="unbindConditionESQueryBuilder" ref="elasticSearchPersistenceServiceImpl"/>
    </reference-list>

</blueprint>
