<?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>nearDistributedMgmt</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>nearDistributedMgmt</scheme-name>
        </cache-mapping>
        <cache-mapping>
            <cache-name>executioncontext</cache-name>
            <scheme-name>nearDistributedMgmt</scheme-name>
        </cache-mapping>
        <cache-mapping>
            <cache-name>runbook</cache-name>
            <scheme-name>nearDistributedMgmt</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>
        <near-scheme>
            <scheme-name>nearDistributedMgmt</scheme-name>
            <front-scheme>
                <local-scheme>
                    <scheme-ref>front-map</scheme-ref>
                </local-scheme>
            </front-scheme>
            <back-scheme>
                <distributed-scheme>
                    <scheme-ref>distributedMgmt</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>
			<backing-map-scheme>
				<local-scheme>
					<scheme-ref>{backing-map backing-map}</scheme-ref>
				</local-scheme>
			</backing-map-scheme>
			<autostart system-property="gridvise.service.mgmt">true</autostart>
		</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>
			<autostart system-property="gridvise.service.mgmtbk">true</autostart>
		</distributed-scheme>
		<distributed-scheme>
			<scheme-name>distributedHeartbeat</scheme-name>
			<service-name>DistributedHeartbeat</service-name>
			<backing-map-scheme>
				<scheme-ref>backing-map</scheme-ref>
			</backing-map-scheme>
			<autostart system-property="gridvise.service.heartbeat">true</autostart>
		</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>
			<autostart system-property="gridvise.service.scheduling">true</autostart>
		</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="gridvise.service.invocation">true</autostart>
		</invocation-scheme>
        <invocation-scheme>
            <scheme-name>management-extend-invocation</scheme-name>
            <service-name>ExtendInvocationService</service-name>
            <autostart system-property="gridvise.service.extend.invocation">true</autostart>
        </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>
			</acceptor-config>
			<autostart system-property="gridvise.service.proxy">true</autostart>
		</proxy-scheme>

	</caching-schemes>
</cache-config>