This is an automated email from the ASF dual-hosted git repository.

dblevins pushed a commit to branch tomee-7.1.x
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/tomee-7.1.x by this push:
     new c98c60b  Some docs taken from master (TomEE 8.0.0 branch)
c98c60b is described below

commit c98c60b4bfdacddf736e37ccdad999ff4cbd75fe
Author: David Blevins <[email protected]>
AuthorDate: Tue May 28 23:01:53 2019 -0700

    Some docs taken from master (TomEE 8.0.0 branch)
---
 docs/activemqresourceadapter-config.adoc |  87 +++++
 docs/bmpentitycontainer-config.adoc      |  55 ++++
 docs/cmpentitycontainer-config.adoc      |  53 +++
 docs/comparison.adoc                     | 231 +++++++++++++
 docs/datasource-config.adoc              | 535 +++++++++++++++++++++++++++++++
 docs/initialcontext-config.adoc          |  44 +++
 docs/installation.adoc                   |  87 +++++
 docs/javamailsession-config.adoc         |  44 +++
 docs/jmsconnectionfactory-config.adoc    | 104 ++++++
 docs/managedcontainer-config.adoc        |  44 +++
 docs/messagedrivencontainer-config.adoc  |  87 +++++
 docs/orb-config.adoc                     |  42 +++
 docs/proxyfactory-config.adoc            |  44 +++
 docs/queue-config.adoc                   |  50 +++
 docs/securityservice-config.adoc         |  52 +++
 docs/singletoncontainer-config.adoc      |  71 ++++
 docs/statefulcontainer-config.adoc       | 167 ++++++++++
 docs/statelesscontainer-config.adoc      | 445 +++++++++++++++++++++++++
 docs/tomee-maven-plugin.adoc             | 178 ++++++++++
 docs/topic-config.adoc                   |  50 +++
 docs/transactionmanager-config.adoc      | 183 +++++++++++
 21 files changed, 2653 insertions(+)

diff --git a/docs/activemqresourceadapter-config.adoc 
b/docs/activemqresourceadapter-config.adoc
new file mode 100644
index 0000000..eacbcef
--- /dev/null
+++ b/docs/activemqresourceadapter-config.adoc
@@ -0,0 +1,87 @@
+= ActiveMQResourceAdapter Configuration
+:index-group: ActiveMQ
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A ActiveMQResourceAdapter can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Resource id="myActiveMQResourceAdapter" type="ActiveMQResourceAdapter">
+    brokerXmlConfig = broker:(tcp://localhost:61616)?useJmx=false
+    dataSource = Default Unmanaged JDBC Database
+    serverUrl = vm://localhost?waitForStart=20000&async=true
+    startupTimeout = 10 seconds
+</Resource>
+----
+
+Alternatively, a ActiveMQResourceAdapter can be declared via properties
+in the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myActiveMQResourceAdapter = new://Resource?type=ActiveMQResourceAdapter
+myActiveMQResourceAdapter.brokerXmlConfig = 
broker:(tcp://localhost:61616)?useJmx=false
+myActiveMQResourceAdapter.dataSource = Default Unmanaged JDBC Database
+myActiveMQResourceAdapter.serverUrl = 
vm://localhost?waitForStart=20000&async=true
+myActiveMQResourceAdapter.startupTimeout = 10 seconds
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared
+ActiveMQResourceAdapter a warning will be logged. If a
+ActiveMQResourceAdapter is needed by the application and one is not
+declared, TomEE will create one dynamically using default settings.
+Multiple ActiveMQResourceAdapter declarations are allowed.
+
+== Supported Properties
+
+[.table.table-bordered,options="header"]
+|===
+|Property|Type|Default|Description
+
+|brokerXmlConfig
+
+|String
+
+|`broker:(tcp://localhost:61616)?useJmx=false`
+
+|Broker configuration URI as defined by ActiveMQ see
+http://activemq.apache.org/broker-configuration-uri.html BrokerXmlConfig
+xbean:file:conf/activemq.xml - Requires xbean-spring.jar and
+dependencies
+
+|dataSource
+
+|String
+
+|Default Unmanaged JDBC Database
+
+|DataSource for persistence messages
+
+|serverUrl
+
+|java.net.URI
+
+|`vm://localhost?waitForStart=20000&async=true`
+
+|Broker address
+
+|startupTimeout
+
+|time
+
+|10 seconds
+
+|How long to wait for broker startup
+|===
\ No newline at end of file
diff --git a/docs/bmpentitycontainer-config.adoc 
b/docs/bmpentitycontainer-config.adoc
new file mode 100644
index 0000000..4c995f6
--- /dev/null
+++ b/docs/bmpentitycontainer-config.adoc
@@ -0,0 +1,55 @@
+= BmpEntityContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A BmpEntityContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="myBmpEntityContainer" type="BMP_ENTITY">
+    poolSize = 10
+</Container>
+----
+
+Alternatively, a BmpEntityContainer can be declared via properties in
+the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myBmpEntityContainer = new://Container?type=BMP_ENTITY
+myBmpEntityContainer.poolSize = 10
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared BmpEntityContainer a
+warning will be logged. If a BmpEntityContainer is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple BmpEntityContainer declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+poolSize
+
+int
+
+10
+
+Specifies the size of the bean pools for this bmp entity container.
diff --git a/docs/cmpentitycontainer-config.adoc 
b/docs/cmpentitycontainer-config.adoc
new file mode 100644
index 0000000..a68f0b0
--- /dev/null
+++ b/docs/cmpentitycontainer-config.adoc
@@ -0,0 +1,53 @@
+= CmpEntityContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A CmpEntityContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="myCmpEntityContainer" type="CMP_ENTITY">
+    cmpEngineFactory = org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory
+</Container>
+----
+
+Alternatively, a CmpEntityContainer can be declared via properties in
+the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myCmpEntityContainer = new://Container?type=CMP_ENTITY
+myCmpEntityContainer.cmpEngineFactory = 
org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared CmpEntityContainer a
+warning will be logged. If a CmpEntityContainer is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple CmpEntityContainer declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+cmpEngineFactory
+
+String
+
+org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory
diff --git a/docs/comparison.adoc b/docs/comparison.adoc
new file mode 100644
index 0000000..d647456
--- /dev/null
+++ b/docs/comparison.adoc
@@ -0,0 +1,231 @@
+= Comparison
+:index-group: General Information
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+Apache OpenEJB and Apache TomEE are born from the same project and
+community. They differ in two major ways, only one of them technical:
+
+* TomEE incorporates two additional projects; Tomcat and MyFaces
+* TomEE, as a name, more easily implies the breadth of technologies
+included
+
+Effectively, TomEE is a superset of OpenEJB. They share the same code
+and TomEE grew out of OpenEJB.
+
+Note: this table is for TomEE 1.x, TomEE 7 comments are under it.
+
+Tomcat
+
+TomEE
+
+TomEE JAX-RS (~ Microprofile)
+
+TomEE+
+
+TomEE PluME
+
+OpenEJB
+
+Java Servlets
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java ServerPages (JSP)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java ServerFaces (JSF)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java Transaction API (JTA)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java Persistence API (JPA)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java Contexts and Dependency Injection (CDI)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java Authentication and Authorization Service (JAAS)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java Authorization Contract for Containers (JACC)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+JavaMail API
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Bean Validation
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Enterprise JavaBeans
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java API for RESTful Web Services (JAX-RS)
+
+(/)
+
+(/)
+
+(/)
+
+(/)
+
+Java API for XML Web Services (JAX-WS)
+
+(/)
+
+(/)
+
+(/)
+
+Java EE Connector Architecture
+
+(/)
+
+(/)
+
+(/)
+
+Java Messaging Service (JMS)
+
+(/)
+
+(/)
+
+(/)
+
+EclipseLink
+
+(/)
+
+Mojarra
+
+(/)
+
+TomEE 7 targets JavaEE 7 and implements these specifications (in
+parenthesis the distibution(s) containing it if not part of the basic
+packages):
+
+* WebSocket JSR 356
+* JSON-P JSR 353
+* Servlet 3.1 JSR 340
+* JSF 2.2 JSR 344
+* EL 3.0 JSR 341
+* JSP 2.3 JSR 245
+* JSTL 1.2 JSR 52
+* JBatch (plus) JSR 352
+* Concurrency utilities for EE JSR 236
+* CDI 1.2, DI, Interceptors 1.2, Common Annotations JSR 346 + JSR 330 +
+JSR 318 + JSR 250
+* Bean Validation 1.1 JSR 349
+* EJB 3.2 JSR 345
+* JavaEE Connector JSR 322
+* JPA 2.1 JSR 338 (WARNING: openjpa based distributions provide a JPA
+2.0 runtime)
+* JMS 2.0 JSR 343 (layer based on ActiveMQ 5 / JMS 1.1 for default
+distributions)
+* JTA 1.2 JSR 907
+* Javamail 1.4 (NOTE: EE 7 requires 1.5)
+* JAX-RS 2.0 JSR 339
+* JAX-WS 2.2 JSR 224
+* JAXB 2.2 JSR 222
+* and more inherited from TomEE 1/JavaEE 6
diff --git a/docs/datasource-config.adoc b/docs/datasource-config.adoc
new file mode 100644
index 0000000..a376049
--- /dev/null
+++ b/docs/datasource-config.adoc
@@ -0,0 +1,535 @@
+= DataSource Configuration
+:index-group: Datasource
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A DataSource can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Resource id="myDataSource" type="javax.sql.DataSource">
+    accessToUnderlyingConnectionAllowed = false
+    alternateUsernameAllowed = false
+    connectionProperties = 
+    defaultAutoCommit = true
+    defaultReadOnly = 
+    definition = 
+    ignoreDefaultValues = false
+    initialSize = 0
+    jdbcDriver = org.hsqldb.jdbcDriver
+    jdbcUrl = jdbc:hsqldb:mem:hsqldb
+    jtaManaged = true
+    maxActive = 20
+    maxIdle = 20
+    maxOpenPreparedStatements = 0
+    maxWaitTime = -1 millisecond
+    minEvictableIdleTime = 30 minutes
+    minIdle = 0
+    numTestsPerEvictionRun = 3
+    password = 
+    passwordCipher = PlainText
+    poolPreparedStatements = false
+    serviceId = 
+    testOnBorrow = true
+    testOnReturn = false
+    testWhileIdle = false
+    timeBetweenEvictionRuns = -1 millisecond
+    userName = sa
+    validationQuery = 
+</Resource>
+----
+
+Alternatively, a DataSource can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myDataSource = new://Resource?type=javax.sql.DataSource
+myDataSource.accessToUnderlyingConnectionAllowed = false
+myDataSource.alternateUsernameAllowed = false
+myDataSource.connectionProperties = 
+myDataSource.defaultAutoCommit = true
+myDataSource.defaultReadOnly = 
+myDataSource.definition = 
+myDataSource.ignoreDefaultValues = false
+myDataSource.initialSize = 0
+myDataSource.jdbcDriver = org.hsqldb.jdbcDriver
+myDataSource.jdbcUrl = jdbc:hsqldb:mem:hsqldb
+myDataSource.jtaManaged = true
+myDataSource.maxActive = 20
+myDataSource.maxIdle = 20
+myDataSource.maxOpenPreparedStatements = 0
+myDataSource.maxWaitTime = -1 millisecond
+myDataSource.minEvictableIdleTime = 30 minutes
+myDataSource.minIdle = 0
+myDataSource.numTestsPerEvictionRun = 3
+myDataSource.password = 
+myDataSource.passwordCipher = PlainText
+myDataSource.poolPreparedStatements = false
+myDataSource.serviceId = 
+myDataSource.testOnBorrow = true
+myDataSource.testOnReturn = false
+myDataSource.testWhileIdle = false
+myDataSource.timeBetweenEvictionRuns = -1 millisecond
+myDataSource.userName = sa
+myDataSource.validationQuery = 
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared DataSource a warning
+will be logged. If a DataSource is needed by the application and one is
+not declared, TomEE will create one dynamically using default settings.
+Multiple DataSource declarations are allowed.
+
+See the link:common-datasource-configurations.html[Common DataSource
+Configurations] page for examples of configuring datasources for Derby,
+MySQL, Oracle and other common databases.
+
+== Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+accessToUnderlyingConnectionAllowed
+
+boolean
+
+false
+
+If true the raw physical connection to the database can be accessed
+
+alternateUsernameAllowed
+
+boolean
+
+false
+
+If true allow an alternate username and password to be specified on the
+connection, rather than those specified in the DataSource definition..
+
+connectionProperties
+
+String
+
+The connection properties that will be sent to the JDBC driver when
+establishing new connections
+
+defaultAutoCommit
+
+boolean
+
+true
+
+The default auto-commit state of new connections
+
+defaultReadOnly
+
+String
+
+The default read-only state of new connections If not set then the
+setReadOnly method will not be called. (Some drivers don't support read
+only mode, ex: Informix)
+
+definition
+
+String
+
+ignoreDefaultValues
+
+boolean
+
+false
+
+use only all set values in this config will need a lot of properties but
+allow to not set some values
+
+initialSize
+
+int
+
+0
+
+The size to reach when creating the datasource.
+
+jdbcDriver
+
+String
+
+org.hsqldb.jdbcDriver
+
+Driver class name
+
+jdbcUrl
+
+java.net.URI
+
+jdbc:hsqldb:mem:hsqldb
+
+Url for creating connections
+
+jtaManaged
+
+boolean
+
+true
+
+Determines wether or not this data source should be JTA managed or user
+managed.
+
+maxActive
+
+int
+
+20
+
+The maximum number of active connections that can be allocated from this
+pool at the same time, or a negative number for no limit. N.B. When
+using dbcp2 with TomEE 7 ("DataSourceCreator dbcp"), "MaxTotal" should
+be used as opposed to "MaxActive".
+
+maxIdle
+
+int
+
+20
+
+The maximum number of connections that can remain idle in the pool,
+without extra ones being released, or a negative number for no limit.
+
+maxOpenPreparedStatements
+
+int
+
+0
+
+The maximum number of open statements that can be allocated from the
+statement pool at the same time, or zero for no limit.
+
+maxWaitTime
+
+time
+
+-1 millisecond
+
+The maximum number of time that the pool will wait (when there are no
+available connections) for a connection to be returned before throwing
+an exception, or -1 to wait indefinitely.
+
+minEvictableIdleTime
+
+time
+
+30 minutes
+
+The minimum amount of time a connection may sit idle in the pool before
+it is eligable for eviction by the idle connection evictor (if any).
+
+minIdle
+
+int
+
+0
+
+The minimum number of connections that can remain idle in the pool,
+without extra ones being created, or zero to create none.
+
+numTestsPerEvictionRun
+
+int
+
+3
+
+The number of connectionss to examine during each run of the idle
+connection evictor thread (if any).
+
+password
+
+String
+
+Default password
+
+passwordCipher
+
+String
+
+PlainText
+
+poolPreparedStatements
+
+boolean
+
+false
+
+If true, a statement pool is created for each Connection and
+PreparedStatements created by one of the following methods are pooled:
+
+serviceId
+
+String
+
+testOnBorrow
+
+boolean
+
+true
+
+If true connections will be validated before being returned from the
+pool. If the validation fails, the connection is destroyed, and a new
+conection will be retrieved from the pool (and validated).
+
+testOnReturn
+
+boolean
+
+false
+
+If true connections will be validated before being returned to the pool.
+If the validation fails, the connection is destroyed instead of being
+returned to the pool.
+
+testWhileIdle
+
+boolean
+
+false
+
+If true connections will be validated by the idle connection evictor (if
+any). If the validation fails, the connection is destroyed and removed
+from the pool
+
+timeBetweenEvictionRuns
+
+time
+
+-1 millisecond
+
+The number of milliseconds to sleep between runs of the idle connection
+evictor thread. When set to a negative number, no idle connection
+evictor thread will be run.
+
+userName
+
+String
+
+sa
+
+Default user name
+
+validationQuery
+
+String
+
+The SQL query that will be used to validate connections from this pool
+before returning them to the caller. If specified, this query MUST be an
+SQL SELECT statement that returns at least one row.
+
+LogSql
+
+boolean
+
+false
+
+Wether SQL queries should be logged or not
+
+== accessToUnderlyingConnectionAllowed
+
+If true the raw physical connection to the database can be accessed
+using the following construct:
+
+[source,java]
+----
+Connection conn = ds.getConnection();
+Connection rawConn = ((DelegatingConnection) conn).getInnermostDelegate();
+...
+conn.close()
+----
+
+Default is false, because misbehaving programs can do harmfull things to
+the raw connection shuch as closing the raw connection or continuing to
+use the raw connection after it has been assigned to another logical
+connection. Be careful and only use when you need direct access to
+driver specific extensions.
+
+NOTE: Do NOT close the underlying connection, only the original logical
+connection wrapper.
+
+== connectionProperties
+
+The connection properties that will be sent to the JDBC driver when
+establishing new connections
+
+Format of the string must be [propertyName=property;]*
+
+NOTE - The "user" and "password" properties will be passed explicitly,
+so they do not need to be included here.
+
+== TransactionIsolation
+
+The default TransactionIsolation state of new connections.
+
+If not set then the `setTransactionIsolation` method will not be called.
+The allowed values for this property are:
+
+* `NONE`
+* `READ_COMMITTED`
+* `READ_UNCOMMITTED`
+* `REPEATABLE_READ`
+* `SERIALIZABLE`
+
+Note: Most JDBC drivers do not support all isolation levels
+DefaultTransactionIsolation
+
+== initialSize
+
+The initial size to initialize the pool of connections.
+
+== jtaManaged
+
+Determines wether or not this data source should be JTA managed or user
+managed.
+
+If set to 'true' it will automatically be enrolled in any ongoing
+transactions. Calling begin/commit/rollback or setAutoCommit on the
+datasource or connection will not be allowed. If you need to perform
+these functions yourself, set `JtaManaged` to `false`
+
+In terms of JPA persistence.xml:
+
+* `JtaManaged=true` can be used as a 'jta-data-source'
+* `JtaManaged=false` can be used as a 'non-jta-data-source'
+
+== maxOpenPreparedStatements
+
+The maximum number of open statements that can be allocated from the
+statement pool at the same time, or zero for no limit.
+
+NOTE - Some drivers have limits on the number of open statements, so
+make sure there are some resources left for the other (non-prepared)
+statements.
+
+== poolPreparedStatements
+
+If true, a statement pool is created for each Connection and
+PreparedStatements created by one of the following methods are pooled:
+
+[source,java]
+----
+public PreparedStatement prepareStatement(String sql);
+public PreparedStatement prepareStatement(String sql, int resultSetType, int 
resultSetConcurrency)
+----
+
+== testOnBorrow
+
+If true connections will be validated before being returned from the
+pool. If the validation fails, the connection is destroyed, and a new
+conection will be retrieved from the pool (and validated).
+
+NOTE - for a true value to have any effect, the ValidationQuery
+parameter must be set.
+
+== testOnReturn
+
+If true connections will be validated before being returned to the pool.
+If the validation fails, the connection is destroyed instead of being
+returned to the pool.
+
+NOTE - for a true value to have any effect, the ValidationQuery
+parameter must be set.
+
+== testWhileIdle
+
+If true connections will be validated by the idle connection evictor (if
+any). If the validation fails, the connection is destroyed and removed
+from the pool
+
+NOTE - for a true value to have any effect, the
+timeBetweenEvictionRunsMillis property must be a positive number and the
+ValidationQuery parameter must be set.
+
+== XADataSource
+
+There are several ways to configure a XADataSource. Depending the
+underlying datasource (Oracle, MySQL one or the other solution can be
+more adapted.
+
+This part deals with `JtaManaged` XaDataSource since a not managed
+XaDataSource can be defined as a standard resource using `class-name`.
+
+=== Single definition
+
+First solution is to define as `JdbcDriver` an XADataSource:
+
+[source,xml]
+----
+<Resource id="myXaDs" type="DataSource">
+    JdbcDriver = org.foo.MyXaDataSource
+
+    myXaProperty = value
+
+    myPoolProperty = 10
+</Resource>
+----
+
+This solution merges properties for the XaDataSource and the pool
+(tomcat-jdbc for TomEE, dbcp for OpenEJB by default but still
+configurable with DataSourceCreator).
+
+Note: in this case for Oracle for instance you'll define UserName for
+the pool and User for the datasource which can look weird if you don't
+know properties are used for 2 instances (pool and datasource).
+
+Note: this solution uses the same logic than `@DataSourceDefinition`
+factory mecanism.
+
+=== Two resources definition
+
+An alternative is to define a resource for the XaDataSource:
+
+[source,xml]
+----
+<Resource id="myXa" class-name="org.foo.MyXaDataSource">
+    myXaProperty = value
+</Resource>
+----
+
+And then wrap it in the pool:
+
+[source,xml]
+----
+<Resource id="myXaDs" type="DataSource">
+    DataSourceCreator = [dbcp|dbcp-alternative]
+    myPoolProperty = 10
+</Resource>
+----
+
+Note: `dbcp` is more adapted than `dbcp-alternative` in most of the case
+because it is reusing direct dbcp JTA management.
+
+=== Known issues
+
+For TomEE 1.7.0/1.7.1 you can need to add the property:
+
+[source,properties]
+----
+ openejb.datasource.pool = true
+----
+
+in resource properties to ensure the resource is pooled.
+
+=== Details about DataSource and their factories (advanced configuration)
+
+link:datasource-configuration-by-creator.html[Configuration by creator]
diff --git a/docs/initialcontext-config.adoc b/docs/initialcontext-config.adoc
new file mode 100644
index 0000000..60fe0aa
--- /dev/null
+++ b/docs/initialcontext-config.adoc
@@ -0,0 +1,44 @@
+= InitialContext Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A InitialContext can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<JndiProvider id="myInitialContext" type="javax.naming.InitialContext">
+</JndiProvider>
+----
+
+Alternatively, a InitialContext can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myInitialContext = new://JndiProvider?type=javax.naming.InitialContext
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared InitialContext a
+warning will be logged. If a InitialContext is needed by the application
+and one is not declared, TomEE will create one dynamically using default
+settings. Multiple InitialContext declarations are allowed. # Supported
+Properties
+
+Property
+
+Type
+
+Default
+
+Description
diff --git a/docs/installation.adoc b/docs/installation.adoc
new file mode 100644
index 0000000..0e1e5b5
--- /dev/null
+++ b/docs/installation.adoc
@@ -0,0 +1,87 @@
+= Installing TomEE
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+NOTE: 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.
+
+== Downloading a Distribution Archive
+
+Download a distribution archive of the latest TomEE release from the
+link:downloads.html[Downloads] page. If you are not sure which one to
+use, take apache-tomee-webprofile-x.y.z.zip.
+
+If you want to try out the latest development snapshot (e.g. to test a
+bugfix which has not yet been released), then download an archive
+directly from the
+https://repository.apache.org/content/groups/snapshots/org/apache/openejb/apache-tomee[Apache
+Maven Snapshots Repository] instead.
+
+The instructions on this page work with the webprofile distribution but
+apply to all TomEE distributions (webprofile, jaxrs or plus). If you
+work with the jaxrs or plus distribution, simply replace the name where
+appropriate.
+
+== Unpacking the Archive
+
+Unpack the archive in any directory. The top-level directory of the
+unpacked archive is called apache-tomee-webprofile-x.y.z/. We refer to
+this directory as $CATALINA_HOME in the following.
+
+== Prerequisites for Running TomEE
+
+* A Java 6 or 7 runtime environment is in your PATH.
+* TCP ports 8080, 8005 and 8009 are free.
+
+== Starting TomEE
+
+To start TomEE as a background process, invoke
+
+[source,java]
+----
+$CATALINA_HOME/bin/startup.sh
+----
+
+To start TomEE in foreground, invoke
+
+[source,java]
+----
+$CATALINA_HOME/bin/catalina.sh run
+----
+
+== Log Messages
+
+When running TomEE in foreground, it will print all log messages to the
+console.
+
+When running TomEE in background, it will only print a couple of
+environment variables. The log messages go to a file
+
+[source,java]
+----
+$CATALINA_HOME/logs/catalina.out
+----
+
+== Stopping TomEE
+
+To stop TomEE, invoke
+
+[source,java]
+----
+$CATALINA_HOME/bin/shutdown.sh
+----
+
+If you started TomEE in foreground via `catalina.sh run`, it is safe to
+simply type `Ctrl-C`.
diff --git a/docs/javamailsession-config.adoc b/docs/javamailsession-config.adoc
new file mode 100644
index 0000000..3764c1b
--- /dev/null
+++ b/docs/javamailsession-config.adoc
@@ -0,0 +1,44 @@
+= JavaMailSession Configuration
+:index-group: Configuration
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A JavaMailSession can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Resource id="myJavaMailSession" type="javax.mail.Session">
+</Resource>
+----
+
+Alternatively, a JavaMailSession can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myJavaMailSession = new://Resource?type=javax.mail.Session
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared JavaMailSession a
+warning will be logged. If a JavaMailSession is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple JavaMailSession declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
diff --git a/docs/jmsconnectionfactory-config.adoc 
b/docs/jmsconnectionfactory-config.adoc
new file mode 100644
index 0000000..ddaa734
--- /dev/null
+++ b/docs/jmsconnectionfactory-config.adoc
@@ -0,0 +1,104 @@
+= JmsConnectionFactory Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A JmsConnectionFactory can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Resource id="myJmsConnectionFactory" type="javax.jms.ConnectionFactory">
+    connectionMaxIdleTime = 15 Minutes
+    connectionMaxWaitTime = 5 seconds
+    poolMaxSize = 10
+    poolMinSize = 0
+    resourceAdapter = Default JMS Resource Adapter
+    transactionSupport = xa
+</Resource>
+----
+
+Alternatively, a JmsConnectionFactory can be declared via properties in
+the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myJmsConnectionFactory = new://Resource?type=javax.jms.ConnectionFactory
+myJmsConnectionFactory.connectionMaxIdleTime = 15 Minutes
+myJmsConnectionFactory.connectionMaxWaitTime = 5 seconds
+myJmsConnectionFactory.poolMaxSize = 10
+myJmsConnectionFactory.poolMinSize = 0
+myJmsConnectionFactory.resourceAdapter = Default JMS Resource Adapter
+myJmsConnectionFactory.transactionSupport = xa
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared JmsConnectionFactory
+a warning will be logged. If a JmsConnectionFactory is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple JmsConnectionFactory declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+connectionMaxIdleTime
+
+time
+
+15 Minutes
+
+Maximum amount of time a connection can be idle before being reclaimed
+
+connectionMaxWaitTime
+
+time
+
+5 seconds
+
+Maximum amount of time to wait for a connection
+
+poolMaxSize
+
+int
+
+10
+
+Maximum number of physical connection to the ActiveMQ broker
+
+poolMinSize
+
+int
+
+0
+
+Minimum number of physical connection to the ActiveMQ broker
+
+resourceAdapter
+
+String
+
+Default JMS Resource Adapter
+
+transactionSupport
+
+String
+
+xa
+
+Specifies if the connection is enrolled in global transaction allowed
+values: xa, local or none
diff --git a/docs/managedcontainer-config.adoc 
b/docs/managedcontainer-config.adoc
new file mode 100644
index 0000000..869200f
--- /dev/null
+++ b/docs/managedcontainer-config.adoc
@@ -0,0 +1,44 @@
+= ManagedContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A ManagedContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="myManagedContainer" type="MANAGED">
+</Container>
+----
+
+Alternatively, a ManagedContainer can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myManagedContainer = new://Container?type=MANAGED
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared ManagedContainer a
+warning will be logged. If a ManagedContainer is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple ManagedContainer declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
diff --git a/docs/messagedrivencontainer-config.adoc 
b/docs/messagedrivencontainer-config.adoc
new file mode 100644
index 0000000..640390f
--- /dev/null
+++ b/docs/messagedrivencontainer-config.adoc
@@ -0,0 +1,87 @@
+= MessageDrivenContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A MessageDrivenContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="myMessageDrivenContainer" type="MESSAGE">
+    activationSpecClass = org.apache.activemq.ra.ActiveMQActivationSpec
+    instanceLimit = 10
+    messageListenerInterface = javax.jms.MessageListener
+    resourceAdapter = Default JMS Resource Adapter
+</Container>
+----
+
+Alternatively, a MessageDrivenContainer can be declared via properties
+in the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myMessageDrivenContainer = new://Container?type=MESSAGE
+myMessageDrivenContainer.activationSpecClass = 
org.apache.activemq.ra.ActiveMQActivationSpec
+myMessageDrivenContainer.instanceLimit = 10
+myMessageDrivenContainer.messageListenerInterface = javax.jms.MessageListener
+myMessageDrivenContainer.resourceAdapter = Default JMS Resource Adapter
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared
+MessageDrivenContainer a warning will be logged. If a
+MessageDrivenContainer is needed by the application and one is not
+declared, TomEE will create one dynamically using default settings.
+Multiple MessageDrivenContainer declarations are allowed. # Supported
+Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+activationSpecClass
+
+String
+
+org.apache.activemq.ra.ActiveMQActivationSpec
+
+Specifies the activation spec class
+
+instanceLimit
+
+int
+
+10
+
+Specifies the maximum number of bean instances that are allowed to exist
+for each MDB deployment.
+
+messageListenerInterface
+
+String
+
+javax.jms.MessageListener
+
+Specifies the message listener interface handled by this container
+
+resourceAdapter
+
+String
+
+Default JMS Resource Adapter
+
+The resource adapter delivers messages to the container
diff --git a/docs/orb-config.adoc b/docs/orb-config.adoc
new file mode 100644
index 0000000..f06f86e
--- /dev/null
+++ b/docs/orb-config.adoc
@@ -0,0 +1,42 @@
+= ORB Configuration
+:index-group: Configuration
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A ORB can be declared via xml in the `<tomee-home>/conf/tomee.xml` file
+or in a `WEB-INF/resources.xml` file using a declaration like the
+following. All properties in the element body are optional.
+
+[source,xml]
+----
+<Resource id="myORB" type="org.omg.CORBA.ORB">
+</Resource>
+----
+
+Alternatively, a ORB can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myORB = new://Resource?type=org.omg.CORBA.ORB
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared ORB a warning will be
+logged. If a ORB is needed by the application and one is not declared,
+TomEE will create one dynamically using default settings. Multiple ORB
+declarations are allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
diff --git a/docs/proxyfactory-config.adoc b/docs/proxyfactory-config.adoc
new file mode 100644
index 0000000..2a91741
--- /dev/null
+++ b/docs/proxyfactory-config.adoc
@@ -0,0 +1,44 @@
+= ProxyFactory Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A ProxyFactory can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<ProxyFactory id="myProxyFactory" type="ProxyFactory">
+</ProxyFactory>
+----
+
+Alternatively, a ProxyFactory can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myProxyFactory = new://ProxyFactory?type=ProxyFactory
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared ProxyFactory a
+warning will be logged. If a ProxyFactory is needed by the application
+and one is not declared, TomEE will create one dynamically using default
+settings. Multiple ProxyFactory declarations are allowed. # Supported
+Properties
+
+Property
+
+Type
+
+Default
+
+Description
diff --git a/docs/queue-config.adoc b/docs/queue-config.adoc
new file mode 100644
index 0000000..8c02cc5
--- /dev/null
+++ b/docs/queue-config.adoc
@@ -0,0 +1,50 @@
+= Queue Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A Queue can be declared via xml in the `<tomee-home>/conf/tomee.xml`
+file or in a `WEB-INF/resources.xml` file using a declaration like the
+following. All properties in the element body are optional.
+
+[source,xml]
+----
+<Resource id="myQueue" type="javax.jms.Queue">
+    destination = 
+</Resource>
+----
+
+Alternatively, a Queue can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myQueue = new://Resource?type=javax.jms.Queue
+myQueue.destination = 
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared Queue a warning will
+be logged. If a Queue is needed by the application and one is not
+declared, TomEE will create one dynamically using default settings.
+Multiple Queue declarations are allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+destination
+
+String
+
+Specifies the name of the queue
diff --git a/docs/securityservice-config.adoc b/docs/securityservice-config.adoc
new file mode 100644
index 0000000..7cb05fe
--- /dev/null
+++ b/docs/securityservice-config.adoc
@@ -0,0 +1,52 @@
+= SecurityService Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A SecurityService can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<SecurityService id="mySecurityService" type="SecurityService">
+    defaultUser = guest         
+</SecurityService>
+----
+
+Alternatively, a SecurityService can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+mySecurityService = new://SecurityService?type=SecurityService
+mySecurityService.defaultUser = guest         
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared SecurityService a
+warning will be logged. If a SecurityService is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple SecurityService declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+defaultUser
+
+String
+
+guest
diff --git a/docs/singletoncontainer-config.adoc 
b/docs/singletoncontainer-config.adoc
new file mode 100644
index 0000000..489dae9
--- /dev/null
+++ b/docs/singletoncontainer-config.adoc
@@ -0,0 +1,71 @@
+= SingletonContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A SingletonContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="mySingletonContainer" type="SINGLETON">
+    accessTimeout = 30 seconds
+</Container>
+----
+
+Alternatively, a SingletonContainer can be declared via properties in
+the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+mySingletonContainer = new://Container?type=SINGLETON
+mySingletonContainer.accessTimeout = 30 seconds
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared SingletonContainer a
+warning will be logged. If a SingletonContainer is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple SingletonContainer declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+accessTimeout
+
+time
+
+30 seconds
+
+Specifies the maximum time an invocation could wait for the `@Singleton`
+bean instance to become available before giving up.
+
+== accessTimeout
+
+Specifies the maximum time an invocation could wait for the `@Singleton`
+bean instance to become available before giving up.
+
+After the timeout is reached a
+`javax.ejb.ConcurrentAccessTimeoutException` will be thrown.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as
+`1 hour and 27 minutes and 10 seconds`
+
+Any usage of the `javax.ejb.AccessTimeout` annotation will override this
+setting for the bean or method where the annotation is used.
diff --git a/docs/statefulcontainer-config.adoc 
b/docs/statefulcontainer-config.adoc
new file mode 100644
index 0000000..3137b0c
--- /dev/null
+++ b/docs/statefulcontainer-config.adoc
@@ -0,0 +1,167 @@
+= StatefulContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A StatefulContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="myStatefulContainer" type="STATEFUL">
+    accessTimeout = 30 seconds
+    bulkPassivate = 100
+    cache = org.apache.openejb.core.stateful.SimpleCache
+    capacity = 1000
+    frequency = 60
+    passivator = org.apache.openejb.core.stateful.SimplePassivater
+    timeOut = 20
+</Container>
+----
+
+Alternatively, a StatefulContainer can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myStatefulContainer = new://Container?type=STATEFUL
+myStatefulContainer.accessTimeout = 30 seconds
+myStatefulContainer.bulkPassivate = 100
+myStatefulContainer.cache = org.apache.openejb.core.stateful.SimpleCache
+myStatefulContainer.capacity = 1000
+myStatefulContainer.frequency = 60
+myStatefulContainer.passivator = 
org.apache.openejb.core.stateful.SimplePassivater
+myStatefulContainer.timeOut = 20
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared StatefulContainer a
+warning will be logged. If a StatefulContainer is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple StatefulContainer declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+accessTimeout
+
+time
+
+30 seconds
+
+Specifies the maximum time an invocation could wait for the `@Stateful`
+bean instance to become available before giving up.
+
+bulkPassivate
+
+int
+
+100
+
+Property name that specifies the number of instances to passivate at one
+time when doing bulk passivation.
+
+cache
+
+String
+
+org.apache.openejb.core.stateful.SimpleCache
+
+The cache is responsible for managing stateful bean instances. The cache
+can page instances to disk as memory is filled and can destroy abandoned
+instances. A different cache implementation can be used by setting this
+property to the fully qualified class name of the Cache implementation.
+
+capacity
+
+int
+
+1000
+
+Specifies the size of the bean pools for this stateful SessionBean
+container.
+
+frequency
+
+int
+
+60
+
+Specifies the frequency (in seconds) at which the bean cache is checked
+for idle beans.
+
+passivator
+
+String
+
+org.apache.openejb.core.stateful.SimplePassivater
+
+The passivator is responsible for writing beans to disk at passivation
+time. Different passivators can be used by setting this property to the
+fully qualified class name of the `PassivationStrategy` implementation.
+The passivator is not responsible for invoking any callbacks or other
+processing, its only responsibly is to write the bean state to disk.
+
+timeOut
+
+time
+
+20
+
+Specifies the time a bean can be idle before it is removed by the
+container.
+
+== accessTimeout
+
+Specifies the maximum time an invocation could wait for the `@Stateful`
+bean instance to become available before giving up.
+
+After the timeout is reached a
+`javax.ejb.ConcurrentAccessTimeoutException` will be thrown.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as "1 hour and 27 minutes
+and 10 seconds"
+
+Any usage of the `javax.ejb.AccessTimeout` annotation will override this
+setting for the bean or method where the annotation is used.
+
+== passivator
+
+The passivator is responsible for writing beans to disk at passivation
+time. Different passivators can be used by setting this property to the
+fully qualified class name of the `PassivationStrategy` implementation.
+The passivator is not responsible for invoking any callbacks or other
+processing, its only responsibly is to write the bean state to disk.
+
+Known implementations:
+
+* org.apache.openejb.core.stateful.RAFPassivater
+* org.apache.openejb.core.stateful.SimplePassivater
+
+== timeOut
+
+Specifies the time a bean can be idle before it is removed by the
+container.
+
+This value is measured in minutes. A value of 5 would result in a
+time-out of 5 minutes between invocations. A value of -1 would mean no
+timeout. A value of 0 would mean a bean can be immediately removed by
+the container.
+
+Any usage of the `javax.ejb.StatefulTimeout` annotation will override
+this setting for the bean where the annotation is used.
diff --git a/docs/statelesscontainer-config.adoc 
b/docs/statelesscontainer-config.adoc
new file mode 100644
index 0000000..60d1b2f
--- /dev/null
+++ b/docs/statelesscontainer-config.adoc
@@ -0,0 +1,445 @@
+= StatelessContainer Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A StatelessContainer can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<Container id="myStatelessContainer" type="STATELESS">
+    accessTimeout = 30 seconds
+    callbackThreads = 5
+    closeTimeout = 5 minutes
+    garbageCollection = false
+    idleTimeout = 0 minutes
+    maxAge = 0 hours
+    maxAgeOffset = -1
+    maxSize = 10
+    minSize = 0
+    replaceAged = true
+    replaceFlushed = false
+    strictPooling = true
+    sweepInterval = 5 minutes
+</Container>
+----
+
+Alternatively, a StatelessContainer can be declared via properties in
+the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myStatelessContainer = new://Container?type=STATELESS
+myStatelessContainer.accessTimeout = 30 seconds
+myStatelessContainer.callbackThreads = 5
+myStatelessContainer.closeTimeout = 5 minutes
+myStatelessContainer.garbageCollection = false
+myStatelessContainer.idleTimeout = 0 minutes
+myStatelessContainer.maxAge = 0 hours
+myStatelessContainer.maxAgeOffset = -1
+myStatelessContainer.maxSize = 10
+myStatelessContainer.minSize = 0
+myStatelessContainer.replaceAged = true
+myStatelessContainer.replaceFlushed = false
+myStatelessContainer.strictPooling = true
+myStatelessContainer.sweepInterval = 5 minutes
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared StatelessContainer a
+warning will be logged. If a StatelessContainer is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple StatelessContainer declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+accessTimeout
+
+time
+
+30 seconds
+
+Specifies the time an invokation should wait for an instance of the pool
+to become available.
+
+callbackThreads
+
+int
+
+5
+
+The number of threads for constructing and destroying beans.
+
+closeTimeout
+
+time
+
+5 minutes
+
+Maximum time to wait for instances to be destroyed when shutting down
+the pool
+
+garbageCollection
+
+boolean
+
+false
+
+Allows Garbage Collection to be used as a mechanism for shrinking the
+pool.
+
+idleTimeout
+
+time
+
+0 minutes
+
+Specifies the maximum time that an instance should be allowed to sit
+idly in the pool without use before it should be retired and removed.
+
+maxAge
+
+time
+
+0 hours
+
+Specifies the maximum time that an instance should live before it should
+be retired and removed from use.
+
+maxAgeOffset
+
+int
+
+-1
+
+Applies to MaxAge usage and would rarely be changed, but is a nice
+feature to understand.
+
+maxSize
+
+int
+
+10
+
+Specifies the size of the instance pool for this stateless SessionBean
+container.
+
+minSize
+
+int
+
+0
+
+Specifies the minimum number of bean instances that should be in the
+pool for each bean.
+
+replaceAged
+
+boolean
+
+true
+
+When `ReplaceAged` is enabled, any instances in the pool that expire due
+to reaching their `MaxAge` will be replaced immediately so that the pool
+will remain at its current size.
+
+replaceFlushed
+
+boolean
+
+false
+
+When `ReplaceFlushed` is enabled, any instances in the pool that are
+flushed will be replaced immediately so that the pool will remain at its
+current size.
+
+strictPooling
+
+boolean
+
+true
+
+StrictPooling tells the container what to do when the pool reaches it's
+maximum size and there are incoming requests that need instances.
+
+sweepInterval
+
+time
+
+5 minutes
+
+The frequency in which the container will sweep the pool and evict
+expired instances.
+
+== accessTimeout
+
+Specifies the time an invokation should wait for an instance of the pool
+to become available.
+
+After the timeout is reached, if an instance in the pool cannot be
+obtained, the method invocation will fail.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as "1 hour and 27 minutes
+and 10 seconds"
+
+Any usage of the `javax.ejb.AccessTimeout` annotation will override this
+setting for the bean or method where the annotation is used.
+
+== callbackThreads
+
+The number of threads for constructing and destroying beans.
+
+When sweeping the pool for expired instances a thread pool is used to
+process calling `@PreDestroy` on expired instances as well as creating
+new instances as might be required to fill the pool to the minimum after
+a Flush or `MaxAge` expiration. The `CallbackThreads` setting dictates
+the size of the thread pool and is shared by all beans deployed in the
+container.
+
+== closeTimeout
+
+Maximum time to wait for instances to be destroyed when shutting down
+the pool
+
+PostConstruct methods are invoked on all instances in the pool when the
+bean is undeployed and its pool is closed. The `CloseTimeout` specifies
+the maximum time to wait for the pool to close and `PostConstruct`
+methods to be invoked.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as
+`1 hour and 27 minutes and 10 seconds`
+
+== garbageCollection
+
+Allows Garbage Collection to be used as a mechanism for shrinking the
+pool.
+
+When set to true all instances in the pool, excluding the minimum, are
+eligible for garbage collection by the virtual machine as per the rules
+of `java.lang.ref.SoftReference` and can be claimed by the JVM to free
+memory. Instances garbage collected will have their `@PreDestroy`
+methods called during finalization.
+
+In the OpenJDK VM the `-XX:SoftRefLRUPolicyMSPerMB` flag can adjust how
+aggressively SoftReferences are collected. The default OpenJDK setting
+is 1000, resulting in inactive pooled instances living one second of
+lifetime per free megabyte in the heap, which is very aggressive. The
+setting should be increased to get the most out of the
+`GarbageCollection` feature of the pool. Much higher settings are safe.
+Even a setting as high as 3600000 (1 hour per free MB in the heap) does
+not affect the ability for the VM to garbage collect SoftReferences in
+the event that memory is needed to avoid an `OutOfMemoryException`.
+
+== idleTimeout
+
+Specifies the maximum time that an instance should be allowed to sit
+idly in the pool without use before it should be retired and removed.
+
+Only instances in surplus of the pool's `MinSize` are eligible to expire
+via `IdleTimeout` Instances that expire due to `IdleTimeout` will have
+their `@PreDestroy` methods invoked before being completely destroyed.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as "1 hour and 27 minutes
+and 10 seconds"
+
+== maxAge
+
+Specifies the maximum time that an instance should live before it should
+be retired and removed from use.
+
+This will happen gracefully. Useful for situations where bean instances
+are designed to hold potentially expensive resources such as memory or
+file handles and need to be periodically cleared out.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as
+`1 hour and 27 minutes and 10 seconds`
+
+== maxAgeOffset
+
+Applies to MaxAge usage and would rarely be changed, but is a nice
+feature to understand.
+
+When the container first starts and the pool is filled to the minimum
+size, all those "minimum" instances will have the same creation time and
+therefore all expire at the same time dictated by the `MaxAge` setting.
+To protect against this sudden drop scenario and provide a more gradual
+expiration from the start the container will spread out the age of the
+instances that fill the pool to the minimum using an offset.
+
+The `MaxAgeOffset` is not the final value of the offset, but rather it
+is used in creating the offset and allows the spreading to push the
+initial ages into the future or into the past. The pool is filled at
+startup as follows:
+
+[source,java]
+----
+for (int i = 0; i < poolMin; i++) {
+    long ageOffset = (maxAge / poolMin * i * maxAgeOffset) % maxAge;
+    pool.add(new Bean(), ageOffset));
+}
+----
+
+The default `MaxAgeOffset` is -1 which causes the initial instances in
+the pool to live a bit longer before expiring. As a concrete example,
+let's say the MinSize is 4 and the MaxAge is 100 years. The generated
+offsets for the four instances created at startup would be 0, -25, -50,
+-75. So the first instance would be "born" at age 0, die at 100, living
+100 years. The second instance would be born at -25, die at 100, living
+a total of 125 years. The third would live 150 years. The fourth 175
+years.
+
+A `MaxAgeOffset` of 1 would cause instances to be "born" older and
+therefore die sooner. Using the same example `MinSize` of 4 and `MaxAge`
+of `100 years`, the life spans of these initial four instances would be
+100, 75, 50, and 25 years respectively.
+
+A `MaxAgeOffset` of 0 will cause no "spreading" of the age of the first
+instances used to fill the pool to the minimum and these instances will
+of course reach their MaxAge at the same time. It is possible to set to
+decimal values such as -0.5, 0.5, -1.2, or 1.2.
+
+== maxSize
+
+Specifies the size of the instance pool for this stateless SessionBean
+container.
+
+Each `@Stateless` bean will get its own instance pool. If StrictPooling
+is not used, instances will still be created beyond this number if there
+is demand, but they will not be returned to the pool and instead will be
+immediately expire.
+
+== minSize
+
+Specifies the minimum number of bean instances that should be in the
+pool for each bean.
+
+Pools are prefilled to the minimum on startup. Note this will create
+start order dependencies between other beans that also eagerly start,
+such as other `@Stateless` beans with a minimum or `@Singleton` beans
+using `@Startup`. The `@DependsOn` annotation can be used to
+appropriately influence start order.
+
+The minimum pool size is rigidly maintained. Instances in the minimum
+side of the pool are not eligible for `IdleTimeout` or
+`GarbageCollection`, but are subject to `MaxAge` and flushing.
+
+If the pool is flushed it is immediately refilled to the minimum size
+with `MaxAgeOffset` applied. If an instance from the minimum side of the
+pool reaches its `MaxAge`, it is also immediately replaced. Replacement
+is done in a background queue using the number of threads specified by
+`CallbackThreads`.
+
+== replaceAged
+
+When `ReplaceAged` is enabled, any instances in the pool that expire due
+to reaching their `MaxAge` will be replaced immediately so that the pool
+will remain at its current size.
+
+Replacement is done in a background queue so that incoming threads will
+not have to wait for instance creation.
+
+The aim of his option is to prevent user requests from paying the
+instance creation cost as `MaxAge` is enforced, potentially while under
+heavy load at peak hours.
+
+Instances from the minimum side of the pool are always replaced when
+they reach their `MaxAge`, this setting dictates the treatment of
+non-minimum instances.
+
+== replaceFlushed
+
+When `ReplaceFlushed` is enabled, any instances in the pool that are
+flushed will be replaced immediately so that the pool will remain at its
+current size.
+
+Replacement is done in a background queue so that incoming threads will
+not have to wait for instance creation.
+
+The aim of his option is to prevent user requests from paying the
+instance creation cost if a flush performed while under heavy load at
+peak hours.
+
+Instances from the minimum side of the pool are always replaced when
+they are flushed, this setting dictates the treatment of non-minimum
+instances.
+
+A bean may flush its pool by casting the `SessionContext` to `Flushable`
+and calling `flush()`. See `SweepInterval` for details on how flush is
+performed.
+
+[source,java]
+----
+import javax.annotation.Resource;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateless;
+import java.io.Flushable;
+import java.io.IOException;
+
+public class MyBean {
+
+    private SessionContext sessionContext;
+
+    public void flush() throws IOException {
+
+        ((Flushable) sessionContext).flush();
+    }
+}
+----
+
+== strictPooling
+
+StrictPooling tells the container what to do when the pool reaches it's
+maximum size and there are incoming requests that need instances.
+
+With strict pooling, requests will have to wait for instances to become
+available. The pool size will never grow beyond the the set `MaxSize`
+value. The maximum amount of time a request should wait is specified via
+the `AccessTimeout` setting.
+
+Without strict pooling, the container will create temporary instances to
+meet demand. The instances will last for just one method invocation and
+then are removed.
+
+Setting `StrictPooling` to `false` and `MaxSize` to `0` will result in
+no pooling. Instead instances will be created on demand and live for
+exactly one method call before being removed.
+
+== sweepInterval
+
+The frequency in which the container will sweep the pool and evict
+expired instances.
+
+Eviction is how the `IdleTimeout`, `MaxAge`, and pool "flush"
+functionality is enforced. Higher intervals are better.
+
+Instances in use are excluded from sweeping. Should an instance expire
+while in use it will be evicted immediately upon return to the pool.
+Effectively `MaxAge` and flushes will be enforced as a part of normal
+activity or sweeping, while IdleTimeout is only enforcable via sweeping.
+This makes aggressive sweeping less important for a pool under moderate
+load.
+
+Usable time units: nanoseconds, microsecons, milliseconds, seconds,
+minutes, hours, days. Or any combination such as
+`1 hour and 27 minutes and 10 seconds`
diff --git a/docs/tomee-maven-plugin.adoc b/docs/tomee-maven-plugin.adoc
new file mode 100644
index 0000000..e1fb230
--- /dev/null
+++ b/docs/tomee-maven-plugin.adoc
@@ -0,0 +1,178 @@
+= TomEE Maven Plugin
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+Inspired by the Jetty Maven Plugin, the TomEE Maven Plugin is a
+feature-rich plugin that allows for:
+
+* Easy provisioning of a TomEE server
+* Server start and stop
+* Application deployment and undeployment
+
+Simply add the following to the , and optionally the ), section of your
+`pom.xml`
+
+[source,xml]
+----
+<plugins>
+    <plugin>
+      <groupId>org.apache.openejb.maven</groupId>
+      <artifactId>tomee-maven-plugin</artifactId>
+      <version>1.7.1</version>
+      <configuration>
+        <tomeeVersion>1.7.1</tomeeVersion>
+        <tomeeClassifier>plus</tomeeClassifier>
+      </configuration>
+    </plugin>
+</plugins>
+----
+
+== Plugin Goals
+
+Goal
+
+Description
+
+tomee:build
+
+Create TomEE, but do not run it.
+
+tomee:configtest
+
+Run the Apache Tomcat `configtest` command.
+
+tomee:debug
+
+Same as `run` but with debug activated on the default or specified port.
+
+tomee:deploy
+
+Deploy an application in a running TomEE.
+
+tomee:exec
+
+Creates an executable jar of the application.
+
+tomee:help
+
+Display help information on the tomee-maven-plugin. Call mvn tomee:help
+-Ddetail=true -Dgoal=<goal-name> to display parameter details.
+
+tomee:list
+
+Largely inspired by the OpenEJB command helper, but with some
+differences. List deployed EJB's in a running TomEE.
+
+tomee:run
+
+Start and wait for TomEE.
+
+tomee:start
+
+Start TomEE and continue.
+
+tomee:stop
+
+Stop a TomEE started with start command.
+
+tomee:undeploy
+
+Undeploy an application in a running TomEE
+
+Note that for the tomee:deploy and tomee:undeploy goals, the path can
+either be specified within the section of the `pom.xml` using the
+parameter, or it can be passed via the user property
+tomee-plugin.archive. If a relative path is passed for the deploy path
+archive, this must be relative to the TomEE server.
+
+Note 2: running tomee maven plugin you can type 'quit' directly in the
+console to shutdown correctly the server. 'reload' is also available
+when internal openejb application is deployed.
+
+###More Tweaks
+
+The lib tag allows to enrich the container with some additional
+libraries.
+
+Some interesting patterns in addition to the default maven formats are
+supported.
+
+* remove:<some prefix of jar in lib folder>: remove all jar starting
+with the specified prefix
+* unzip:<some maven zip>: extract the zip in lib folder
+* ?name=<new-name>: rename the libary once copied in lib folder
+
+Note: the name tweak can be used to rename applications too
+
+###Provisioning Example
+
+This plugin is also usable in projects which are not war. For instance
+you can use it in a pom project to setup a TomEE install, add libraries,
+deploy apps then run the server.
+
+[source,xml]
+----
+  <plugin>
+    <groupId>org.apache.openejb.maven</groupId>
+    <artifactId>tomee-maven-plugin</artifactId>
+    <version>1.7.1</version>
+    <configuration>
+      <tomeeVersion>1.7.1</tomeeVersion>
+      <tomeeClassifier>plus</tomeeClassifier>
+      <debug>false</debug>
+      <debugPort>5005</debugPort>
+      <args>-Dfoo=bar</args>
+      <config>${project.basedir}/src/test/tomee/conf</config>
+      <libs>
+        <lib>mysql:mysql-connector-java:5.1.20</lib>
+      </libs>
+      <webapps>
+         <webapp>org.superbiz:myapp:4.3?name=ROOT</webapp>
+         <webapp>org.superbiz:api:1.1</webapp>
+      </webapps>
+      <apps>
+          <app>org.superbiz:mybugapp:3.2:ear</app>
+      </apps>
+      <libs>
+          <lib>mysql:mysql-connector-java:5.1.21</lib>
+          <lib>unzip:org.superbiz:hibernate-bundle:4.1.0.Final:zip</lib>
+          <lib>remove:openjpa-</lib>
+      </libs>
+    </configuration>
+  </plugin>
+----
+
+###Auto Reloading Example
+
+[source,xml]
+----
+<plugin>
+  <groupId>org.apache.openejb.maven</groupId>
+  <artifactId>tomee-maven-plugin</artifactId>
+  <version>1.7.1</version>
+  <configuration>
+    <synchronization>
+      <extensions>
+        <extension>.class</extension> <!-- if you want to update each time you 
build with mvn compile -->
+      </extensions>
+    </synchronization>
+    <reloadOnUpdate>true</reloadOnUpdate>
+  </configuration>
+</plugin>
+----
+
+The Synchronization block supports the following configuration options:
+
+* resourcesDir (default src/main/webapp)
+* binariesDir (default target/classes)
+* targetBinariesDir (default tomee/webapps/finalName/WEB-INF/classes)
+* targetResourcesDir (default tomee/webapps/finalName)
+* updateInterval (default 5 - in second)
+* extensions (default html, xhtml, js and css)
+* regex: a regex should match files to take into account when updating
+
+reloadOnUpdate means to reload the entire context (webapp). This means
+undeploying/redeploying the application.
diff --git a/docs/topic-config.adoc b/docs/topic-config.adoc
new file mode 100644
index 0000000..b086da9
--- /dev/null
+++ b/docs/topic-config.adoc
@@ -0,0 +1,50 @@
+= Topic Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A Topic can be declared via xml in the `<tomee-home>/conf/tomee.xml`
+file or in a `WEB-INF/resources.xml` file using a declaration like the
+following. All properties in the element body are optional.
+
+[source,xml]
+----
+<Resource id="myTopic" type="javax.jms.Topic">
+    destination = 
+</Resource>
+----
+
+Alternatively, a Topic can be declared via properties in the
+`<tomee-home>/conf/system.properties` file or via Java VirtualMachine
+`-D` properties. The properties can also be used when embedding TomEE
+via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
+
+[source,properties]
+----
+myTopic = new://Resource?type=javax.jms.Topic
+myTopic.destination = 
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared Topic a warning will
+be logged. If a Topic is needed by the application and one is not
+declared, TomEE will create one dynamically using default settings.
+Multiple Topic declarations are allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+destination
+
+String
+
+Specifies the name of the topic
diff --git a/docs/transactionmanager-config.adoc 
b/docs/transactionmanager-config.adoc
new file mode 100644
index 0000000..d325c5d
--- /dev/null
+++ b/docs/transactionmanager-config.adoc
@@ -0,0 +1,183 @@
+= TransactionManager Configuration
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+
+A TransactionManager can be declared via xml in the
+`<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file
+using a declaration like the following. All properties in the element
+body are optional.
+
+[source,xml]
+----
+<TransactionManager id="myTransactionManager" type="TransactionManager">
+    adler32Checksum = true
+    bufferSizeKb = 32
+    checksumEnabled = true
+    defaultTransactionTimeout = 10 minutes
+    flushSleepTime = 50 Milliseconds
+    logFileDir = txlog
+    logFileExt = log
+    logFileName = howl
+    maxBlocksPerFile = -1
+    maxBuffers = 0
+    maxLogFiles = 2
+    minBuffers = 4
+    threadsWaitingForceThreshold = -1
+    txRecovery = false
+</TransactionManager>
+----
+
+Alternatively, a TransactionManager can be declared via properties in
+the `<tomee-home>/conf/system.properties` file or via Java
+VirtualMachine `-D` properties. The properties can also be used when
+embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or
+`InitialContext`
+
+[source,properties]
+----
+myTransactionManager = new://TransactionManager?type=TransactionManager
+myTransactionManager.adler32Checksum = true
+myTransactionManager.bufferSizeKb = 32
+myTransactionManager.checksumEnabled = true
+myTransactionManager.defaultTransactionTimeout = 10 minutes
+myTransactionManager.flushSleepTime = 50 Milliseconds
+myTransactionManager.logFileDir = txlog
+myTransactionManager.logFileExt = log
+myTransactionManager.logFileName = howl
+myTransactionManager.maxBlocksPerFile = -1
+myTransactionManager.maxBuffers = 0
+myTransactionManager.maxLogFiles = 2
+myTransactionManager.minBuffers = 4
+myTransactionManager.threadsWaitingForceThreshold = -1
+myTransactionManager.txRecovery = false
+----
+
+Properties and xml can be mixed. Properties will override the xml
+allowing for easy configuration change without the need for $\{} style
+variable substitution. Properties are not case sensitive. If a property
+is specified that is not supported by the declared TransactionManager a
+warning will be logged. If a TransactionManager is needed by the
+application and one is not declared, TomEE will create one dynamically
+using default settings. Multiple TransactionManager declarations are
+allowed. # Supported Properties
+
+Property
+
+Type
+
+Default
+
+Description
+
+adler32Checksum
+
+boolean
+
+true
+
+Requires TxRecovery
+
+bufferSizeKb
+
+int
+
+32
+
+Requires TxRecovery
+
+checksumEnabled
+
+boolean
+
+true
+
+Requires TxRecovery
+
+defaultTransactionTimeout
+
+time
+
+10 minutes
+
+flushSleepTime
+
+time
+
+50 Milliseconds
+
+Requires TxRecovery
+
+logFileDir
+
+String
+
+txlog
+
+Requires TxRecovery
+
+logFileExt
+
+String
+
+log
+
+Requires TxRecovery
+
+logFileName
+
+String
+
+howl
+
+Requires TxRecovery
+
+maxBlocksPerFile
+
+int
+
+-1
+
+Requires TxRecovery
+
+maxBuffers
+
+int
+
+0
+
+Requires TxRecovery
+
+maxLogFiles
+
+int
+
+2
+
+Requires TxRecovery
+
+minBuffers
+
+int
+
+4
+
+Requires TxRecovery
+
+threadsWaitingForceThreshold
+
+int
+
+-1
+
+Requires TxRecovery
+
+txRecovery
+
+boolean
+
+false
+
+When set to true, Howl logging is enabled

Reply via email to