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

    <description>Order instances for CompletenessTest of compound identity</description>

    <bean id="root" class="java.util.ArrayList">
        <constructor-arg index="0">
            <list>
                <ref bean="order1"/>
            </list>
        </constructor-arg>
    </bean>

    <bean id="order1" factory-bean="orderFactory" factory-method="newOrder">
        <constructor-arg index="0" type="long"><value>1</value></constructor-arg>
        <constructor-arg index="1" type="long"><value>3</value></constructor-arg>
        <property name="items">
            <set>
                <ref bean="item1"/>
                <ref bean="item2"/>
            </set>
        </property>
    </bean>

    <bean id="item1" factory-bean="orderFactory" factory-method="newOrderItem">
        <constructor-arg index="0" type="org.apache.jdo.tck.pc.order.Order">
            <ref bean="order1"/></constructor-arg>
        <constructor-arg index="1" type="long" ><value>1</value>
        </constructor-arg>
        <constructor-arg index="2" type="java.lang.String" >
            <value>SunRay</value></constructor-arg>
        <constructor-arg index="3" type="int" ><value>15</value>
        </constructor-arg>
    </bean>

    <bean id="item2" factory-bean="orderFactory" factory-method="newOrderItem">
        <constructor-arg index="0" type="org.apache.jdo.tck.pc.order.Order">
            <ref bean="order1"/></constructor-arg>
        <constructor-arg index="1" type="long" ><value>1</value>
        </constructor-arg>
        <constructor-arg index="2" type="java.lang.String" >
            <value>Sun Ultra 40</value></constructor-arg>
        <constructor-arg index="3" type="int" ><value>3</value>
        </constructor-arg>
    </bean>

</beans>

