| = openejb.xml |
| :index-group: EJB |
| :jbake-date: 2018-12-05 |
| :jbake-type: page |
| :jbake-status: published |
| |
| |
| == Overview |
| |
| The openejb.xml is the main configuration file for the container system |
| and its services such as transaction, security, and data sources. |
| |
| The format is a mix of xml and properties inspired by the format of the |
| httpd configuration file. Basically: |
| |
| [source,xml] |
| ---- |
| <tag id=""> |
| ...properties... |
| </tag> |
| ---- |
| |
| Such as: |
| |
| [source,xml] |
| ---- |
| <Resource id="MyDataSource" type="DataSource"> |
| username foo |
| password bar |
| </Resource> |
| ---- |
| |
| _Note the space_. White space is a valid name/value pair separator in |
| any java properties file (along with semi-colon). So the above is |
| equivalent to: |
| |
| [source,xml] |
| ---- |
| <Resource id="MyDataSource" type="DataSource"> |
| username = foo |
| password = bar |
| </Resource> |
| ---- |
| |
| You are free to use white space, ":", or "=" for your name/value pair |
| separator with no effect on OpenEJB. |
| |
| == Property Defaults and Overriding |
| |
| The openejb.xml file itself functions as an override, default values are |
| specified via other means (service-jar.xml files in the classpath), |
| therefore you only need to specify property values here for 2 reasons: |
| 1. you wish to for documentation purposes 2. you need to change the |
| default value |
| |
| The default openejb.xml file has most of the useful properties for each |
| component explicitly listed with default values for documentation |
| purposes. It is safe to delete them and be assured that no behavior will |
| change if a smaller config file is desired. |
| |
| Overriding can also be done via the command line or plain Java system |
| properties. See link:system-properties.html[System Properties] for |
| details. |
| |
| == What properties are available? |
| |
| To know what properties can be overriden the './bin/openejb properties' |
| command is very useful: see link:properties-tool.html[Properties Tool] |
| |
| Its function is to connect to a running server and print a canonical |
| list of all properties OpenEJB can see via the various means of |
| configuration. When sending requests for help to the users list or jira, |
| it is highly encouraged to send the output of this tool with your |
| message. |
| |
| == Not configurable via openejb.xml |
| |
| The only thing not yet configurable via this file are ServerServices due |
| to OpenEJB's embeddable nature and resulting long standing tradition of |
| keeping the container system separate from the server layer. This may |
| change someday, but untill then ServerServices are configurable via |
| conf/.properties files such as conf/ejbd.properties to configure the |
| main protocol that services EJB client requests. |
| |
| The format of those properties files is greatly adapted from the xinet.d |
| style of configuration and even shares similar functionality and |
| properties such as host-based authorization (HBA) via the 'only_from' |
| property. |
| |
| == Restoring openejb.xml to the defaults |
| |
| To restore this file to its original default state, you can simply |
| delete it or rename it and OpenEJB will see it's missing and unpack |
| another openejb.xml into the conf/ directory when it starts. |
| |
| This is not only handy for recovering from a non-functional config, but |
| also for upgrading as OpenEJB will not overwrite your existing |
| configuration file should you choose to unpack an new distro over the |
| top of an old one -- this style of upgrade is safe provided you move |
| your old lib/ directory first. |