A number of Zanata's system properties are required for proper operation. Without them, authentication may not work, or important files may be stored in the JBoss process's current directory (whatever that happens to be).
Most of these properties are described in the documentation, but it would be better to catch their absence early in the boot process (I suggest using io.undertow.servlet.ServletExtension). That way, third party code like JavaMelody might not get a chance to write files to the wrong directory.
The main properties (as of Zanata 4.0):
Abort if absent - the first two also need to be documented:
hibernate.search.default.indexBase
javamelody.storage-directory
zanata.file.directory
Exactly one of these is required, except you may combine internal and openid - otherwise abort deployment.
zanata.security.authpolicy.jaas
zanata.security.authpolicy.kerberos
zanata.security.authpolicy.internal
zanata.security.authpolicy.openid
Ignore these; just listed for completeness.
zanata.security.adminusers
zanata.email.defaultfromaddress
(along with ehcache.xml and any cache files in this directory)
For Zanata 4.0, we should consider aborting the deployment if this is present.
ehcache.disk.store.dir
I just remembered that the reason we keep ehcache.xml around is just so that we don't forget about the TODO in there. We should create a JIRA task for that, list the old settings there, and then delete the file from the source tree.