<?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.
-->
<componentConfig>
    <cache cacheInitialSize="20" cacheCheckFrequency="5000"/>
    <ehcache>
        <!--  in millisecs -->
        <cacheCheckFrequency>5000</cacheCheckFrequency>
        <cacheName>fulcrum</cacheName>
        <!-- configurationFile>ehcache.xml</configurationFile -->
    </ehcache>
    <jcscache>
    	<cacheCheckFrequency>5000</cacheCheckFrequency>
        <region>Cache_Test</region>
        <configurationFile>/cache.ccf</configurationFile>
    </jcscache>
</componentConfig>
