All Downloads are FREE. Search and download functionalities are using the official Maven repository.

spring.cache-schema-context.xml Maven / Gradle / Ivy

The newest version!
<?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:context="http://www.springframework.org/schema/context"
	xmlns:hz="http://www.hazelcast.com/schema/spring"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.hazelcast.com/schema/spring http://www.hazelcast.com/schema/spring/hazelcast-spring.xsd">

	<!-- Beans Declaration -->
	<context:property-placeholder ignore-unresolvable="true" location="file:${bdb.config.path}/${bdb.config.properties.file}" />
	<context:annotation-config />
 
	<hz:hazelcast id="hzInstance">
		<hz:config>
			<hz:spring-aware/>
			<hz:instance-name>${bdb.schema.name}-${bdb.node.instance}</hz:instance-name>
			<hz:group name="${bdb.schema.name}" password="${bdb.schema.password}"/>
			<hz:management-center url="http://localhost:8080/mancenter" enabled="false"/>
			<hz:properties>
				<hz:property name="hazelcast.jmx">true</hz:property>
				<hz:property name="hazelcast.jmx.detailed">true</hz:property>
				<hz:property name="hazelcast.logging.type">slf4j</hz:property>
				<hz:property name="hazelcast.rest.enabled">false</hz:property>
				<hz:property name="hazelcast.memcache.enabled">false</hz:property>
				<hz:property name="hazelcast.backpressure.enabled">false</hz:property>
				<hz:property name="hazelcast.index.copy.behavior">NEVER</hz:property>
				<!--hz:property name="hazelcast.socket.buffer.direct">true</hz:property-->
				<hz:property name="hazelcast.wait.seconds.before.join">5</hz:property>
				<hz:property name="hazelcast.partition.count">${bdb.schema.partition.count}</hz:property>
				<hz:property name="hazelcast.operation.thread.count">${bdb.schema.partition.pool}</hz:property>
				<hz:property name="hazelcast.operation.generic.thread.count">${bdb.schema.partition.pool}</hz:property>
				<hz:property name="hazelcast.socket.send.buffer.size">${bdb.schema.buffer.size}</hz:property>
				<hz:property name="hazelcast.socket.receive.buffer.size">${bdb.schema.buffer.size}</hz:property>
				<hz:property name="hazelcast.query.predicate.parallel.evaluation">${bdb.schema.query.parallel}</hz:property>
			</hz:properties>
			<hz:network port="${bdb.schema.ports.first}" port-auto-increment="true">
				<hz:outbound-ports>
					<hz:ports>${bdb.schema.ports.first}-${bdb.schema.ports.last}</hz:ports> 
				</hz:outbound-ports>
				<hz:join>
					<hz:multicast enabled="${bdb.schema.multicast.enabled}" multicast-timeout-seconds="${bdb.schema.connect.timeout:10}">
						<!--hz:trusted-interfaces>
							<hz:interface>${bdb.schema.members}</hz:interface>
						</hz:trusted-interfaces-->
					</hz:multicast>					
					<hz:tcp-ip enabled="${bdb.schema.tcp.enabled}" connection-timeout-seconds="${bdb.schema.connect.timeout:10}">
						<hz:members>${bdb.schema.members:localhost}</hz:members>
					</hz:tcp-ip>
					<hz:aws enabled="${bdb.schema.aws.enabled:false}" connection-timeout-seconds="${bdb.schema.connect.timeout:10}"/>
				</hz:join>
			</hz:network>

			<hz:executor-service name="xdm-trans-pool" pool-size="${bdb.schema.thread.pool}" />
			<hz:executor-service name="xdm-exec-pool" pool-size="${bdb.schema.thread.pool}" />
			<hz:executor-service name="hz:async" pool-size="${bdb.schema.thread.pool}" />
			<hz:executor-service name="hz:query" pool-size="${bdb.schema.thread.pool}" />
			
			<!--hz:queue name="client:*" async-backup-count="0" backup-count="0" empty-queue-ttl="100" max-size="100"/-->
			<hz:queue name="client:*" async-backup-count="0" backup-count="0"/>

			<hz:map name="dict-path" in-memory-format="BINARY" async-backup-count="${bdb.schema.dict.backup.async}" 
				backup-count="${bdb.schema.dict.backup.sync}" read-backup-data="${bdb.schema.dict.backup.read}"
				cache-deserialized-values="NEVER">
				<hz:near-cache time-to-live-seconds="0" max-idle-seconds="0" eviction-policy="LRU" 
					max-size="0" invalidate-on-change="true" in-memory-format="OBJECT" cache-local-entries="true"/>
				<hz:indexes>
					<hz:index attribute="pathId" ordered="true"/>
					<hz:index attribute="root"/>
				</hz:indexes>
			</hz:map>
			
			<hz:map name="xdm-key" in-memory-format="BINARY" async-backup-count="${bdb.schema.data.backup.async}" 
				backup-count="${bdb.schema.data.backup.sync}" read-backup-data="${bdb.schema.data.backup.read}">
			</hz:map>
			<hz:map name="xdm-document" in-memory-format="BINARY" async-backup-count="${bdb.schema.data.backup.async}" 
				backup-count="${bdb.schema.data.backup.sync}" read-backup-data="${bdb.schema.data.backup.read}">
				<hz:map-store enabled="${bdb.schema.store.enabled}" write-delay-seconds="10" factory-implementation="xdmStoreFactory">
					<hz:properties>
						<hz:property name="bdb.schema.name">${bdb.schema.name}</hz:property>
						<hz:property name="bdb.schema.store.type">${bdb.schema.store.type}</hz:property>
	    				<hz:property name="bdb.schema.store.data.path">${bdb.schema.store.data.path}</hz:property>
					</hz:properties>
				</hz:map-store>
				<hz:indexes>
					<hz:index attribute="txStart"/>
					<hz:index attribute="txFinish"/>
					<hz:index attribute="typeRoot"/>
					<hz:index attribute="uri" ordered="true"/>
				</hz:indexes>
			</hz:map>
			<hz:map name="xdm-element" in-memory-format="BINARY" async-backup-count="${bdb.schema.data.backup.async}" 
				backup-count="${bdb.schema.data.backup.sync}" read-backup-data="${bdb.schema.data.backup.read}"
				cache-deserialized-values="NEVER" statistics-enabled="${bdb.schema.data.stats.enabled}">
				<hz:indexes>
					<!--hz:index attribute="__key#documentKey"/-->
					<hz:index attribute="pathId" ordered="true"/>
				</hz:indexes>
			</hz:map>
			<hz:map name="xdm-index" in-memory-format="BINARY" async-backup-count="${bdb.schema.data.backup.async}" 
				backup-count="${bdb.schema.data.backup.sync}" read-backup-data="${bdb.schema.data.backup.read}">
				<!--hz:indexes>
					<hz:index attribute="pathId"/>
					<hz:index attribute="value" ordered="true"/>
				</hz:indexes-->
			</hz:map>

			<hz:map name="xdm-content" in-memory-format="OBJECT" async-backup-count="${bdb.schema.query.backup.async}" 
					 backup-count="${bdb.schema.query.backup.sync}" read-backup-data="${bdb.schema.query.backup.read}"
					 eviction-policy="LRU" time-to-live-seconds="0" max-size-policy="USED_HEAP_PERCENTAGE" 
					 max-size="25">
			</hz:map>

			<hz:map name="xdm-transaction" in-memory-format="BINARY" async-backup-count="${bdb.schema.trans.backup.async}" 
				backup-count="${bdb.schema.trans.backup.sync}" read-backup-data="${bdb.schema.trans.backup.read}">
				<!-- must persist transaction log... --> 
				<hz:map-store enabled="${bdb.schema.store.enabled}" write-delay-seconds="1" initial-mode="EAGER" class-name="com.bagri.server.hazelcast.store.TransactionCacheStore">
					<hz:properties>
						<hz:property name="bdb.node.instance">${bdb.node.instance}</hz:property>
						<hz:property name="bdb.schema.name">${bdb.schema.name}</hz:property>
						<hz:property name="bdb.schema.store.data.path">${bdb.schema.store.data.path}</hz:property>
						<hz:property name="bdb.schema.store.tx.buffer.size">${bdb.schema.store.tx.buffer.size}</hz:property>
					</hz:properties>
				</hz:map-store>
				<hz:indexes>
					<hz:index attribute="txState"/>
				</hz:indexes>
			</hz:map>

			<hz:map name="xdm-result" in-memory-format="BINARY" async-backup-count="${bdb.schema.query.backup.async}" 
					 backup-count="${bdb.schema.query.backup.sync}" read-backup-data="${bdb.schema.query.backup.read}"
					 eviction-policy="LRU" time-to-live-seconds="0" max-size-policy="USED_HEAP_PERCENTAGE" 
					 max-size="10">
				<!--hz:indexes>
					<hz:index attribute="docId"/>
				</hz:indexes>
				<hz:attributes>
					<hz:attribute name="docId" extractor="com.bagri.server.hazelcast.predicate.ResultsQueryExtractor" />
				</hz:attributes-->
			</hz:map>

			<hz:topic name="xdm-health">
				<hz:multi-threading-enabled>false</hz:multi-threading-enabled>
			</hz:topic>
			<hz:topic name="xdm-counters">
				<hz:multi-threading-enabled>true</hz:multi-threading-enabled>
			</hz:topic>
			<hz:topic name="xdm-population"/>
			
			<hz:replicatedmap name="xdm-client" in-memory-format="OBJECT" replication-delay-millis="0"/>
			<hz:replicatedmap name="xdm-query" in-memory-format="BINARY" replication-delay-millis="0"/>
			<hz:replicatedmap name="dict-index" in-memory-format="BINARY" replication-delay-millis="0"/>
			
			<hz:serialization>
				<hz:data-serializable-factories>
					<hz:data-serializable-factory factory-id="2000" implementation="sysFactory"/>
					<hz:data-serializable-factory factory-id="3000" implementation="taskFactory"/>
				</hz:data-serializable-factories>
				<hz:portable-factories>
					<hz:portable-factory factory-id="2" class-name="com.bagri.server.hazelcast.serialize.PortableFactoryImpl"/>
				</hz:portable-factories>
				<hz:serializers>
					<!--hz:global-serializer class-name="com.hazelcast.nio.serialization.PortableSerializer"/-->
					<hz:serializer type-class="com.bagri.core.model.Null" class-name="com.bagri.client.hazelcast.serialize.model.NullSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Element" class-name="com.bagri.client.hazelcast.serialize.model.ElementSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Elements" class-name="com.bagri.client.hazelcast.serialize.model.ElementsSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Path" class-name="com.bagri.client.hazelcast.serialize.model.PathSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Data" class-name="com.bagri.client.hazelcast.serialize.model.DataSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Document" class-name="com.bagri.client.hazelcast.serialize.model.DocumentSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Query" class-name="com.bagri.client.hazelcast.serialize.model.QuerySerializer"/>
					<hz:serializer type-class="com.bagri.core.model.QueryResult" class-name="com.bagri.client.hazelcast.serialize.model.QueryResultSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.ParseResults" class-name="com.bagri.client.hazelcast.serialize.model.ParseResultsSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.IndexedDocument" class-name="com.bagri.client.hazelcast.serialize.model.IndexedDocumentSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.UniqueDocument" class-name="com.bagri.client.hazelcast.serialize.model.UniqueDocumentSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.UniqueValue" class-name="com.bagri.client.hazelcast.serialize.model.UniqueValueSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Transaction" class-name="com.bagri.client.hazelcast.serialize.model.TransactionSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.FragmentedDocument" class-name="com.bagri.client.hazelcast.serialize.model.FragmentedDocumentSerializer"/>
					<hz:serializer type-class="com.bagri.core.model.Counter" class-name="com.bagri.client.hazelcast.serialize.model.CounterSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.Expression" class-name="com.bagri.client.hazelcast.serialize.query.ExpressionSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.AlwaysExpression" class-name="com.bagri.client.hazelcast.serialize.query.ExpressionSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.PathExpression" class-name="com.bagri.client.hazelcast.serialize.query.ExpressionSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.BinaryExpression" class-name="com.bagri.client.hazelcast.serialize.query.ExpressionSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.ExpressionBuilder" class-name="com.bagri.client.hazelcast.serialize.query.ExpressionBuilderSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.ExpressionContainer" class-name="com.bagri.client.hazelcast.serialize.query.ExpressionContainerSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.PathBuilder" class-name="com.bagri.client.hazelcast.serialize.query.PathBuilderSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.QueryBuilder" class-name="com.bagri.client.hazelcast.serialize.query.QueryBuilderSerializer"/>
					<hz:serializer type-class="com.bagri.core.query.QueriedPath" class-name="com.bagri.client.hazelcast.serialize.query.QueriedPathSerializer"/>
					<hz:serializer type-class="com.bagri.core.system.Index" class-name="com.bagri.client.hazelcast.serialize.system.IndexSerializer"/>
					<hz:serializer type-class="com.bagri.core.system.TriggerAction" class-name="com.bagri.client.hazelcast.serialize.system.TriggerActionSerializer"/>
					<hz:serializer type-class="com.bagri.core.system.JavaTrigger" class-name="com.bagri.client.hazelcast.serialize.system.JavaTriggerSerializer"/>
					<hz:serializer type-class="com.bagri.core.system.XQueryTrigger" class-name="com.bagri.client.hazelcast.serialize.system.XQueryTriggerSerializer"/>
					<hz:serializer type-class="javax.xml.xquery.XQItemType" implementation="xqItemTypeSerializer"/>
					<hz:serializer type-class="javax.xml.xquery.XQItem" implementation="xqItemSerializer"/>
					<hz:serializer type-class="javax.xml.xquery.XQSequence" implementation="xqSequenceSerializer"/>
				</hz:serializers>
			</hz:serialization>

			<!--hz:security enabled="true">
				<hz:member-credentials-factory implementation="" class-name="">
					<hz:properties>
						<hz:property name="property3">value3</hz:property>
					</hz:properties>
				</hz:member-credentials-factory>
			
				<hz:client-login-modules>
					<hz:login-module class-name="com.bagri.server.hazelcast.security.BagriLoginModule" usage="REQUIRED">
						<hz:properties>
							<hz:property name="property3">value3</hz:property>
						</hz:properties>
					</hz:login-module>
				</hz:client-login-modules>
			</hz:security-->

			<hz:services enable-defaults="true">
				<hz:service enabled="${bdb.schema.store.enabled}" class-name="com.bagri.server.hazelcast.impl.PopulationManagementImpl">
					<hz:name>PopulationService</hz:name>
					<hz:properties> 
						<hz:property name="bdb.node.instance">${bdb.node.instance}</hz:property>
						<hz:property name="bdb.schema.name">${bdb.schema.name}</hz:property>
						<hz:property name="bdb.schema.population.size">${bdb.schema.population.size}</hz:property>
						<hz:property name="bdb.schema.population.buffer.size">${bdb.schema.population.buffer.size}</hz:property>
						<hz:property name="bdb.schema.store.data.path">${bdb.schema.store.data.path}</hz:property>
					</hz:properties>
					<!--hz:configuration parser="MyParser">
					</hz:configuration-->
				</hz:service>

				<hz:service enabled="true" implementation="distrService" >
					<hz:name>DataDistributionService</hz:name>
					<hz:properties> 
						<hz:property name="bdb.node.instance">${bdb.node.instance}</hz:property>
						<hz:property name="bdb.schema.name">${bdb.schema.name}</hz:property>
					</hz:properties>
				</hz:service>
			</hz:services>

			<!--hz:quorum name="xdmQuorum" enabled="true">
				<hz:quorum-size>2</hz:quorum-size>
				<hz:quorum-type>READ_WRITE</hz:quorum-type>
				<hz:quorum-function-class-name>com.bagri.server.hazelcast.impl.HealthCheckFunction</hz:quorum-function-class-name>
			</hz:quorum-->
		</hz:config>
	</hz:hazelcast>

	<hz:map id="dict-path" name="dict-path" instance-ref="hzInstance" />
	<hz:map id="xdm-key" name="xdm-key" instance-ref="hzInstance" />
	<hz:map id="xdm-content" name="xdm-content" instance-ref="hzInstance" />
	<hz:map id="xdm-result" name="xdm-result" instance-ref="hzInstance" />
	<hz:map id="xdm-document" name="xdm-document" instance-ref="hzInstance" />
	<hz:map id="xdm-element" name="xdm-element" instance-ref="hzInstance" />
	<hz:map id="xdm-index" name="xdm-index" instance-ref="hzInstance" />
	<hz:map id="xdm-transaction" name="xdm-transaction" instance-ref="hzInstance" />
	<hz:replicatedMap id="xdm-client" name="xdm-client" instance-ref="hzInstance" />
	<hz:replicatedMap id="xdm-query" name="xdm-query" instance-ref="hzInstance" />
	<!--hz:replicatedMap id="dict-path" name="dict-path" instance-ref="hzInstance" /-->
	<hz:replicatedMap id="dict-index" name="dict-index" instance-ref="hzInstance" />

	<hz:idGenerator id="xdm.document" name="xdm.document" instance-ref="hzInstance"/>
	<!--hz:atomicLong id="xdm.document" name="xdm.document" instance-ref="hzInstance"/-->
	<hz:atomicLong id="xdm.path" name="xdm.path" instance-ref="hzInstance"/>
	<hz:atomicLong id="xdm.transaction" name="xdm.transaction" instance-ref="hzInstance"/>
	
	<hz:executorService id="xdm-exec-pool" name="xdm-exec-pool" instance-ref="hzInstance"/>
	
	<bean id="xdmFactory" class="com.bagri.server.hazelcast.impl.KeyFactoryImpl"/>

	<bean id="xdmStoreFactory" class="com.bagri.server.hazelcast.store.DocumentStoreFactory"/>

	<!--bean id="docGen" class="com.bagri.client.hazelcast.impl.IdGeneratorImpl">
		<constructor-arg ref="xdm.document" />
	</bean-->
	<bean id="docGen" class="com.bagri.client.hazelcast.impl.HzGeneratorImpl">
		<constructor-arg ref="xdm.document" />
	</bean>

	<bean id="mTicker" class="com.bagri.support.stats.watch.MillisTicker"/>
	<bean id="nTicker" class="com.bagri.support.stats.watch.NanosTicker"/>

	<bean id="clientQueue" class="java.util.concurrent.ArrayBlockingQueue">
		<constructor-arg value="1024" />
	</bean>
	<bean id="clientStats" class="com.bagri.support.stats.StatisticsCollector">
		<constructor-arg value="com.bagri.server.hazelcast.stats.InvocationStatistics" />
		<constructor-arg value="xdm.statistics.${bdb.schema.name}.clients" />
		<property name="statsQueue" ref="clientQueue"/>
	</bean>

	<bean id="docQueue" class="java.util.concurrent.ArrayBlockingQueue">
		<constructor-arg value="1024" />
	</bean>
	<bean id="docStats" class="com.bagri.server.hazelcast.stats.DocumentStatsCollector">
		<constructor-arg value="com.bagri.server.hazelcast.stats.DocumentStatistics" />
		<constructor-arg value="xdm.statistics.${bdb.schema.name}.docs" />
		<property name="statsQueue" ref="docQueue"/>
	</bean>

	<bean id="queryQueue" class="java.util.concurrent.ArrayBlockingQueue">
		<constructor-arg value="1024" />
	</bean>
	<bean id="queryStats" class="com.bagri.support.stats.StatisticsCollector">
		<constructor-arg value="com.bagri.server.hazelcast.stats.InvocationStatistics" />
		<constructor-arg value="xdm.statistics.${bdb.schema.name}.query" />
		<property name="statsQueue" ref="queryQueue"/>
	</bean>
	
	<bean id="indexQueue" class="java.util.concurrent.ArrayBlockingQueue">
		<constructor-arg value="1024" />
	</bean>
	<bean id="indexStats" class="com.bagri.support.stats.StatisticsCollector">
		<constructor-arg value="com.bagri.server.hazelcast.stats.IndexStatistics" />
		<constructor-arg value="xdm.statistics.${bdb.schema.name}.index" />
		<property name="statsQueue" ref="indexQueue"/>
	</bean>

	<bean id="queryCacheQueue" class="java.util.concurrent.ArrayBlockingQueue">
		<constructor-arg value="1024" />
	</bean>
	<bean id="queryCacheStats" class="com.bagri.support.stats.StatisticsCollector">
		<constructor-arg value="com.bagri.server.hazelcast.stats.QueryStatistics" />
		<constructor-arg value="xdm.statistics.${bdb.schema.name}.queryCache" />
		<property name="statsQueue" ref="queryCacheQueue"/>
	</bean>

	<bean id="triggerQueue" class="java.util.concurrent.ArrayBlockingQueue">
		<constructor-arg value="1024" />
	</bean>
	<bean id="triggerStats" class="com.bagri.support.stats.StatisticsCollector">
		<constructor-arg value="com.bagri.server.hazelcast.stats.UsageStatistics" />
		<constructor-arg value="xdm.statistics.${bdb.schema.name}.trigger" />
		<property name="statsQueue" ref="triggerQueue"/>
	</bean>

	<bean id="xqItemTypeSerializer" class="com.bagri.client.hazelcast.serialize.XQItemTypeSerializer">
   		<property name="XQDataFactory" ref="xqFactory" />
	</bean>

	<bean id="xqItemSerializer" class="com.bagri.client.hazelcast.serialize.XQItemSerializer">
		<property name="XQDataFactory" ref="xqFactory" />
	</bean>
	
	<bean id="xqSequenceSerializer" class="com.bagri.client.hazelcast.serialize.XQSequenceSerializer">
		<property name="XQDataFactory" ref="xqFactory" />
	</bean>

	<bean id="xqCompiler" class="com.bagri.xquery.saxon.XQCompilerImpl"/>

	<bean id="execService" class="java.util.concurrent.Executors" factory-method="newFixedThreadPool" destroy-method="shutdownNow">
    	<constructor-arg value="${bdb.schema.thread.pool}"/>
	</bean>
  
	<!--bean id="popManager" class="com.bagri.server.hazelcast.management.PopulationManager">
		<constructor-arg ref="hzInstance" />
		<property name="schemaName" value="${bdb.schema.name}"/>
		<property name="populationSize" value="${bdb.schema.population.size}"/>
	</bean-->

	<bean id="accManager" class="com.bagri.server.hazelcast.impl.AccessManagementImpl">
		<property name="schemaName" value="${bdb.schema.name}"/>
		<property name="schemaPass" value="${bdb.schema.password}"/>
	</bean>

	<bean id="clientManager" class="com.bagri.server.hazelcast.impl.ClientManagementImpl">
		<property name="clientsCache" ref="xdm-client"/>
		<property name="hzInstance" ref="hzInstance"/>
		<property name="statsQueue" ref="clientQueue"/>
	</bean>
    
	<bean id="docManager" class="com.bagri.server.hazelcast.impl.DocumentManagementImpl">
		<property name="documentIdGenerator" ref="docGen"/>
		<property name="hzInstance" ref="hzInstance"/>
		<property name="documentCache" ref="xdm-document"/>
		<property name="elementCache" ref="xdm-element"/>
		<property name="contentCache" ref="xdm-content"/>
		<property name="modelManager" ref="modelManager"/>
		<property name="indexManager" ref="idxManager"/>
		<property name="statsQueue" ref="docQueue"/>
		<property name="distrService" ref="distrService"/>
		<property name="execPool" ref="execService"/>
   		<!--property name="repository" ref="xdmRepo" /-->
	</bean>

	<bean id="healthManager" class="com.bagri.server.hazelcast.impl.HealthManagementImpl">
		<constructor-arg ref="hzInstance" />
		<property name="lowThreshold" value="${bdb.schema.health.threshold.low}"/>
		<property name="highThreshold" value="${bdb.schema.health.threshold.high}"/>
	</bean>

	<bean id="idxManager" class="com.bagri.server.hazelcast.impl.IndexManagementImpl">
		<!--property name="execService" ref="xdm-exec-pool"/-->
		<property name="indexDictionary" ref="dict-index"/>
		<property name="indexCache" ref="xdm-index"/>
		<property name="modelManager" ref="modelManager"/>
		<property name="statsQueue" ref="indexQueue"/>
		<property name="txManager" ref="txManager"/>
		<property name="documentManager" ref="docManager"/>
	</bean>

	<bean id="modelManager" class="com.bagri.server.hazelcast.impl.ModelManagementImpl">
		<property name="pathCache" ref="dict-path"/>
		<property name="pathGen" ref="xdm.path"/>
	</bean>

	<bean id="queryManager" class="com.bagri.server.hazelcast.impl.QueryManagementImpl">
		<property name="queryCache" ref="xdm-query"/>
		<property name="resultCache" ref="xdm-result"/>
		<property name="execPool" ref="execService"/>
		<property name="statsQueue" ref="queryCacheQueue"/>
   		<property name="repository" ref="xdmRepo" />
   		<property name="indexManager" ref="idxManager" />
   		<property name="cacheResults" value="${bdb.schema.query.cache}" />
		<property name="timeQueue" ref="queryQueue"/>
		<property name="stopWatch">
   			<bean class="com.bagri.support.stats.watch.ThreadedStopWatch">
				<property name="ticker" ref="mTicker" />
   			</bean>
		</property>
	</bean>

	<bean id="trManager" class="com.bagri.server.hazelcast.impl.TriggerManagementImpl">
		<!--property name="triggerDictionary" ref="dict-trigger"/-->
		<property name="execService" ref="xdm-exec-pool"/>
		<property name="statsQueue" ref="triggerQueue"/>
		<property name="hzInstance" ref="hzInstance"/>
   		<!--property name="repository" ref="xdmRepo" /-->
		<property name="XQCompiler" ref="xqCompiler"/>
	</bean>

	<bean id="txManager" class="com.bagri.server.hazelcast.impl.TransactionManagementImpl">
		<!--property name="hzInstance" ref="hzInstance"/-->
		<property name="execPool" ref="execService"/>
		<property name="transactionLevel" value="${bdb.schema.transaction.level}"/>
		<property name="transactionTimeout" value="${bdb.schema.transaction.timeout}"/>
	</bean>
	
	<bean id="xdmRepo" class="com.bagri.server.hazelcast.impl.SchemaRepositoryImpl">
		<property name="hzInstance" ref="hzInstance"/>
		<property name="factory" ref="xdmFactory"/>
		<property name="accessManagement" ref="accManager"/>
		<property name="clientManagement" ref="clientManager"/>
		<property name="modelManagement" ref="modelManager"/>
		<property name="queryManagement" ref="queryManager"/>
		<property name="documentManagement" ref="docManager"/>
		<!--property name="healthManagement" ref="healthManager"/-->
   		<property name="indexManagement" ref="idxManager" />
   		<property name="triggerManagement" ref="trManager" />
   		<property name="txManagement" ref="txManager" />
	</bean>

	<bean id="distrService" class="com.bagri.server.hazelcast.impl.DataDistributionService">
		<!--property name="transactionTimeout" value="${bdb.schema.transaction.timeout}"/-->
	</bean>

	<bean id="sysFactory" class="com.bagri.server.hazelcast.serialize.SystemSerializationFactory"/>

    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="sysFactory" />
        <property name="targetMethod" value="setSchemaRepository" />
        <property name="arguments">
            <list>
                <ref bean="xdmRepo" />
            </list>
        </property>
    </bean>
	
	<bean id="taskFactory" class="com.bagri.server.hazelcast.serialize.TaskSerializationFactory"/>
	
    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="taskFactory" />
        <property name="targetMethod" value="setSchemaRepository" />
        <property name="arguments">
            <list>
                <ref bean="xdmRepo" />
            </list>
        </property>
    </bean>

</beans>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy