Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

ZAL - The Abstraction Layer for Zimbra.

ZAL is distributed under the terms of GNU General Public License version 2


Latest ZAL can be downloaded from

You can clone ZAL repository using:

git clone

Runtime Dependencies

Zimbra is all you need ;)

Simple build

$ ./build zal-all All dependencies will be downloaded automatically and jar files will be created in dist/{VERSION}/zal.jar

Build Targets

$ ./build
  ZAL - Version 2.5.0

  help                                    Show this help message
  zal-all                                 build zal for all zimbra versions
  zal-common                              build zal for most commons zimbra versions
  zal-dev-current-source                  build zal against current zimbra source in dev mode (zimbra jar must be located in ../zm-zcs-lib and ../zm-mailbox)
  zal-dev-current-binary                  build zal against current zimbra binary in dev mode (zimbra be installed in /opt/zimbra)
  zal-dev-last                            build zal against last zimbra version in dev mode
  zal-{zimbra-version}                    build zal against specified zimbra version in dev mode
  compatibility-check                     check zal Java API Compliance against all zal versions
  fast-compatibility-check                check zal Java API Compliance only against previous zal version
  clean                                   clean up temporary


OpenZAL can be placed anywhere, and Zimbra must be installed in /opt/zimbra. Then run:

./build zal-dev-current-binary


Simply place OpenZAL into same directory of zm-build and follow guide to build Zimbra.

Then run:

./build zal-dev-current-source

Adding a Zimbra version:

For each Zimbra version you want to build ZAL for:

  • copy all file from "/opt/zimbra/lib/jars/" in "zimbra/${VERSION}/jars/"
  • copy from "/opt/zimbra/common/jetty_home/lib/" jetty-continuation-x.x.x.y.jar jetty-http-x.x.x.y.jar jetty-io-x.x.x.y.jar jetty-rewrite-x.x.x.y.jar jetty-security-x.x.x.y.jar jetty-server-x.x.x.y.jar jetty-servlet-x.x.x.y.jar jetty-servlets-x.x.x.y.jar jetty-util-x.x.x.y.jar in "zimbra/${VERSION}/jars/"
  • copy jtnef-x.x.x.jar from "jetty_base/common/lib" in "zimbra/${VERSION}/jars/"