Highlights
Open source
The source code of the entire Servoy Developer suite and the Smart and Web Client has been made publicly available under the AGPL license. The source code for Servoy 5.2 is available from https://subversion.servoy.com/product/branches/v52x_branch. A new Open Source Guide has been added to the documentation wiki specifically targeted to developers interested in contributing to the open source projects.
PostgreSQL
As of Servoy 5.2, the database bundled in the Servoy installer is PostgreSQL. Servoy 5.2 ships with PostgreSQL 8.4.
Window support
Ability to forms in windows. Windows differ from dialogs in the way that each windows shows up on the system bar, can be minimized to the system bar and windows can move behind eachother.
Enhanced Security
Even more robust authentication for clients.
Details
Window support
Servoy 5.2 adds window support, besides the already existing dialog support.
The behavior of windows is as follows:
- Allows the user to select which window is in front
- Can be minimized/maximized/closed/resized by the user
- Shows as a separate entry on the System bar of the operating system
The behavior of dialogs differs form windows in that they:
- are always on top of the main application window
- do not show as a separate entry on the System bar of the operating system
- can only be closed and resized by the user
The introduction of window support has the following impact on the available API:
- New: application.showFormInWindow(...)
- New: application.closeForm(...)
- Deprecated: application.closeFormDialog(...)
- Deprecated: application.isFormInDialog(...)
- New: MenuBar class on the Window plugin
- New function: plugins.window.getMenuBar(...)
- Deprecated plugins.window.addMenu(...)
- Deprecated plugins.window.getMenu(...)
- Deprecated plugins.window.getMenuCount(...)
- Deprecated plugins.window.getMenuIndexByText(...)
- Deprecated plugins.window.removeAllMenus(...)
- Deprecated plugins.window.removeMenu(...)
- Deprecated plugins.window.resetMenuBar(...)
- Deprecated plugins.window.setMenuVisible(...)
- Deprecated plugins.window.validateMenuBar(...)
- New UICONSTANTS.FULL_SCREEN
- Deprecated UICONSTANTS.DIALOG_FULL_SCREEN
- New controller.getContainerName(...)
Enhanced Security
Servoy 5.2 supports an enhanced security mechanism, separating the login logic from the actual authentication logic, to provide more robust authentication.
Existing solution will cease to work in Servoy 5.2
Existing solution, developed in Servoy versions before Servoy 5.2 will not work correctly in Servoy 5.2 IF Enhanced Security is enabled (which it is by default) AND IF the solution falls in one of the 2 below mentioned scenario's
To support developers to adopt the Enhanced Security mechanism quickly into their existing solution, an upgrade tutorial has been provided here. Although the Enhanced Security mechanism can be disabled on adminpage, it is highly recommended to utilize this from Servoy 5.2 onwards.
The Enhanced Security mechanism (when enabled) affects existing solutions in the following scenarios:
- Solution run in the Servoy Smart Client that utilize the custom login form functionality
- Solution run in the Servoy Smart Client that does not require authentication
The following API changes have been made:
- New ServoyException.CLIENT_NOT_AUTHORIZED constant
- New security.authenticate(...): To facility communication between Login and Authenticator solutions. See Upgrade existing implementations to Servoy 5.2's Enhanced Security for more information
- New designtime property Solution.loginSolutionName
File plugin enhancements
The file plugin was enhanced with the following functionality:
- Ability to stream files between the clients and the server
- Ability to specify the mime-type when opening files
The following API changes have been made:
- New plugins.file.streamFilesToServer(...)
- New plugins.file.streamFilesFromServer(...)
- New plugins.file.getRemoteList(...)
- New plugins.file.convertToRemoteJSFile(...)
- New plugins.file.appendToTXTFile(...)
The plugin also got a new serverside property:
Mail plugin enhancements
The mail plugin was enhanced with the functionality to supply "Reply To" address when sending an email using the the email plugin's sendMail() function. The "from" email address parameter can be 2 separate email addresses, separates by a comma. The first will be utilized as the "from" email address, the second as the "reply to" email address.
Also, the following API changes were made:
- New serverProperty: mail.smtp.ssl.enable
- New serverProperty: mail.smtp.port
- New serverProperty: mail.server.allowUnauthenticatedRMIAccess
- New serverProperty: mail.from
The following Server properties were deprecated, because they are not relevant
- Deprecated server property mail.smtp.socketFactory.class
- Deprecated server property mail.smtp.socketFactory.fallback
- Deprecated server property mail.smtp.socketFactory.port
Other API changes
- New JSFoundset.getRecordIndex(...)
- Renamed designtime "primaryTable" property on Relations to primaryDataSource
- Renamed designtime "foreignTable" property on Relations to foreignDataSource
- Renamed designtime "titleText" property Fields on to text
- Renamed designtime "table" property on Forms to dataSource
- Renamed designtime "i18nTable" property on Solution to i18nDataSource
Documentation updates
- Many description and sample code updates in the Reference Guide
- Inclusion of constructor information on Date and Array
- Listing of the API for QName and Namespace
- Added previously undocumented functions and properties on JS Lib and it's subclasses
- Added some missing types under elements
Deployment changes
Batch processors & Headless Clients can open solutions of type "Module" directly. This also goes for Headless Clients started with the Headless Client plugin