Title: Example Generated Documentation
{anchor: containers}
<a name="ExampleGeneratedDocumentation-Containers"></a>
## Containers
{anchor:Default CMP Container-container}
<a name="ExampleGeneratedDocumentation-DefaultCMPContainer"></a>
### Default CMP Container
    || Property Name || Description ||
    | CmpEngineFactory | Default value is
_org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory_.||

{anchor:Default BMP Container-container}
<a name="ExampleGeneratedDocumentation-DefaultBMPContainer"></a>
### Default BMP Container
    || Property Name || Description ||
  
  

{anchor:Default Stateless Container-container}
<a name="ExampleGeneratedDocumentation-DefaultStatelessContainer"></a>
### Default Stateless Container
    || Property Name || Description ||
  
  
  
  
  
  

{anchor:Default Stateful Container-container}
<a name="ExampleGeneratedDocumentation-DefaultStatefulContainer"></a>
### Default Stateful Container
    || Property Name || Description ||
  
  
  
  
  
  
  
  

{anchor:Default MDB Container-container}
<a name="ExampleGeneratedDocumentation-DefaultMDBContainer"></a>
### Default MDB Container
    || Property Name || Description ||
  
  
  
  
  
  
  
  


{anchor: resources}
<a name="ExampleGeneratedDocumentation-Resources"></a>
## Resources
{anchor:Default JDBC Database-resource}
<a name="ExampleGeneratedDocumentation-DefaultJDBCDatabase"></a>
### Default JDBC Database
    || Property Name || Description ||
  
  
  
  
  
  
  
  
    | Password | Default password|
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

{anchor:Default Unmanaged JDBC Database-resource}
<a name="ExampleGeneratedDocumentation-DefaultUnmanagedJDBCDatabase"></a>
### Default Unmanaged JDBC Database
    || Property Name || Description ||
    | JtaManaged | Default value is _false_.||
  
  
  
  
  
  
    | Password | Default password|
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

{anchor:Default JMS Resource Adapter-resource}
<a name="ExampleGeneratedDocumentation-DefaultJMSResourceAdapter"></a>
### Default JMS Resource Adapter
    || Property Name || Description ||
  
  
  
  
  
  
  
  

{anchor:Default JMS Connection Factory-resource}
<a name="ExampleGeneratedDocumentation-DefaultJMSConnectionFactory"></a>
### Default JMS Connection Factory
    || Property Name || Description ||
    | ResourceAdapter | Default value is _Default JMS Resource Adapter_.||
  
  
  
  
  
  
  
  
  
  

{anchor:Default Queue-resource}
<a name="ExampleGeneratedDocumentation-DefaultQueue"></a>
### Default Queue
    || Property Name || Description ||
    | destination | Specifies the name of the queue|

{anchor:Default Topic-resource}
<a name="ExampleGeneratedDocumentation-DefaultTopic"></a>
### Default Topic
    || Property Name || Description ||
    | destination | Specifies the name of the topic|

{anchor:Default ORB-resource}
<a name="ExampleGeneratedDocumentation-DefaultORB"></a>
### Default ORB
No properties.

{anchor:Default Mail Session-resource}
<a name="ExampleGeneratedDocumentation-DefaultMailSession"></a>
### Default Mail Session
No properties.

