<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:sec="http://cxf.apache.org/configuration/security" xmlns:wsa="http://cxf.apache.org/ws/addressing"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:http="http://cxf.apache.org/transports/http/configuration"
	xmlns:t="http://dnetlib.eu/springbeans/t" xmlns:template="http://dnetlib.eu/springbeans/template"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                                    http://cxf.apache.org/ws/addressing http://cxf.apache.org/schemas/ws-addr-conf.xsd
                                    http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
                                    http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
                            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
                            http://dnetlib.eu/springbeans/template http://dnetlib.eu/springbeans/template.xsd">

	<bean id="cqlTransformerMapFactory"
	      class="eu.dnetlib.functionality.index.solr.cql.SolrTypeBasedCqlValueTransformerMapFactory">
		<property name="transformerMap">
			<map>
				<entry key="date" value-ref="simpleDateValueTransformer"/>
			</map>
		</property>
	</bean>

	<bean id="simpleDateValueTransformer"
	      class="eu.dnetlib.functionality.index.solr.cql.SimpleDateValueTransformer" />

	<bean id="solrIndexQueryFactory"
	      class="eu.dnetlib.functionality.index.query.SolrIndexQueryFactory"
	      p:pruner-ref="solrQueryPruner" p:cqlPruner-ref="cqlQueryPruner">
		<property name="defaultQueryParams">
			<map>
				<entry key="wildcard">
					<list>
						<value>
							false
						</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>

	<bean id="solrQueryPruner" class="eu.dnetlib.functionality.index.query.Pruner"
	      p:optionUri="SOLR" />

	<bean id="cqlQueryPruner" class="eu.dnetlib.functionality.index.query.Pruner"
	      p:optionUri="CQL" />

	<bean  id="solrIndexQueryResponseFactory" class="eu.dnetlib.functionality.index.query.SolrIndexQueryResponseFactory"
	       p:highlightUtils-ref="highlightUtils" p:returnEmptyFields="${service.index.solr.returnEmptyFields}"
	       p:includeRanking="${service.index.solr.rank.enable}" />

	<bean id="highlightUtils" class="${service.index.solr.highlight.utils}" />

	<bean id ="solrIndexClientFactory" class ="eu.dnetlib.functionality.index.client.solr.SolrIndexClientFactory"
	      p:configuration="${service.solr.index.client.jsonConfiguration}" init-method="init" />

	<bean id="serviceTools" class="eu.dnetlib.functionality.index.utils.ServiceTools"
	      depends-on="uniqueServiceLocator"/>

	<bean id="mdFactory"
	      class="eu.dnetlib.functionality.index.utils.MetadataReferenceFactory" depends-on="uniqueServiceLocator" />

	<bean  id="browseAliases" class="eu.dnetlib.functionality.index.query.BrowseAliases"
	       p:serviceTools-ref="serviceTools"/>


	<bean id="weights" class="eu.dnetlib.functionality.index.query.Weights"/>

	<bean id="mdFormatReader" class="eu.dnetlib.functionality.index.utils.MDFormatReader" />

	<bean id="metadataReferenceFactory" class="eu.dnetlib.functionality.index.utils.MetadataReferenceFactory"/>

</beans>
