CUBA Platform Release Notes


Version 6.4.5

Resolved Issues


Version 6.4.3

Resolved Issues


Version 6.4.2

Resolved Issues


Version 6.4.1

Resolved Issues


Version 6.4.0

This is the first public release of platform version 6.4. All significant changes from version 6.3 are listed below.

  1. Breaking changes
    1. The DOM representation of the following components has been changed: Table, Tree, FieldGroup, DateField, PickerField, LookupPickerField, WindowBreadCrumbs, AppWorkArea. If you have defined own CSS styles for these components, you need to adjust them.
    2. cuba- CSS class prefix has been replaced with c-
    3. Method ListComponent.refresh() has been removed, method ListComponent.setMultiSelect() has been moved to Table and Tree, methods Table.getRowsCount() and setRowsCount() have been moved to the new HasRowsCount interface implemented by Table.
    4. When setting value of type Entity to an attribute of an entity or as a value of PickerField or LookupPickerField components, change listeners are invoked even if the new value equals to an old value but it is a different instance. It ensures that listeners are notified if the value is changed to another instance with the same ID.
    5. MaskedField.ValueMode does not implement EnumClass anymore.
    6. The Creatable.LOGIN_FIELD_LEN constant has been removed.
    7. DataManager load transactions are now marked as read-only and cannot be committed if there are changed entities. So if some BeforeDetachEntityListener modifies an entity on load, IllegalStateException will be thrown. Set cuba.useReadOnlyTransactionForLoad app property to false to use normal load transactions as before.
    8. SystemLevel, EnableRestore, TrackEditScreenHistory annotation values now stored in meta-annotations as Map<String, Object>. Use MetadataTools.getMetaAnnotationAttributes() method to obtain them from metadata.
    9. The propagate attribute of the SystemLevel annotation is replaced with propagateToSubclasses which is standard for all meta-annotations and true by default.
    10. The getItems() method of standard CollectionDatasource implementations now returns a lightweight read-only view instead of full collection copy, so the result cannot be modified when iterating through it.
    11. The startDb Gradle task now starts HSQLDB server in deploy/hsqldb project folder. Use dbDataDir parameter to specify a different folder, e.g. dbDataDir = "$rootProject.buildDir/hsqldb"
    12. [Charts and Maps] Chart listeners have been refactored:
      • Methods addRightClickListener/removeRightClickListener now accept ChartRightClickListener
      • Methods addGraphItemRightClickListener/removeGraphItemRightClickListener now accept GraphItemRightClickListener
      • Methods addLegendMarkerClickListener/removeLegendMarkerClickListener now accept LegendMarkerClickListener
      • Methods addSliceRightClickListener/removeSliceRightClickListener now accept SliceRightClickListener
  2. References between entities from different data stores.
  3. Value datasources enable executing queries that return scalar values and aggregates.
  4. Bean validation provides uniform validation of data on the middleware, in Generic UI and REST API.
  5. Extendable meta-annotations.
  6. Custom datatypes should now be registered in metadata.xml files. It enables inheriting custom datatypes from application components.
  7. New visual components: DataGrid, SideMenu, [Charts and Maps] PivotTable
  8. Predefined styles from Vaadin's Valo theme can now be used with the following visual components: Button, DateField, Label, LookupField, ProgressBar, Table, TextArea, TextField, Accordion, BoxLayout, CssLayout, GroupBox, SplitPanel, TabSheet.
  9. Additional UI written in pure JavaScript: Polymer User Interface.
  10. Upgraded dependencies:
  11. All resolved issues

Upgrading projects from 6.3 to 6.4

  1. Install Studio 6.4+.
  2. If you have Desktop Client in your project, replace installApp task configuration in build.gradle with installDist before opening the project in Studio 6.4.
  3. Run automatic upgrade in Studio by selecting the new platform version in Project properies > Components.
  4. Run update database scripts either in Studio by executing Run > Update database, or in command line by executing updateDb Gradle task.