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