Upgrading Servoy Application Server
Upgrading an existing Servoy Application Server environment from an earlier version of Servoy to the latest Servoy 5.0 version requires a full installation in a separate location. Do not install on top of an existing installation.
For more information on installation of the Servoy Application Server, see Server installation in the Deployment Guide.
Servoy 5.0 ships with Sybase SQL Anywhere 11. When using an earlier version of Sybase SQL Anywhere, please refer to the Sybase documentation for upgrade directions.
Upgrading Servoy Developer
Upgrading Servoy Developer requires a full installation in a separate location. Do not install on top of an existing installation.
Workspace migration
Servoy 5 introduces an enhanced format for solutions the workspace in Servoy Developer. The enhanced format merges objects that were before stored in separate files into the parent file, resulting in far less files and better performance in Servoy Developer.
To facilitate migrating solutions developed in Servoy 4, this release contains an automated developer workspace migration. The migration will be automatically triggered when activating a solution in Servoy Developer 5 that is not yet converted or contains modules that have not yet been converted.
| A converted workspace cannot be used by an older Servoy developer version Once a workspace is converted, it can not be used in combination with an earlier version of Servoy. |
When migrating van Servoy 4 to Servoy 5, please follow one of the procedures below, depending on which Team Provider is used:
Using Servoy Team provider / repository
- Use the Servoy upgrade mechanism to upgrade the Servoy Repository, see Servoy Repository upgrade.
- Every developer can convert his/her workspace separately
Using SVN/CVS/...
- Make sure all developers have committed their changes
- Create a tag or branch (optional)
- Start one Servoy Developer and create a new workspace
- Checkout the solutions (+ resources project) from SVN/CVS/...
- Trigger the workspace migration by activating the solution (repeat for every solution)
- Commit the changes once the migration is finished
- Have all developers checkout the latest version in a new workspace (preferred) or update the existing workspace
| Disconnect projects first Issues have been reported performing the workspace migration while projects are shared with SVN using both the Subversive and Subclipse SVN Client in Eclipse. A best practise therefor is to temporarily unshare the projects from SVN, while keeping the SVN data, after checkout and before performing the migration. After the migration is finished, the projects can be shared again. Following this procedure will also significantly speed up the migration. |
Stricter enforcement of form boundaries
Servoy 5 adds anchoring support to the Servoy Web Client. The layout mechanism in the Servoy Web Client is stricter than the equivalent in the Servoy Smart Client. Elements placed outside or overlapping the Form(Part) boundaries can result in (unwanted) scrollbars.
Server Developer will automatically generate warning markers for elements that are placed outside or are overlapping Form(Part) boundaries. See the Problems tab in Servoy Developer for an overview of all warning markers.
JSEvent implementation
Servoy 5 introduced the JSEvent to gain access to the information about a triggered event. Where applicable, the JSEvent object is added as an (additional) argument send into the method call for an event or command.
Legacy code that re-uses methods for both event handlers and inline usage in code might behave differently because of the unexpected additional argument when triggered by an event.
Server Developer will automatically generate warning markers for methods that are:
- attached to events and/or command that receive the (additional) JSEvent argument AND
- access the arguments object in code
The warning markers can be seen in the Problems tab in Servoy Developer. Right-clicking on the warning marker provides a convenient way to, through the Quick Fix option, apply the proper template to the method.
| Ignoring warning markers Warning markers can be ignored, but this might result in unwanted behavior. It's a best practice to make sure code that is committed does not contain any warning (or error) markers. |