You can keep your personal modifications of EJBCA in a separate tree. Set the location of your personal modifications in conf/custom.properties or use the default location $EJBCA_HOME/../ejbca-custom. Your modifications will automatically overwrite any existing file(s) found in the EJBCA_HOME-directory or its subdirectories before executing an ant command. A sample, conf/custom.properties.sample, is provided.
Example usage: You have a working set of configuration files and database from the latest stable release and want to try the latest trunk snapshot.
Backup your database
Copy $EJBCA_HOME/conf/ to $EJBCA_HOME/../ejbca-custom/conf/
Copy $EJBCA_HOME/p12/ to $EJBCA_HOME/../ejbca-custom/p12/
Copy $EJBCA_HOME/src/java/.properties and modules/ejbca-common/src/.properties to $EJBCA_HOME/../ejbca-custom/src/java/ and ../ejbca-custom/modules/ejbca-common/src/
You can now remove the entire $EJBCA_HOME directory and replace it with the fresh snapshot from the trunk. Restore the database and all the configurations and generated keys will be restored to $EJBCA_HOME next time you run ant deploy etc.
Note the following:
There is no way to recover overwritten files, so you have to manually restore files if needed.
Ant will not be able to detect if your changes are incompatible with newer versions of EJBCA. Always use diff on the different versions to see if any file you override is affected.
Contributed new features or improvements that many would benefit from is greatly appreciated by the community and makes your maintenance easier.