<?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

      https://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.
-->
 <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="root" class="java.util.ArrayList">
        <constructor-arg index="0">
            <list>
                <ref bean="primitiveTypesPositive"/>
                <ref bean="primitiveTypesNegative"/>
                <ref bean="pcClass1"/>
                <ref bean="pcClass2"/>
                <ref bean="primitiveTypesCharacterStringLiterals"/>
            </list>
        </constructor-arg>
    </bean>

    <bean id="primitiveTypesPositive" 
        class="org.apache.jdo.tck.pc.mylib.PrimitiveTypes">
        <property name="id"><value>1</value></property>
        <property name="intNotNull"><value>4</value></property>
        <property name="intNull"><value>4</value></property>
        <property name="longNotNull"><value>4</value></property>
        <property name="longNull"><value>4</value></property>
        <property name="floatNotNull"><value>4.0</value></property>
        <property name="floatNull"><value>4.0</value></property>
        <property name="doubleNotNull"><value>4.0</value></property>
        <property name="doubleNull"><value>4.0</value></property>
    </bean>

    <bean id="primitiveTypesNegative" 
        class="org.apache.jdo.tck.pc.mylib.PrimitiveTypes">
        <property name="id"><value>2</value></property>
        <property name="intNotNull"><value>-4</value></property>
        <property name="intNull"><value>-4</value></property>
        <property name="longNotNull"><value>-4</value></property>
        <property name="longNull"><value>-4</value></property>
        <property name="floatNotNull"><value>-4.0</value></property>
        <property name="floatNull"><value>-4.0</value></property>
        <property name="doubleNotNull"><value>-4.0</value></property>
        <property name="doubleNull"><value>-4.0</value></property>
    </bean>

    <bean id="pcClass1" class="org.apache.jdo.tck.pc.mylib.PCClass">
        <property name="id"><value>1</value></property>
        <property name="number1"><value>10</value></property>
        <property name="number2"><value>10</value></property>
    </bean>

    <bean id="pcClass2" class="org.apache.jdo.tck.pc.mylib.PCClass">
        <property name="id"><value>2</value></property>
        <property name="number1"><value>20</value></property>
        <property name="number2"><value>20</value></property>
    </bean>

    <bean id="primitiveTypesCharacterStringLiterals" 
        class="org.apache.jdo.tck.pc.mylib.PrimitiveTypes">
        <property name="id"><value>3</value></property>
        <property name="charNotNull"><value>O</value></property>
        <property name="charNull"><value>O</value></property>
        <property name="stringNull"><value>Even</value></property>
    </bean>
</beans>
