| = Configuration |
| :index-group: OpenEJB Standalone Server |
| :jbake-date: 2018-12-05 |
| :jbake-type: page |
| :jbake-status: published |
| |
| = Short Overview |
| |
| == Configuration Properties |
| |
| * _openejb.home_ - OpenEJB home (installation) directory path. All |
| relative paths are resolved against the property unless openejb.base is |
| set. Unless set, the value is assigned to the _user.dir_ Java property. |
| * _openejb.base_ - OpenEJB base directory path. If set, the directory |
| pointed by the property is searched for resources before openejb.home. |
| * _openejb.configuration_ - OpenEJB configuration file path. |
| * _openejb.loader_ - OpenEJB loader that's responsible for loading EJBs. |
| There are 3 different loader types: + |
| ** _tomcat-webapp_ - set it when inside of Tomcat scoped at just the |
| webapp, aka. link:collapsed-ear.html[Collapsed EAR] ** _tomcat_ - set it |
| when inside of Tomcat scoped for all webapps to share ** _system_ (also: |
| bootstrap) ** _embedded_ (also: noload) |
| * _openejb.configurator_ (default: |
| _org.openejb.alt.config.ConfigurationFactory_ ) - a class that builds |
| org.openejb.alt.assembler.classic.OpenEjbConfiguration object; |
| implements the |
| org.openejb.alt.assembler.classic.OpenEjbConfigurationFactory interface |
| * _openejb.descriptors.output_ - possible values: true|false - When set |
| OpenEJB saves deployment descriptors - ejb-jar.xml and openejb-jar.xml |
| |
| == Configuration File |
| |
| Show a config file with the elements hyperlinked. |
| |
| [source,xml] |
| ---- |
| <?xml version="1.0"?> |
| <openejb> |
| <Container id="Default CMP Container" ctype="CMP_ENTITY"> |
| Global_TX_Database c:/my/app/conf/postgresql.cmp_global_database.xml |
| Local_TX_Database c:/my/app/conf/postgresql.cmp_local_database.xml |
| </Container> |
| <Connector id="Default JDBC Database"> |
| JdbcDriver org.postgresql.Driver |
| JdbcUrl jdbc:postgresql://localhost/mydb |
| UserName username |
| Password password |
| </Connector> |
| <SecurityService id="Default Security Service"/> |
| <TransactionService id="Default Transaction Manager"/> |
| <Deployments jar="c:/my/app/employee.jar"/> |
| <Deployments dir="beans/" /> |
| </openejb> |
| ---- |
| |
| == Basic Layout |
| |
| Basically, openejb.base is the source for 100% of all configuration |
| information and third party config files (log4j, castor, instantdb, |
| whatever). This includes finding where the, possibly many, entries in |
| the openejb.conf point. The openejb.home is where the code loading |
| OpenEJB will look for all the OpenEJB libraries. Usually openejb.base is |
| not explicitly set and defaults to the value of openejb.home, so many |
| people are used to only dealing with openejb.home. |
| |
| The point of having and openejb.base and openejb.home was basically to |
| allow several independently configured instances of OpenEJB running on a |
| system (perhaps embedded in Swing apps, in Tomcat, running as a |
| standalone Server, or even in Groovy as Mr. Strachan did!) but without |
| the need to copy all the OpenEJB system libraries everywhere. |
| |
| _openejb.home_ * can be set explicitly via a system property. * if not |
| set it default's to user.dir, which is the current working directory. |
| |
| _openejb.base_ * can be set explicitly via a system property. * If not |
| set it default's to openejb.home. |
| |
| _openejb.configuration_ * can be set to explicitly point to the file |
| containing your configuration. * If set to a relative path, we first |
| look in user.dir/your-conf-file, then in openejb.base/your-conf-file * |
| If not set we check in openejb.base/conf/openejb.conf * If no conf file |
| is found, we create one in openejb.base/conf/openejb.conf |
| |
| _relative paths in openejb.conf_ * Deployment entries are resolved |
| relative to openejb.base. * Containers use openejb.base to resolve their |
| own config files. For example, Castor JDO to loads the database.xml and |
| all other files from the openejb.base directory. * Resource adapters |
| that are embedded usually have config files of their own and are also |
| loaded from the openeb.base. |
| |
| _log files_ * The log4.configuration file is resolved relative to |
| openejb.base. * The properties in the config file that point to files |
| are also resolved relative to openejb.base. |
| |
| _OpenEJB libraries_ * The jars in the lib and dist directories under |
| openejb.home are added to the classpath. |
| |
| === Summary |
| |
| A summary of the above in a different notation: |
| |
| [source,properties] |
| ---- |
| openejb.home = user.dir (can be set explicitly) |
| openejb.base = openejb.home (can be set explicitly) |
| openejb.conf = openejb.base/conf/openejb.conf (can be set explicitly) |
| logging.conf = openejb.base/conf/logging.conf (can be set explicitly) |
| deployments = paths listed in openejb.conf (relative paths resolved from openejb.base) |
| Classpath includes openejb.home/lib and openejb.home/dist |
| ---- |
| |
| === Example layout |
| |
| In this one the openejb.home and openejb.base are set, everything else |
| is defaulted. The openejb.conf file as been updated to point to the ejb |
| jars by name (abc-ejbs.jar and xyz-ejbs.jar). |
| |
| An example layout: |
| |
| [source,java] |
| ---- |
| /usr/local/openejb (openejb.home) |
| /usr/local/openejb/lib (in classpath) |
| /usr/local/openejb/dist (in classpath) |
| /home/jsmith/foo_app (openejb.base) |
| /home/jsmith/foo_app/conf/openejb.conf |
| /home/jsmith/foo_app/conf/logging.conf |
| /home/jsmith/foo_app/abc-ejbs.jar (Deployment entry in openejb.conf) |
| /home/jsmith/foo_app/xyz-ejbs.jar (Deployment entry in openejb.conf) |
| /home/jsmith/foo_app/logs/ |
| ---- |
| |
| === Another Example layout |
| |
| In this example openejb.home and openejb.base are setup as well as the |
| explicit paths for the openejb and log4j configuration files. |
| |
| An example layout: |
| |
| [source,java] |
| ---- |
| /usr/local/openejb (openejb.home) |
| /usr/local/openejb/lib (in classpath) |
| /usr/local/openejb/dist (in classpath) |
| /home/jsmith/foo_app (openejb.base) |
| /home/jsmith/foo_app/openejb.xml (openejb.configuration) |
| /home/jsmith/foo_app/abc-ejbs.jar (Deployment entry in openejb.xml) |
| /home/jsmith/foo_app/xyz-ejbs.jar (Deployment entry in openejb.xml) |
| /home/jsmith/foo_app/log4j.conf (log4j.configuration) |
| /home/jsmith/foo_app/mylogs/ (logging dir as defined in log4j.conf) |
| ---- |