CUBA Platform is a high level open source Java web framework for the rapid development of enterprise applications.

The platform abstracts developers from underlying technologies so they can focus on the business tasks, whilst retaining full flexibility by providing unrestricted access to low level code. Applications are developed in Java, with the user interface declared in XML. A rich set of features covers most typical project requirements and development tools reduce boilerplate code and facilitate truly rapid development.

Technologies

Vaadin
Front-end
Vaadin
Vaadin framework is used in the default web client to display the generic user interface. Vaadin offers a comprehensive set of extensible components and supports SCSS for UI customization. At the same time its server-based implementation model improves security and allows to use Java for both client and server side code.
Polymer
Front-end
Google Polymer
The Polymer library is used in the alternative web client, communicating to the server side over REST API. This client is less functional, but offers greater flexibility to deliver mobile-first responsive web UI.
Spring
Back-end
Spring
Spring container provides core infrastructure for the middle tier and the application’s client blocks. The framework is also used to establish remote interaction between blocks and for web services implementation.
Eclipse
ORM
EclipseLink
EclipseLink framework is used as ORM implementation. It is the reference implementation for the latest JPA standards and in our tests it has shown the best performance on complex data models, which are typical for enterprise applications. Regular SQL can also be used via JDBC or MyBatis.
Gradle
Build system
Gradle
Projects are built with the popular Gradle tool. It enables encapsulating the specifics of building CUBA applications in plug-ins and at the same time offers unlimited capabilities for customization of Groovy build scripts.
Activity
BPM
Activiti
CUBA Platform's BPM module is based on Activiti and provides tools to design, execute and manage business processes, supporting the BPMN 2.0 standard.