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