A unique feature of Zimbra is its extensibility. You can customize functionality for both the frontend UI and the backend with Zimlets. The Zimbra frontend can be extended with JavaScript Zimlets and the backend can be extended with Java extension Zimlets.
This post is part of a 3-part series to highlight the Zimbra Development Guides created by Barry de Graaff, Channel Evangelist at Synacor.
Barry has written Guides for Zimlet developers (click the Releases tab on github for the PDF versions):
Instead of recreating the Guides on the blog, we are going to summarize them here.
This post focuses on Backend Zimlets.
In the Guide, Barry gives you all the info and steps to create the Mytest extension. What is the Mytest extension? It’s a Zimlet that makes a single HTTP request that contains JSON and binary files. The extension reads the request, parses the JSON part and adds additional JSON elements containing the (binary) files from the request. The server response is then displayed on the page and if any images where submitted, those are displayed as well.
If that explanation didn’t make much sense, you might want some experience with Java coding. Here is a good online course for Java fundamentals https://www.udemy.com/course/java-essentialtraining/
Prerequisites
To create the Mytest extension, you need a Zimbra test server that is accessible over SSH. You can set this up in a Virtual Machine in the cloud, or you can install it on your local computer inside VirtualBox/KVM/Parallels etc. If using a local computer, you need at least an i5 with 16GB of RAM and a SSD.
Zimbra Extensions
Zimbra supports Zimlet backend extensions for the following functionality. There is a lot more info on REST vs SOAP in the Guide.
- REST API, HTTP GET/POST
- SOAP API, HTTP XML
- Custom Authentication
- Change Password on custom authentication
What’s Next?
If you are already a Java developer, head over to the github site to get started. If you want some more information before deciding about creating your own backend Zimlet, here is an overview of what is included in the Guide:
- Structure of a Zimlet extension
- Setting up your build system
- Building the extension
- Enabling multipart/form-data on Zimbra extensions
- Deploying the extension
- The Mytest extension
- Setting up IntelliJ IDEA
- Configuring the Java debugger
- java
- java
- Working with IntelliJ debugger
- Compiling with ant build.xml
- Git and gitignore
Each section includes step-by-step instructions, screen snapshots, code examples, etc. Everything you need to create the Mytest extension and get started developing your own backend Zimlets.
Thanks,
Your Zimbra Team
Thanks for sharing. You have explained Zimlets very well.