In addition to providing out-of-the-box social-collaboration, eXo Platform is a user experience platform (UXP). It comes with a full set of social intranet UX-oriented features such as a wiki, forum, calendar, activity stream, community spaces as well as an out-of-the-box CMS and document management system – all in one single platform.
What the developer community might like is that eXo is also open source and highly extensible. Developers can build their own web applications and services on top of the platform and offer new capabilities to their users. If needed, they can handle several low-level services such as authentication and access control. The platform has also been designed to host and run extensions (add-ons), so that all customization needs can be met.
If we look under the hood, eXo Platform was built from the ground up on a flexible and standard-based enterprise portal framework: GateIn (a common open-source project co-led by Red Hat and eXo). Thus, portlets (JSR 286 and WSRP), gadgets (OpenSocial) and content can easily be aggregated in a secure and customizable way.
I am pretty sure that you have now guessed what I am getting at: what if you could use the powerful experience of Vaadin to build stunning web apps on top of eXo Platform?
That is exactly what we describe and explain in this first simple tutorial.
Any Vaadin application (or portlet), even ones using a custom theme or widgetset, can be quickly deployed on your eXo Platform Server. Only a few Vaadin libraries need to be installed and your application will be ready to run in the eXo application registry. In other words, you can take full advantage of the whole Vaadin stack, and leverage the collaborative features from the Platform.
Then, for more advanced portlets, there are further options through the easy access to standard APIs (JCR and CMIS), as well as social APIs: spaces, activity streams, polls, posts, wikis and more. This actually gives us many ideas for future tutorials and add-ons! Stay tuned.
Tristan Glenat is an experienced web application enthusiast, social platform believer and UX activist. He currently leads the Product Teams at @eXoPlatform SEA.