<?xml version="1.0" encoding="UTF-8"?>

<objects xmlns="http://www.springframework.net"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd">

  <object id="rod" type="Spring.Objects.TestObject, Spring.Core.Tests">
    <property name="name">
      <value>Rod</value>
    </property>
    <property name="age">
      <value>31</value>
    </property>
    <property name="spouse">
      <ref object="father"/>
    </property>
  </object>

  <object id="roderick" parent="rod">
    <property name="name">
      <value>Roderick</value>
    </property>
    <!-- Should inherit age -->
  </object>

  <object id="kerry" type="Spring.Objects.TestObject, Spring.Core.Tests">
    <property name="name">
      <value>Kerry</value>
    </property>
    <property name="age">
      <value>34</value>
    </property>
    <property name="spouse">
      <ref local="rod"/>
    </property>
  </object>

  <object id="kathy" type="Spring.Objects.TestObject, Spring.Core.Tests" singleton="false">
    <property name="name">
      <value>Kathy</value>
    </property>
    <property name="age">
      <value>28</value>
    </property>
    <property name="spouse">
      <ref object="father"/>
    </property>
  </object>

  <object id="typeMismatch" type="Spring.Objects.TestObject, Spring.Core.Tests" singleton="false">
    <property name="name">
      <value>typeMismatch</value>
    </property>
    <property name="age">
      <value>34x</value>
    </property>
    <property name="spouse">
      <ref local="rod"/>
    </property>
  </object>

  <!--
		Tests of lifecycle callbacks
	-->
  <object id="mustBeInitialized" type="Spring.Objects.Factory.MustBeInitialized, Spring.Core.Tests"></object>

  <object id="lifecycle" type="Spring.Objects.Factory.LifecycleObject, Spring.Core.Tests"></object>


  <!-- Factory objects are automatically treated differently -->
  <object id="singletonFactory" type="Spring.Objects.Factory.DummyFactory, Spring.Core.Tests"></object>

  <object id="prototypeFactory" type="Spring.Objects.Factory.DummyFactory, Spring.Core.Tests">
    <property name="issingleton">
      <value>false</value>
    </property>
  </object>

  <!-- Check that the circular reference resolution mechanism doesn't break
	     repeated references to the same FactoryObject -->
  <object id="factoryReferencer" type="Spring.Objects.Factory.Xml.DummyReferencer, Spring.Core.Tests">
    <property name="testObject1">
      <ref object="singletonFactory"/>
    </property>
    <property name="testObject2">
      <ref local="singletonFactory"/>
    </property>
  </object>

  <!-- Check that the circular reference resolution mechanism doesn't break
	     prototype instantiation -->
  <object id="prototypeReferencer" type="Spring.Objects.Factory.Xml.DummyReferencer, Spring.Core.Tests" singleton="false">
    <property name="testObject1">
      <ref local="kathy"/>
    </property>
    <property name="testObject2">
      <ref object="kathy"/>
    </property>
  </object>

  <object id="listenerVeto" type="Spring.Objects.TestObject, Spring.Core.Tests">
    <property name="name">
      <value>listenerVeto</value>
    </property>
    <property name="age">
      <value>66</value>
    </property>
  </object>

  <object id="validEmpty" type="Spring.Objects.TestObject, Spring.Core.Tests"/>

  <object id="object1-with-same-id-and-name" name="object1-with-same-id-and-name" type="Spring.Objects.NameIdTestObject, Spring.Core.Tests" />
  <object id="object2-with-same-id-and-name" name="object2-with-same-id-and-name" type="Spring.Objects.NameIdTestObject, Spring.Core.Tests" />
  <object id="object-with-different-id-and-name" name="name-id-test-object-name" type="Spring.Objects.NameIdTestObject, Spring.Core.Tests" />

</objects>
