blob: 5c2d12c42dc614dd50b679142ad09d947a825176 [file] [log] [blame]
<?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="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="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="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>