Die neuen Verbesserungen, Features und Bug-Fixes im Überblick

Java-Framework CUBA geht (teilweise) Open Source

Jan Weddehage

© DZone

Die Java-Plattform CUBA und das zugehörige Rapid-Application-Development-Tool CUBA Studio sind jetzt – zumindest in Teilen – Open Source. Doch was bedeutet das genau? Und welche neue Verbesserungen, Features und Bug-Fixes halten die neuen Versionen bereit? Ein kurzer Überblick.

CUBA: Grundideen und Einsatzbereiche

Die CUBA-Entwickler betrachten ihre Plattform nach eigenen Aussagen als “lebenden Organismus”, dessen Entwicklungsrichtung von den praktischen Erfordernissen der alltäglichen Anwendungsentwicklung vorgegeben wird. Neue Technologien sollen deshalb nur dann zum Zuge kommen, wenn sie einen greifbaren Vorteil bieten. CUBA zielt zudem darauf ab, eine möglichst klare, vereinheitlichte Struktur bereitzustellen, die es Entwicklern ermöglichen soll, von anderen geschriebenen Code möglichst schnell zu verstehen und zu ändern, was vor allem vor dem Hintergrund der im Enterprise-Bereich anzutreffenden, langen Anwendungslebenszyklen zu sehen ist.

Allgemein gesagt zielt CUBA in erster Linie auf Geschäftsanwendungen ab, die beispielsweise komplexe Datenmodelle, strenge Sicherheitsmaßnahmen und die Unterstützung diverser Geschäftsprozesse erfordern und darüber hinaus skalierbar und je nach Entwicklung des Unternehmens auch für ständige Änderungen bereit sein müssen. Technisch gesehen handelt es sich bei CUBA um ein Full-Stack-Framework, dass auf mehreren Java-Technologien wie Spring, Vaadin, OpenJPA, Lucene, jBPM und Gradle basiert.

Dreistufige Architektur

CUBA-Anwendungen bauen auf eine dreistufige Architektur: Das verbindende Element stellen dabei die Metadaten dar, die alle visuellen Komponenten datensensitiv machen. Das deklarative User Interface ermöglicht die Definierung des Layout per XML oder mitgeliefertem visuellen Editor, der mehr als 70 Komponenten, von einfachen Buttons bis Google Maps, umfasst. Besonderes Augenmerk lenken die CUBA-Macher auf den Generic Filter der UI: Diese Komponente soll es Nutzern erlauben, eigene Suchbedingungen zu erstellen, wozu von Entwicklerseite kein weiterer Aufwand vonnöten ist. Das Rollenbasierte Sicherheits-Subsystems schließlich kontrolliert den CRUD-Zugriff bis hin zu den Entitäts-Attributen.

Abgesehen von den drei Hauptkomponenten bietet CUBA standardmäßig noch einige weitere Features, wie etwa Volltextsuche, ein REST API für die Integration mit externen Systemen, die Unterstützung von Kreditkartenzahlungen oder asynchronen Mailversand.

Open Source

Im Gegensatz zur Vorgängerversion ist ein Großteil der CUBA Platform 6.1 (nämlich: cuba base project und cuba-gradle-plugin) Open Source und steht unter der Apache-2.0-Lizenz. Optionale Komponenten für das Full-Stack-Framework wie beispielsweise BPM, Charts, Maps, FTS oder Reports sind in einem separaten Repository lokalisiert und können per Subscription hinzugeschaltet werden. Um sie auszuführen, wird eine zusätzliche Repository-Deklaration benötigt.

Als Grund für die neue Lizenzierung wird die Aufhebung von Runtime-Beschränkungen angeführt. Sämtliche Applikationen, die mithilfe der Plattform entwickelt werden, sind ab sofort lizenzfrei. Dabei spielt es keine Rolle, ob bei der Entwicklung freie oder bezahlte Komponenten zum Einsatz kommen. Darüber hinaus steht jetzt auch der gesamte Funktionsumfang von CUBA Studio 2.1 für kleine Projekte mit bis zu zehn Entitäten frei zur Verfügung. Wird die maximale Anzahl an Entitäten jedoch überschritten, fallen für die weitere Benutzung Kosten an.

CUBA Plattform 6.1: Security-Constraints, MySQL und Rest API

Die erste Open-Source-Version, CUBA Platform 6.1, wartet mit einigen neuen Features, Verbesserungen und Bug-Fixes auf. Um die Sicherheit zu verbessern, wurden die Row-Level-Security-Constraints überarbeitet. Ab sofort ist es möglich, Constraints für create-, update– und delete-Aktionen zu definieren. Ferner erleichtert die Integration eines visuellen Tools in den Constraints-Editor die Erstellung von JPQL- und Groovy-Codefragmenten durch ausgewählte Entity-Attribute.

Die Plattform unterstützt ab sofort standardmäßig MySQL-Datenbanken. Allerdings besteht ein Konflikt bei der Erstellung von Unique-Constraints für Soft-Deleted-Entities. Ein passender Workaround findet sich in der Dokumentation. Des Weiteren wurden die meisten Application Properties in die Datenbank verschoben. Sie sind unter Administration > Applications Properties zu finden. Application Properties, die in der Datenbank gespeichert sind, können jetzt durch gleichnamige Java-System-Properties überschrieben werden.

Das universale Rest API ist nun ein eigenständiges Modul und kann sowohl in Web- als auch in Portal-Modulen benutzt werden. Während das API in Portal-Modulen standardmäßig aktiviert ist, kann es für Web-Module per Checkbox (Project properties > Edit > Advanced > REST API in web module) aktiviert werden. Wer kein Studio benutzen sollte, kann diesen Schritt manuell ausführen. Wie das geht, wird in der Dokumentation erklärt. Zu guter Letzt wurden Stock Charts aus der neusten Version der AmCharts Library integriert.

CUBA Studio 2.1: Legacy-Support, Custom-UI-Komponenten und Jelastic-Cloud

Neu in CUBA Studio 2.1 ist der Legacy-Datenbanken-Support. Datenmodelle und Standard-UI-Screens können jetzt aus existierenden (Legacy-)Datenbanken generiert werden. Ebenfalls wird die Integration von Custom-Komponenten, die via Vaadin-Add-ons, JavaScript-Libraries oder GWT-Komponenten verteilt werden, unterstützt. Darüber hinaus können Entwickler eigene Komponenten implementieren. Diese können mithilfe des WYSIWYS-Layout-Editors wie Standard-Komponenten bearbeitet werden. In der Dokumentation wird beispielhaft erklärt, wie eine Custom-UI-Komponente in einem Application-Projekt verwendet werden kann.

Ferner ist nun ein einfaches Deployen in der Jelastic-Cloud unter Project Properties > Cloud deployment settings möglich. Auf der Cloud-Deployment-Settings-Page kann das WAR-File per Run > Deploy to cloud erstellt und im ausgewählten Environment deployt werden. Außerdem ist die Erstellung von Screen-Controllern und Services in Goovy vereinfacht worden. Aktiviert man die Groovy-Checkbox im Tab Project properties > Advanced, wird das Groovy-Plugin zu build.gradle hinzugefügt und statt Java- fortan Groogy-Source-Files erstellt.

Sämtliche Änderungen sind in den Changelogs zu CUBA Plattform 6.1 und CUBA Studio 2.1 aufgelistet.

Verwandte Themen:

Geschrieben von
Jan Weddehage
Jan Weddehage
Jan Weddehage studiert an der Goethe Universität Frankfurt am Main und arbeitet seit März 2015 als Werkstudent bei Software & Support. Kontakt: jan[at]janweddehage.de
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: