= 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 `jakarta.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
