<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database"
         xmlns:tx="http://www.springframework.net/tx">

  <!--BEGIN: Conversation tests-->
  <object type="EndConversationTestBegin.aspx">
    <property name="Conversation" ref="convEndConversationTest"></property>
    <property name="ConversationEvidenceBsn" expression="@(convEndConversationTest)['conversationEvidenceBsn']"></property>
  </object>
  <object type="EndConversationTestEnd.aspx">
    <property name="Conversation" ref="convEndConversationTest"></property>
    <property name="ConversationEvidenceBsn" expression="@(convEndConversationTest)['conversationEvidenceBsn']"></property>
  </object>
  <object name="convEndConversationTest" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convEndConversationTest"></property>
    <property name="['conversationEvidenceBsn']" ref="conversationEvidenceBsn"></property>
  </object>

  <object name="convCircularDependenceTest_A" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convCircularDependenceTest_A"></property>
    <property name="InnerConversations">
      <list>
        <ref object="convCircularDependenceTest_A_A"/>
      </list>
    </property>
  </object>
  <object name="convCircularDependenceTest_A_A" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convCircularDependenceTest_A_A"></property>
    <property name="InnerConversations">
      <list>
        <ref object="convCircularDependenceTest_A_A_A"/>
      </list>
    </property>
  </object>
  <object name="convCircularDependenceTest_A_A_A" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convCircularDependenceTest_A_A_A"></property>
    <property name="['conversationEvidenceBsn']" ref="conversationEvidenceBsn"></property>
  </object>
  <object name="conversationEvidenceBsn" type="Spring.Bsn.ConversationEvidenceBsnImpl, Spring.Web.Conversation.NHibernate5.Tests" singleton="false">
  </object>

  <object type="PatialEndConv_A_Begin.aspx">
    <property name="Conversation" ref="convPatialEndConv_A"></property>
  </object>
  <object type="PatialEndConv_A_End.aspx">
    <property name="Conversation" ref="convPatialEndConv_A"></property>
  </object>
  <object type="PatialEndConv_A_B_Begin.aspx">
    <property name="Conversation" ref="convPatialEndConv_A_B"></property>
  </object>
  <object type="PatialEndConv_A_B_End.aspx">
    <property name="Conversation" ref="convPatialEndConv_A_B"></property>
  </object>
  <object name="convPatialEndConv_A" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convPatialEndConv_A"></property>
    <property name="InnerConversations">
      <list>
        <ref object="convPatialEndConv_A_A"/>
        <ref object="convPatialEndConv_A_B"/>
        <ref object="convPatialEndConv_A_C"/>
      </list>
    </property>
  </object>
  <object name="convPatialEndConv_A_A" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convPatialEndConv_A_A"></property>
  </object>
  <object name="convPatialEndConv_A_B" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convPatialEndConv_A_B"></property>
    <property name="InnerConversations">
      <list>
        <ref object="convPatialEndConv_A_B_A"/>
        <ref object="convPatialEndConv_A_B_B"/>
      </list>
    </property>
  </object>
  <object name="convPatialEndConv_A_B_A" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convPatialEndConv_A_B_A"></property>
  </object>
  <object name="convPatialEndConv_A_B_B" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convPatialEndConv_A_B_B"></property>
  </object>
  <object name="convPatialEndConv_A_C" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convPatialEndConv_A_C"></property>
  </object>

  <object type="GetParentObjetFromChild.aspx">
    <property name="Conversation" ref="convGetParentObjetFromChildChild"></property>
  </object>
  <object name="convGetParentObjetFromChildParent" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convGetParentObjetFromChildParent"></property>
    <property name="['parentKey']" value="parentValue"></property>
    <property name="['overwrittenKey']" value="overwrittenValueParent"></property>
    <property name="InnerConversations">
      <list>
        <ref object="convGetParentObjetFromChildChild"/>
      </list>
    </property>
  </object>
  <object name="convGetParentObjetFromChildChild" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convGetParentObjetFromChildChild"></property>
    <property name="ParentConversation" ref="convGetParentObjetFromChildParent"></property>
    <property name="['childKey']" value="childValue"></property>
    <property name="['overwrittenKey']" value="overwrittenValueChild"></property>
  </object>

  <object type="TimeOut_NoTimeOut.aspx">
    <property name="Conversation" ref="convTimeOut"></property>
  </object>
  <object type="TimeOut_WithTimeOut.aspx">
    <property name="Conversation" ref="convTimeOut"></property>
  </object>
  <object name="convTimeOut" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convTimeOut"></property>
    <property name="TimeOut" value="60000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="['keyTimeOut']" value="this is the orinal value"></property>
  </object>
  <!--END: Conversation tests-->


  <object name="HttpApplicationConfigurer" type="Spring.Context.Support.HttpApplicationConfigurer, Spring.Web">
    <property name="ModuleTemplates">
      <dictionary>
        <entry key="ConversationModule">
          <!-- this name must match the module name -->
          <object>
            <!-- select "view source" in your browser on any page to see the appended html comment -->
            <property name="ConversationManagerNameList">
              <list element-type="string">
                <value>conversationManager</value>
                <value>conversationManagerEndPaused</value>
                <value>convMngEndPausedSessionIsClosed</value>
              </list>
            </property>
          </object>
        </entry>
      </dictionary>
    </property>
  </object>

  <!--BEGIN: session-per-conversation -->
  <object type="SPCLazyLoadTest_A_Begin.aspx">
    <property name="Conversation" ref="convSPCLazyLoad"></property>
    <property name="SessionFactory" ref="MySessionFactory"/>
  </object>
  <object type="SPCLazyLoadTest_A_Status.aspx">
    <property name="Conversation" ref="convSPCLazyLoad"></property>
  </object>
  <object name="convSPCLazyLoad" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convSPCLazyLoad"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>

  <object type="SPCSwitchConversationSameRequest.aspx">
    <property name="ConversationB" ref="convSPCSwitchConversationSameRequestB"></property>
    <property name="ConversationA" ref="convSPCSwitchConversationSameRequestA"></property>
    <property name="SessionFactory" ref="MySessionFactory"/>
  </object>
  <object name="convSPCSwitchConversationSameRequestA" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convSPCSwitchConversationSameRequestA"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <object name="convSPCSwitchConversationSameRequestB" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convSPCSwitchConversationSameRequestB"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <!--END: session-per-conversation -->

  <!--BEGIN:RedirectErrorNoPauseConversation-->
  <object type="RedirectErrorNoPauseConversation.aspx">
    <property name="Conversation" ref="convRedirectErrorNoPauseConversation"></property>
  </object>
  <object name="convRedirectErrorNoPauseConversation" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convRedirectErrorNoPauseConversation"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <!--BEGIN:RedirectErrorNoPauseConversation-->

  <!--BEGIN: InvalidOperationException Tests -->
  <object type="IoeTests.aspx">
    <property name="ConversationA" ref="convIoeTestsA"></property>
    <property name="ConversationAA" ref="convIoeTestsAA"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactory" ref="MySessionFactory"></property>
  </object>

  <object name="convIoeTestsA" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convIoeTestsA"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <object name="convIoeTestsAA" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convIoeTestsAA"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="ParentConversation" ref="convIoeTestsA"></property>
  </object>
  <!--END: InvalidOperationException Tests -->

  <!--BEGIN: EndPausedTest Tests -->
  <object type="EndPausedTest.aspx">
    <property name="ConvA" ref="convAEndPaused"></property>
    <property name="ConvB" ref="convBEndPaused"></property>
  </object>
  <object name="convAEndPaused" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convAEndPaused"></property>
    <property name="ConversationManager" ref="conversationManagerEndPaused"></property>
  </object>
  <object name="convBEndPaused" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convBEndPaused"></property>
    <property name="ConversationManager" ref="conversationManagerEndPaused"></property>
  </object>
  <object name="conversationManagerEndPaused" type="Spring.Web.Conversation.WebConversationManager, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="EndPaused" value="true"></property>
  </object>
  <!--END: EndPausedTest Tests -->

  <!--BEGIN: SessionIsClosed-->
  <object type="SessionIsClosedA.aspx">
    <property name="Conversation" ref="convASessionIsClosed"></property>
  </object>
  <object type="SessionIsClosedB.aspx">
    <property name="Conversation" ref="convBSessionIsClosed"></property>
    <property name="ConversationA" ref="convASessionIsClosed"></property>
  </object>
  <object name="convASessionIsClosed" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convASessionIsClosed"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <object name="convBSessionIsClosed" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convBSessionIsClosed"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <!--END: SessionIsClosed-->

  <!--BEGIN: EndPausedSessionIsClosed-->
  <object type="EndPausedSessionIsClosedA.aspx">
    <property name="Conversation" ref="convAEndPausedSessionIsClosed"></property>
  </object>
  <object type="EndPausedSessionIsClosedB.aspx">
    <property name="Conversation" ref="convBEndPausedSessionIsClosed"></property>
  </object>
  <object name="convAEndPausedSessionIsClosed" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convAEndPausedSessionIsClosed"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="convMngEndPausedSessionIsClosed"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <object name="convBEndPausedSessionIsClosed" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convBEndPausedSessionIsClosed"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="convMngEndPausedSessionIsClosed"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <object name="convMngEndPausedSessionIsClosed" type="Spring.Web.Conversation.WebConversationManager, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="EndPaused" value="true"/>
  </object>
  <!--END: EndPausedSessionIsClosed-->

  <!--BEGIN: ConnectionReleaseModeIssue-->
  <object type="ConnectionReleaseModeIssue.aspx">
    <property name="Conversation" ref="convConnectionReleaseModeIssue"/>
    <property name="SessionFactory" ref="MySessionFactory"/>
    <property name="ConnectionReleaseModeIssueBsn" ref="connectionReleaseModeIssueBsn"/>
  </object>
  <object name="convConnectionReleaseModeIssue" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convConnectionReleaseModeIssue"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <object id="connectionReleaseModeIssueBsn" type="Spring.Bsn.ConnectionReleaseModeIssueBsnImpl, Spring.Web.Conversation.NHibernate5.Tests" singleton="true">
    <property name="SessionFactory" ref="MySessionFactory"/>
  </object>
  <!--END: ConnectionReleaseModeIssue-->

  <!--BEGIN: SerializeConversationTest-->
  <object type="SerializeConversationTest.aspx">
    <property name="Conversation" ref="convSerializeConversationTest"/>
  </object>
  <object name="convSerializeConversationTest" type="Spring.Web.Conversation.WebConversationSpringState, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="Id" value="convSerializeConversationTest"></property>
    <property name="TimeOut" value="600000"></property>
    <property name="ConversationManager" ref="conversationManager"></property>
    <property name="SessionFactoryName" value="MySessionFactory"/>
    <property name="DbProviderName" value="DbProvider"/>
  </object>
  <!--END: SerializeConversationTest-->

  <!-- BEGIN: Common configuration-->
  <object name="conversationManager" type="Spring.Web.Conversation.WebConversationManager, Spring.Web.Conversation.NHibernate5" scope="session">
    <property name="SessionFactoryName" value="MySessionFactory"/>
  </object>

  <object id="transactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate5">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="SessionFactory" ref="MySessionFactory"/>
  </object>
  <object id="MySessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate5">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="MappingAssemblies">
      <list>
        <value>Spring.Web.Conversation.NHibernate5.Tests</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>
        <!--<entry key="connection.provider" value="AcessaDados.NHibernate.Connection.SiefDriverConnectionProvider, AcessaDados"/>-->
        <entry key="dialect" value="NHibernate.Dialect.SQLiteDialect"/>
        <entry key="connection.driver_class" value="NHibernate.Driver.SQLite20Driver"/>
        <entry key="current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate5"/>

        <entry key="hbm2ddl.keywords" value="none"/>
        <entry key="query.startup_check" value="false"/>
        <entry key="show_sql" value="false"/>
        <entry key="use_outer_join" value="true"/>
        <entry key="format_sql" value="true"/>
        <entry key="connection.release_mode" value="on_close"/>
      </dictionary>
    </property>
  </object>
  <object id="DbProvider" type="Spring.Spring.Data.Common.ConnectionCreationTrackingDbProvider, Spring.Web.Conversation.NHibernate5.Tests">
    <property name="TargetDbProvider" ref="targetDbProvider"/>
  </object>
  <db:provider id="targetDbProvider" provider="System.Data.SQLite" connectionString="Data Source=|DataDirectory|../sqlite/conversationTests.db;Version=3;FailIfMissing=True;"></db:provider>
  <tx:attribute-driven transaction-manager="transactionManager"/>
  <!-- END: Common configuration-->
</objects>