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