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

<!DOCTYPE daoConfig
    PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"
    "http://ibatis.apache.org/dtd/dao-2.dtd">

<daoConfig>

  <properties resource="com/domain/properties/MyProperteis.properties"/>

  <!--===============================================
        Example iBATIS SQL Maps DAO Configuration 
      ===============================================-->

  <context>
    <transactionManager type="SQLMAP">
      <property name="SqlMapConfig" value="com/domain/dao/sqlmap/SqlMapConfig.xml"/>
    </transactionManager>
    <dao interface="com.domain.dao.PersonDao" implementation="com.domain.dao.sqlmap.SqlMapPersonDao"/>
    <dao interface="com.domain.dao.BusinessDao" implementation="com.domain.dao.sqlmap.SqlMapBusinessDao"/>
    <dao interface="com.domain.dao.AccountDao" implementation="com.domain.dao.sqlmap.SqlMapAccountDao"/>
  </context>

  <!--===============================================
        Example Hibernate DAO Configuration 
      ===============================================-->

  <context>
    <transactionManager type="HIBERNATE">
      <property name="hibernate.dialect" value="net.sf.hibernate.dialect.PostgreSQLDialect"/>
      <property name="hibernate.connection.driver_class" value="${driver}"/>
      <property name="hibernate.connection.url" value="${url}"/>
      <property name="hibernate.connection.username" value="${username}"/>
      <property name="hibernate.connection.password" value="${password}"/>
      <property name="class.1" value="com.domain.Person"/>
      <property name="class.2" value="com.domain.Business"/>
      <property name="class.3" value="com.domain.Account"/>
    </transactionManager>
    <dao interface="com.domain.dao.CategoryDao" implementation="com.domain.dao.hbn.HbnCategoryDao"/>
    <dao interface="com.domain.dao.ProductDao" implementation="com.domain.dao.hbn.HbnProductDao"/>
    <dao interface="com.domain.dao.ItemDao" implementation="com.domain.dao.hbn.HbnItemDao"/>
  </context>

  <!--===============================================
        Example JDBC DAO Configuration 
      ===============================================-->

  <context>
    <transactionManager type="JDBC">
      <property name="DataSource" value="SIMPLE"/>
      <property name="JDBC.Driver" value="${driver}"/>
      <property name="JDBC.ConnectionURL" value="${url}"/>
      <property name="JDBC.Username" value="${username}"/>
      <property name="JDBC.Password" value="${password}"/>
      <property name="JDBC.DefaultAutoCommit" value="true" />
      <property name="Pool.MaximumActiveConnections" value="10"/>
      <property name="Pool.MaximumIdleConnections" value="5"/>
      <property name="Pool.MaximumCheckoutTime" value="120000"/>
      <property name="Pool.TimeToWait" value="500"/>
      <property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
      <property name="Pool.PingEnabled" value="false"/>
      <property name="Pool.PingConnectionsOlderThan" value="1"/>
      <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
      <property name="Pool.QuietMode" value="true"/>
    </transactionManager>
    <dao interface="com.domain.dao.OrderDao" implementation="com.domain.dao.jdbc.JdbcOrderDao"/>
    <dao interface="com.domain.dao.LineItemDao" implementation="com.domain.dao.jdbc.JdbcLineItemDao"/>
    <dao interface="com.domain.dao.CustomerDao" implementation="com.domain.dao.jdbc.JdbcCustomerDao"/>
  </context>

  <!--===============================================
        Example JTA DAO Configuration 
      ===============================================-->

  <context>
    <transactionManager type="JTA">
      <property name="DBJndiContext" value="java:comp/env/jdbc/MyDataSource"/>
      <property name="UserTransaction" value="java:comp/env/UserTransaction"/>
    </transactionManager>
    <dao interface="com.domain.dao.InventoryDao" implementation="com.domain.dao.jdbc.JdbcInventoryDao"/>
    <dao interface="com.domain.dao.LedgerDao" implementation="com.domain.dao.jdbc.JdbcLedgerDao"/>
    <dao interface="com.domain.dao.TaxDao" implementation="com.domain.dao.jdbc.JdbcTaxDao"/>
  </context>

  <!--===============================================
        Example Flat File DAO Configuration 
      ===============================================-->

  <context>
    <transactionManager type="EXTERNAL"/>
    <dao interface="com.domain.dao.LogDao" implementation="com.domain.dao.file.FileLogDao"/>
  </context>

</daoConfig>
