<?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.
-->
<cache 
	xmlns="http://geode.apache.org/schema/cache" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd" version="1.0">
	<!--cache-server host="cod" port="24680" /-->
	<cache-server port="HOST_PORT1">
		<group>ServerGroup1</group>
	</cache-server>
	<pdx read-serialized="true" />
	<region name='partition_region'>
		<region-attributes data-policy="partition">
			<partition-attributes redundant-copies="1" startup-recovery-delay="1"/>
		</region-attributes>
	</region>
	<function-service>
		<function>
			<class-name>javaobject.MultiGetFunctionI</class-name>
		</function>
		<function>
			<class-name>javaobject.MultiPutFunctionI</class-name>
		</function>
		<function>
			<class-name>javaobject.MultiGetFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.MultiGetFunction2</class-name>
		</function>
		<function>
			<class-name>javaobject.MultiPutFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.RegionOperationsFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.RegionOperationsHAFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.ExceptionHandlingFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.OnServerHAExceptionFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.OnServerHAShutdownFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.PdxFunctionTest</class-name>
		</function>
		<function>
			<class-name>javaobject.SingleStrGetFunction</class-name>
		</function>
		<function>
			<class-name>javaobject.executeFunction_SendException</class-name>
		</function>
		<function>
			<class-name>javaobject.FEOnRegionPrSHOP</class-name>
		</function>
		<function>
			<class-name>javaobject.FEOnRegionPrSHOP_OptimizeForWrite</class-name>
		</function>
		<function>
			<class-name>javaobject.RegionOperationsHAFunctionPrSHOP</class-name>
		</function>
	</function-service>
	<serialization-registration>
		<instantiator id="5200">
			<class-name>javaobject.InstantiatorTest</class-name>
		</instantiator>
	</serialization-registration>
</cache>