Table of Contents |
---|
As Servoy 6 is a major release a fresh Servoy Application Server installation is required.
See ... for more information.
As Servoy 6 is a major release a fresh Servoy Developer installation is required.
See ... for more information.
Moving the
Export/import preferences
Upgrading existing Solutions
Servoy 6 offers some amazing new features in the Servoy Developer IDE when it comes to designing forms and writing business logic.
Part of the latter is a greatly improved JavaScript code validation: the entire code base of a solution will be continuously checked for possible coding mistakes, like accessing or setting non existing variables, calling non-existing methods or calling methods with the wrong number or type of parameters.
While this is great once you get going, if you're upgrading an existing solution to Servoy 6, you will most likely get a lot of warnings on your code. Why is that?
JavaScript, the scripting language used in Servoy to write down the business logic is what they call "weak-typed". This means that a variable can hold any type of value, that a function can return any type of value and that the parameter values that can be send into a method call can be of any type. At least: this hold true for JavaScript in it's core.
The new script validation in Servoy Developer 6 however tries to determine if the the properties you access actually exist, if the method you call exist and if you call them with the right number and type of arguments. The validation mechanism tries to be as clever as possible to determine which code is correct and which code isn't, but due to the weak-typed (and dynamic) nature of JavaScript, somethings clever logic just isn't enough and the validator requires more input from the developer in order to do proper validation. This developer input is done in the form of JSDoc.
While previous versions of Servoy already had support for JSDoc, in Servoy 6 this support has been extended and improved, in order to better facilitate the validation process.
So, while you might get numerous warnings once you open your existing solutions in Servoy 6, remember that these are just "warnings", not errors, they do not mean that your solution is not working. While we advise to solve the warnings, so you can also reliable start using some of the other great features of Servoy 6, like automatic code refactoring or search for references, you can ignore the warnings. It's even possible to turn off all the warnings, see Window > Preferences > JavaScript > Error/Warnings.
...
...
Changes that might break existing code
...
Code Block |
---|
http://domain:port/servoy-webclient/ss/s/{solutionName}/argument/1/m/{globalMethodName}/a/2/a/3/b/1/b/2/b/3 or
http://domain:port/servoy-webclient/ss?s={solutionName}&a=1&method={globalMethodName}&a=2&a=3&b=1&b=2&b=3 or
http://domain:port/servoy-client/{solutionName}.jnlp?a=1&a=3&b=1&a=2&b=2&b=3
|
...
Code Block |
---|
arguments[0]: 1
arguments[1]: {argument: [1,2,3], b: [1,2,3]}]
|
Behavior changes
Changes affecting the appearance
...
Stoc |
---|
In order to provide the best possible security, Servoy 7 comes with a renewed Code Signing certificate, that utilizes OCSP. As Java 5 is End Of Live (see http://www.oracle.com/technetwork/java/eol-135779.html) it does not support OCSP, which makes Java 6 the new minimum Java version for Servoy 7.
As of November 8th 2013, the Servoy 6.1.x branch is merged into the 7.x branch, as outlined in the Servoy Release Policy update post on the Servoy Blog. The specific details of upgrading Servoy 6.1.x Developer or Servoy 6.1.x Application Server installations to 7.3 are detailed in the Servoy 6.1.6 to Servoy 7.3 upgrade on Servoy Talk.
Installations running an older version of Servoy can't be upgraded, thus a new installation is required. See Installing the Application Server for more information.
Existing Servoy 6.1.x installation can be upgraded to Servoy 7.0.x. In order to do so, open the Available Update Sites preferences and edit the URL of the Servoy update site entry:
https://www.servoy.com/developer/61x_updates
to https://www.servoy.com/developer/70x_updates
Servoy Developer installations of older Servoy version cannot be upgraded, so a new installation with the Servoy 7 installer is required. See Installing Developer for more information.
Upgrading existing Solutions to Servoy 7 is as easy as opening Servoy Developer 7 and getting the Solutions into the workspace or opening an existing workspace in Servoy 7. Note that once solutions are edited using Servoy 7, they cannot be used in earlier versions of Servoy anymore.
Once imported, the Solutions can be tested with Servoy 7. Servoy 7 introduces a few minor behavior changes, some of which could potentially break existing code. It should be investigated if the upgraded solutions are affected by these changes. The behavior changes are listed and discussed in the paragraph #Behavior Changes.
This paragraph describes the behavior changes that are introduced in Servoy 6.0. There are three categories of behavior changes:
Servoy 7 deprecates parts of the existing API, as it has become obsolete or has been replaced by better alternatives. This section lists the deprecated methods or properties with their replacement where applicable.
The list of deprecated properties in the Designtime API is limited. Except for the deprecation of the rowBGColorCalculation
on Forms and Portals, the deprecation of the properties require no action on behalf of the developer, as Servoy Developer will automatically handle the changes.
Object | Deprecated method or property | Replacement | Comment |
---|---|---|---|
Field | text | titleText | To better align name with actual function |
Label, Button, Image | rotation | textRotation | To better align name with actual function |
The majority of the deprecations in the Runtime API are related to the new windowing API and the refactored HTTP plugin.
Object | Deprecated method or property | Replacement | Comment |
---|---|---|---|
globals | allmethods | solutionModel.getGlobalMethods("scopeName") | an exact replacement would be: |
globals | allrelations | solutionModel.getRelations(null) | an exact replacement would be: |
globals | allvariables | solutionModel.getGlobalVariables("scopeName") | an exact replacement would be: |
forms | allnames | solutionModel.getForms() | an exact replacement would be: |
RuntimeForm | alldataproviders | foundset.alldataproviders |
|
RuntimeForm | allnames | elements.allnames |
|
RuntimeForm | allrelations | solutionModel.getRelations(dataSource) where dataSource is provided by solution model's JSForm.dataSource or controller.getDataSource() | an exact replacement would be: solutionModel.getRelations(controller.getDataSource()).map(function (jsRelation) { return jsRelation.name } ) |
RuntimeForm | allvariables | solutionModel - JSForm.getVariables(Boolean) or JSForm.getVariables() | an exact replacement would be: |
ELEMENT_TYPES | LIST_BOX | LISTBOX | Alignment of names used |
JSField | LIST_BOX | LISTBOX | Alignment of names used |
ALIGNMENT | ACCORDION_PANEL | JSTabPanel.ACCORDION_PANEL |
|
ALIGNMENT | SPLIT_HORIZONTAL | JSTabPanel.SPLIT_HORIZONTAL |
|
ALIGNMENT | SPLIT_VERTICAL | JSTabPanel.SPLIT_VERTICAL |
|
JSPart, | getDesignTimeProperty |
| Not relevant |
databaseManager | hasNewRecords(JSRecord) | JSRecord.isNew() |
|
databaseManager | hasRecordChanges(JSRecord) | JSRecord.hasChangedData() |
|
databaseManager | revertEditedRecords(JSRecord) | JSRecord.revertChanges() |
|
I18N | setI18NMessagesFilter | Use TableFilters instead |
|