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

-->

<openejb>

  <Container id="CmpContainer" ctype="CMP_ENTITY">
    CmpEngineFactory org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory
    Engine derby
    ConnectorName CtsDataSource
  </Container>

  <Container id="StatefulContainer" ctype="STATEFUL">
    Passivator org.apache.openejb.core.stateful.SimplePassivater
    #TimeOut 20
    TimeOut 4
    Frequency 10
    BulkPassivate 50
  </Container>


  <Container id="StatelessContainer" ctype="STATELESS">
    TimeOut 0
    PoolSize 10
    StrictPooling true
  </Container>

  <Container id="SingletonContainer" ctype="SINGLETON">
    AccessTimeout 2 minutes
  </Container>

  <!--<Container id="JmsMdbContainer" ctype="MESSAGE">-->
  <!--ResourceAdapter JmsResourceAdapter-->
  <!--ActivationSpecClass org.apache.activemq.ra.ActiveMQActivationSpec-->
  <!--InstanceLimit 10-->
  <!--</Container>-->

  <!-- That should be also specified in the system.properties file of the target environment -->
  <Resource id="jdbc/securityAPIDB" type="DataSource">
    JdbcDriver org.apache.derby.jdbc.ClientDriver
    JdbcUrl jdbc:derby://localhost:%derby.server.port%/derbydb;create=true
    UserName cts
    Password cts
    testOnBorrow=true
  </Resource>

  <Resource id="jdbc/DB1" type="DataSource">
    JdbcDriver org.apache.derby.jdbc.ClientDriver
    JdbcUrl jdbc:derby://localhost:%derby.server.port%/derbydb;create=true
    UserName cts
    Password cts
    testOnBorrow=true
  </Resource>

  <Resource id="jdbc/DB1Unmanaged" type="DataSource">
    JdbcDriver org.apache.derby.jdbc.ClientDriver
    JdbcUrl jdbc:derby://localhost:%derby.server.port%/derbydb;create=true
    UserName cts
    Password cts
    JtaManaged false
    testOnBorrow=true
  </Resource>

  <Resource id="jdbc/DB" type="DataSource">
    JdbcDriver org.apache.derby.jdbc.ClientDriver
    JdbcUrl jdbc:derby://localhost:%derby.server.port%/derbydb;create=true
    UserName cts
    Password cts
    testOnBorrow=true
  </Resource>

  <Resource id="jdbc/DB_no_tx" type="DataSource">
    JdbcDriver org.apache.derby.jdbc.ClientDriver
    JdbcUrl jdbc:derby://localhost:%derby.server.port%/derbydb;create=true
    UserName cts
    Password cts
    JtaManaged false
    testOnBorrow=true
  </Resource>


  <!--<Resource id="JmsResourceAdapter" type="ActiveMQResourceAdapter">-->
  <!--# Broker configuration-->
  <!--BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false-->

  <!--# Broker address-->
  <!--ServerUrl vm://localhost?async=true-->

  <!--DataSource   CtsDataSourceUnmanaged-->
  <!--</Resource>-->


  <!--<Resource id="JmsConnectionFactory" type="javax.jms.ConnectionFactory">-->
  <!--ResourceAdapter JmsResourceAdapter-->
  <!--</Resource>-->


  <Resource id="MailSession" type="javax.mail.Session">
    mail.smtp.class=org.apache.geronimo.mail.NullTransport
  </Resource>

  <Deployments dir="apps/"/>

</openejb>
