The EJBWizard can be customized for personal, project-wide, and site-wide preferences. In addition, you can extend the system with custom Appserver "personality modules" and custom macro function libraries.
Of course, since the EJBWizard source code is openly available, you can also tailor it to whatever degree you prefer.
The EJBWizard has as its core a collection of dictionaries, chained in such a way that definitions in more "important" dictionaries will override definitions in less "important" ones. The order of precedence is as follows:
Short-term definitions made while processing the EJBWizard template files
Definitions made on the command line that started up the EJBWizard
Definitions supplied by an application server "personality module"
This is the conventional location, but for specialized needs, the personality module may define symbols at any level, either higher or lower than this one.
Definitions made in the ejbwizard.properties file in the working directory when the EJBWizard was started (where applicable).
Definitions made in the ejbwizard.properties file in the user's home directory (where applicable).
Definitions made in $EJBWIZARD_ROOT/bin/ejbwizard.properties file.
Definitions made internally to the EJBWizard
The EJBWizard does all of its code generation by processing a list of template files. The master file list - which by default is named "templates.xml" and the individual template files are found by searching one or more directories. The list of directories to search is an ordered one, just as the list of dictionaries is, so the first file with the indicated name that can be located is the file that will be used. This list is completely reconfigurable, but by default, the directories to be searched are in the following order:
Templates in the subdirectory "templates" of the working directory, assuming that there is a working directory and that a templates directory exists under it.
Templates in the directory(s) indicated by the appserver "personality module"
Templates in the $EJBWIZARD_ROOT/templates directory
To be written. Until then, look at the source code module "JonasEnvironment.java"
To be written. You can supply your own classes that implement the macro function interface to generate code and/or set/get dictionary values.