CUBA Platform Changelog
Version 5.5.5
- LookupPickerField with the Clear action is now used for parameters.
- OrderedContainer has been introduced. BoxLayout, GroupBoxLayout, ScrollBoxLayout, IFrame implement it.
-
Bug fixes, including:
- Sequential filters applying and full-text search in a filter fail on Oracle database.
- "Change password on login" doesn't work.
- Keyboard navigation in the options dialog.
- UniqueConstraintViolationHandler does not catch some exceptions related to the situation.
- @OnDeleteInverse in a mapped superclass doesn't work.
- Exception in Filter after clearing its name.
- FieldGroup tab order breaks after making an invisible field visible.
- Setting style to LinkButton removes its 'link' style.
- Tooltips do not disappear after quick mouse movement.
- [Reporting] RunReportAction ignores screen visibility rules.
Version 5.5.1
- Roles browser now contains the Default Role editable column.
- Saving of settings can be disabled for any component implementing the
HasSettings
interface by using its
settingsEnabled
property.
- Screen captions of security editors have been changed.
-
Bug fixes, including:
- Exception while loading data with security constraints.
- Main window is not redrawn after switching to a substituted user.
- Error when selecting value of dynamic attribute of Enumeration type.
- When changing the dynamic attribute from empty to some value in edit screen, it is shown
in the browser only after refresh.
- Exception in Filter if it is contained in a frame opened via the
openFrame()
method.
- [Charts and Maps] Error while removing and adding markers to the map.
Version 5.5.0
This is the first public release of platform version 5.5. All significant changes from version 5.4 are listed
below.
-
In web client, the application main window is now built on
Generic UI
technology. It consists of the XML descriptor and Java controller, can contain standard GUI components and
datasources, as well as some specific components. You can customize your main window layout by extending from
the default
com/haulmont/cuba/web/app/mainwindow/mainwindow.xml
descriptor, or create a window from scratch.
See documentation for details.
-
Dynamic attributes
mechanism was greatly improved:
- A dynamic attribute can be added to any entity. The
Categorized
interface is optional and
should be used only if you want to create several categories for an entity and use
RuntimePropertiesFrame
to select a category for a particular entity instance.
- A dynamic attribute can be automatically displayed in any
Table
or FieldGroup
component bound to a datasource containing the entity, for which the dynamic attribute was created.
The attribute editor allows you to specify screens and components that should show the attribute.
- The security role editor enables assigning permissions to dynamic attributes.
- Dynamic attributes can be loaded and saved through REST API in the same way as regular attributes.
- Dynamic attributes are easily accessible in the application code via entity's reflective
getValue()
/ setValue()
methods. They accept a dynamic attribute code
with "+" prefix.
-
The Performance Statistics mechanism gathers some runtime information and displays it on the screen
available in the Administration menu. For each parameter, the following values are shown:
- the current value
- the average for the time while the screen is open
- the average for the whole server uptime
The set of parameters includes JVM-related information like memory and CPU consumption, as well as
application-specific values like request and transaction rates. The screen also allows a user to view all
current threads with their CPU consumption and stack traces.
-
Exception handlers
mechanism now works on Generic UI level, so the handler classes are shared between web and
desktop clients. Client-specific handlers work as before for some special cases and for backward compatibility.
-
The localized messages search procedure has been improved. If a message is not found in the message packs chain, it is
searched in the main message pack. So you can directly reference messages located in the main message pack, for
example:
caption="msg://actions.Ok"
-
The
primaryKey
parameter of the EntityManager.find()
method is now generic and must
conform to the entity key type.
-
CollectionDatasource
has been improved for better support of sorting non-persistent and reference
attributes in Table
. Now it can sort on the database level using @MetaProperty.related()
or @NamePattern
entity annotaions.
See documentation
for details.
-
Aggregation in
Table
can be customized with a class implementing the
AggregationStrategy
interface.
See documentation
for details.
-
The
TokenList
component has been simplified: items are added to the list right after selecting them in the drop-down list,
without the Add button.
-
Saving settings on screen close can be disabled for any UI component implementing
HasSettings
:
see the setSettingsEnabled()
method.
-
Added a convenient method for checking specific permissions:
checkSpecificPermission(String name)
.
It throws AccessDeniedException
if the user has no permission with the provided name.
-
API of
CreateAction
, EditAction
and RemoveAction
has been improved: you can
provide handlers to intercept "after" events instead of subclassing the whole action and overriding its
"after" methods. See JavaDocs for details.
-
EntityLog
now creates only one record for a transaction commit, regardless of number of
EntityManager.flush()
executions.
-
Added the
cuba.connectionTimeout and
cuba.connectionReadTimeout
application properties for the middleware connection timeouts control.
- Added the
cuba.web.showBreadCrumbs
application property for hiding the breadcrumbs panel which appears on top of the main window working area.
-
Added the
cuba.restApi.enabled
specific permission for explicit control of the access to
REST API.
-
[Report Generator] Report wizard can create reports with JPQL queries.
-
Upgraded dependencies:
- Vaadin 7.4
- Spring Framework 3.2.13
- Spring Security 3.2.7
- Tomcat 7.0.62
- org.json 20140107
-
Vaadin 6 web modules are not supported anymore.
-
Various fixes of
MaskedField
component.
- Over 70 other bug fixes and improvements.
Upgrading projects from 5.4 to 5.5
- For automatic upgrade using Studio see this
document.
-
For manual upgrade do the following:
- (Optional) Change CUBA XSD from 5.4 to 5.5 in all
*.xml
files by searching
http://schemas.haulmont.com/cuba/5.4/
string and replacing it with
http://schemas.haulmont.com/cuba/5.5/
.
- Run update database scripts either in Studio by executing Run > Update database, or in command
line by executing
updateDb
Gradle task.