<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">
<cache-config>
	<!-- <defaults> -->
	<!-- <serializer>pof</serializer> -->
	<!-- </defaults> -->
	<caching-scheme-mapping>
		<!-- Caches with any name will be created as default replicated. -->
		<cache-mapping>
			<cache-name>config</cache-name>
			<scheme-name>nearDistributedBackingMap</scheme-name>
			<init-params>
				<init-param>
					<param-name>backing-map.class-name</param-name>
					<param-value>org.gridvise.mgmtcache.coh.entity.config.cachestore.ConfigCacheStore</param-value>
				</init-param>
			</init-params>
		</cache-mapping>
		<cache-mapping>
			<cache-name>launchable</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
		</cache-mapping>
		<cache-mapping>
			<cache-name>threaddump</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
		</cache-mapping>
		<cache-mapping>
			<cache-name>logging</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
		</cache-mapping>
		<cache-mapping>
			<cache-name>gridsequence</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
		</cache-mapping>
		<cache-mapping>
			<cache-name>event</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
			<init-params>
				<init-param>
					<param-name>backing-map.expiry-delay</param-name>
					<param-value>1d</param-value>
				</init-param>
			</init-params>
		</cache-mapping>
		<cache-mapping>
			<cache-name>scheduling</cache-name>
			<scheme-name>distributedScheduling</scheme-name>
		</cache-mapping>
		<cache-mapping>
			<cache-name>heartbeat</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
		</cache-mapping>
		<cache-mapping>
			<cache-name>checkresult</cache-name>
			<scheme-name>distributedMgmt</scheme-name>
		</cache-mapping>
        <cache-mapping>
            <cache-name>activity</cache-name>
            <scheme-name>nearDistributedBackingMap</scheme-name>
        </cache-mapping>
        <cache-mapping>
            <cache-name>executioncontext</cache-name>
            <scheme-name>nearDistributedBackingMap</scheme-name>
        </cache-mapping>
        <cache-mapping>
            <cache-name>runbook</cache-name>
            <scheme-name>nearDistributedBackingMap</scheme-name>
        </cache-mapping>

    </caching-scheme-mapping>

	<caching-schemes>
		<near-scheme>
			<scheme-name>nearDistributedBackingMap</scheme-name>
			<front-scheme>
				<local-scheme>
					<scheme-ref>front-map</scheme-ref>
				</local-scheme>
			</front-scheme>
			<back-scheme>
				<distributed-scheme>
					<scheme-ref>distributedBackingMap</scheme-ref>
				</distributed-scheme>
			</back-scheme>
			<invalidation-strategy>present</invalidation-strategy>
		</near-scheme>
		<distributed-scheme>
			<scheme-name>distributedMgmt</scheme-name>
			<service-name>DistributedMgmt</service-name>
			<local-storage system-property="localstorage.dist.mgmt">false</local-storage>
			<backing-map-scheme>
				<local-scheme>
					<scheme-ref>{backing-map backing-map}</scheme-ref>
				</local-scheme>
			</backing-map-scheme>
		</distributed-scheme>
		<distributed-scheme>
			<scheme-name>distributedBackingMap</scheme-name>
			<service-name>DistributedMgmtBkMap</service-name>
			<backing-map-scheme>
				<read-write-backing-map-scheme>
					<internal-cache-scheme>
						<local-scheme>
							<scheme-ref>backing-map</scheme-ref>
						</local-scheme>
					</internal-cache-scheme>
					<cachestore-scheme>
						<class-scheme>
							<class-name>{backing-map.class-name}</class-name>
						</class-scheme>
					</cachestore-scheme>
				</read-write-backing-map-scheme>
			</backing-map-scheme>
		</distributed-scheme>
		<distributed-scheme>
			<scheme-name>distributedHeartbeat</scheme-name>
			<service-name>DistributedHeartbeat</service-name>
			<local-storage system-property="localstorage.dist.heartbeat">false</local-storage>
			<backing-map-scheme>
				<scheme-ref>backing-map</scheme-ref>
			</backing-map-scheme>
		</distributed-scheme>
		<distributed-scheme>
			<scheme-name>distributedScheduling</scheme-name>
			<service-name>DistributedScheduling</service-name>
			<backing-map-scheme>
				<read-write-backing-map-scheme>
					<internal-cache-scheme>
						<local-scheme>
							<high-units>1000</high-units>
							<expiry-delay>1d</expiry-delay>
						</local-scheme>
					</internal-cache-scheme>
					<listener>
						<class-scheme>
							<class-name>org.gridvise.coherence.cache.scheduling.SchedulerBackingMapListener</class-name>
							<init-params>
								<init-param>
									<param-type>com.tangosol.net.BackingMapManagerContext</param-type>
									<param-value>{manager-context}</param-value>
								</init-param>
							</init-params>
						</class-scheme>
					</listener>
				</read-write-backing-map-scheme>
			</backing-map-scheme>
		</distributed-scheme>

		<local-scheme>
			<scheme-name>backing-map</scheme-name>
			<eviction-policy>LRU</eviction-policy>
			<high-units>{back.high.units 0}</high-units>
			<unit-calculator>BINARY</unit-calculator>
			<expiry-delay>{backing-map.expiry-delay 0}</expiry-delay>
		</local-scheme>

		<local-scheme>
			<scheme-name>front-map</scheme-name>
			<eviction-policy>LRU</eviction-policy>
			<high-units>{front.high.units 500}</high-units>
		</local-scheme>

		<invocation-scheme>
			<scheme-name>management-invocation</scheme-name>
			<service-name>InvocationService</service-name>
			<autostart system-property="localstorage.invocation.mgmt">false</autostart>
			<!-- <serializer> -->
			<!-- <class-name>com.tangosol.io.pof.SafeConfigurablePofContext</class-name> -->
			<!-- <init-params> -->
			<!-- <init-param> -->
			<!-- <param-type>string</param-type> -->
			<!-- <param-value>pof-config.xml</param-value> -->
			<!-- </init-param> -->
			<!-- </init-params> -->
			<!-- </serializer> -->

		</invocation-scheme>

		<proxy-scheme>
			<service-name>ExtendTcpProxyService</service-name>
			<acceptor-config>
				<tcp-acceptor>
					<local-address>
						<address system-property="gridvise.proxy.hostname">127.0.0.1</address>
						<port>10061</port>
					</local-address>
				</tcp-acceptor>
				<!-- <serializer> -->
				<!-- <class-name>com.tangosol.io.pof.SafeConfigurablePofContext</class-name> -->
				<!-- <init-params> -->
				<!-- <init-param> -->
				<!-- <param-type>string</param-type> -->
				<!-- <param-value>pof-config.xml</param-value> -->
				<!-- </init-param> -->
				<!-- </init-params> -->
				<!-- </serializer> -->
			</acceptor-config>


			<autostart>true</autostart>
		</proxy-scheme>
	</caching-schemes>
</cache-config>