<!--
  ~ *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  ~  ** The MIT License
  ~  ** ===============
  ~  ** <p/>
  ~  ** Copyright (c) 2009 University Corporation for Atmospheric Research and Massachusetts Institute of
  ~  ** Technology Lincoln Laboratory
  ~  ** <p/>
  ~  ** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
  ~  ** associated documentation files (the "Software"), to deal in the Software without restriction,
  ~  ** including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
  ~  ** and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
  ~  ** subject to the following conditions:
  ~  ** <p/>
  ~  ** The above copyright notice and this permission notice shall be included in all copies or substantial
  ~  ** portions of the Software.
  ~  ** <p/>
  ~  ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
  ~  ** NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  ~  ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  ~  ** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  ~  ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  ~  *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*.
  -->

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0">

  <cm:property-placeholder persistent-id="edu.ucar.ral.wcsri.datasource" id="wcsri">
    <cm:default-properties>

      <!-- JDBC Drivers -->
      <cm:property name="jdbc.driverClassName" value="org.hsqldb.jdbcDriver"/>
      <cm:property name="jdbc.url" value="jdbc:hsqldb:hsql://127.0.0.1/wcsri_pubsub"/>
      <cm:property name="jdbc.username" value="sa"/>
      <cm:property name="jdbc.password" value=""/>

      <!-- Connection Pooling DBCP -->
      <cm:property name="jdbc.initialSize" value="5"/>
      <cm:property name="jdbc.maxActive" value="10"/>
      <cm:property name="jdbc.maxIdle" value="10"/>
      <cm:property name="jdbc.defaultAutoCommit" value="false"/>
      <cm:property name="jdbc.removeAbandoned" value="false"/>
      <cm:property name="jdbc.removeAbandonedTimeout" value="300"/>
      <cm:property name="jdbc.logAbandoned" value="false"/>

    </cm:default-properties>
  </cm:property-placeholder>

  <service interface="javax.sql.DataSource" ref="jta">
    <service-properties>
      <entry key="transactional" value="true"/>
    </service-properties>
  </service>

  <service interface="javax.sql.DataSource" ref="nonJTA">
    <service-properties>
      <entry key="transactional" value="false"/>
    </service-properties>
  </service>

  <!-- ###### JDBC Data Source ###### -->

  <reference id="txManager" interface="javax.transaction.TransactionManager" availability="mandatory"/>

  <bean id="dataSource" class="org.enhydra.jdbc.standard.StandardXADataSource">
    <property name="driverName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <property name="minCon" value="${jdbc.initialSize}"/>
    <property name="maxCon" value="${jdbc.maxActive}"/>
  </bean>

  <bean id="jta" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource">
    <property name="dataSource" ref="dataSource"/>
    <property name="transactionManager" ref="txManager"/>
    <property name="user" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
  </bean>

  <bean class="org.apache.commons.dbcp.BasicDataSource" id="nonJTA">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <property name="initialSize" value="${jdbc.initialSize}"/>
    <property name="maxActive" value="${jdbc.maxActive}"/>
    <property name="maxIdle" value="${jdbc.maxIdle}"/>
    <property name="defaultAutoCommit" value="false"/>
    <property name="removeAbandoned" value="${jdbc.removeAbandoned}"/>
    <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/>
    <property name="logAbandoned" value="${jdbc.logAbandoned}"/>
  </bean>

</blueprint>
