<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xmlns:gfe="http://www.springframework.org/schema/geode"
	   xmlns:util="http://www.springframework.org/schema/util"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/geode https://www.springframework.org/schema/geode/spring-geode.xsd
        http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd
">

	<context:property-placeholder/>

	<util:properties id="gemfireProperties">
		<prop key="name">SpringGemFireServerFunctionCreationWithPdx</prop>
		<prop key="log-level">error</prop>
	</util:properties>

	<bean id="addressPdxSerializer"
		  class="org.springframework.data.gemfire.function.ClientCacheFunctionExecutionWithPdxIntegrationTest$AddressPdxSerializer"/>

	<bean id="personPdxSerializer"
		  class="org.springframework.data.gemfire.function.ClientCacheFunctionExecutionWithPdxIntegrationTest$PersonPdxSerializer"/>

	<bean id="domainBasedPdxSerializer"
		  class="org.springframework.data.gemfire.function.ClientCacheFunctionExecutionWithPdxIntegrationTest$ComposablePdxSerializerFactoryBean">
		<property name="pdxSerializers">
			<list>
				<ref bean="addressPdxSerializer"/>
				<ref bean="personPdxSerializer"/>
			</list>
		</property>
	</bean>

	<gfe:cache properties-ref="gemfireProperties" pdx-serializer-ref="domainBasedPdxSerializer"
			   pdx-read-serialized="true" pdx-ignore-unread-fields="false"/>

	<gfe:cache-server max-connections="2" port="${spring.data.gemfire.cache.server.port:40404}"/>

	<gfe:annotation-driven/>

	<bean class="org.springframework.data.gemfire.function.ClientCacheFunctionExecutionWithPdxIntegrationTest$ApplicationDomainFunctions"/>

</beans>
