<?xml version="1.0"?>
<!--
  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.
-->
<!DOCTYPE cache PUBLIC
        "-//GemStone Systems, Inc.//GemFire Declarative Caching 8.0//EN"
        "http://www.gemstone.com/dtd/cache8_0.dtd">
<cache>
<disk-store name="diskStore">
        <disk-dirs>
            <disk-dir>diskDir-PersistentPartitionWithIndexDiskStore</disk-dir>
        </disk-dirs>
    </disk-store>

    <region name="persistentTestRegion">
        <region-attributes refid="PARTITION_REDUNDANT_PERSISTENT" disk-store-name="diskStore">
        </region-attributes>
        <index name="persistentTestRegion_ID" from-clause="/persistentTestRegion" expression="ID"
               type="range"/>
    </region>

    <region name="persistentTestRegionWithEntrySetIndex">
        <region-attributes refid="PARTITION_REDUNDANT_PERSISTENT" disk-store-name="diskStore">
        </region-attributes>
        <index name="persistentTestRegion_ID" from-clause="/persistentTestRegionWithEntrySetIndex.entrySet" expression="value.ID"
               type="range"/>
    </region>
</cache>
