We are pleased to announce the immediate availability of Servoy 6.1 beta 2 release.
This version is available through the download option on the Servoy website and auto-update.
Always make a backup of your current Servoy installation (directory and database) before installing/upgrading. (this version will do a repository update!)
To update a Servoy eclipse open Check for updates via help menu.
The issue’s fixed only in 6.1 or not yet released in other version are: Client Changes
[fix] SVY-1932 in 6.1 it seems that globals variables that are set in the login solution are empty in the real solution.
[fix] SVY-1923 When using Spinner type fields in the Web Client, the display a value even if there is no record
[fix] SVY-1915 Element is missing the function getDataProvider() while in Servoy5.2 it has
[fix] SVY-1880 Adding a default format of “####################” fails servoy validation if users enter something like “1234”
Developer Changes
[enh] SVY-500 Allow literals in editor
[fix] SVY-1446 Design change broadcasting in the Web Client when a dialog is displayed results in an Internal Error in the dialog
[fix] SVY-1935 Set Builder Marker level for markers related to non-externalized Strings to “Ignore” by default
[fix] SVY-1973 Database View dbi information is not included in solution exports if there are no forms based on the view
[fix] SVY-1954 Disable the “non-externalized string” warning for empty strings and for strings which start with ‘i18n:’
[fix] SVY-1919 Currently Servoy Developer allows multiple modules/solutions in the same workspace to define scopes with the same name
[fix] SVY-1799 Bug using security editor
[fix] SVY-1655 Using custom (extended) PropertyEditorSupport can make Developer on Mac freeze
[fix] SVY-1995 Select method from UI converter or globalmethodconverter doesn’t show declared methods
Plugin Changes
[enh] SVY-1735 Request/approved merge, couple functions from the PDF Pro plugin to the PDF output plugin
[fix] SVY-1928 Windows plugin issue with menu.addMenu()
i hope that mac thing works, we copied a patch/hack from eclipse bugzilla, it could be that this patch does fix a bit more then just that issue but more hangs or blank screens.
We noticed that in 6.1 the default setting for the Servoy Admim configuration property servoy.application_server.allowClientRepositoryAccess is set to false. This causes our application to fail. Setting the property to true resolves the issue. Unfortunately, I could not find anywhere information about what exactly this configuration property controls. There is no reference to this property in the Servoy Wiki . The description from the Servoy Admin page states:
“Allow solution code to access the repository server. When turned off, soloutions(you may want to fix the typo) using tables in the repository_server may receive error: You do not have access to view this data”
What exactly does “…solutions using tables in the repository_server…” refer to? Does this mean that any solution which uses the SolutionModel and/or the maintenance plugin and/or database tables metadata from the JSTable type need to have this configuration property set to true?
Any explanation/information on this would be greatly appreciated. Perhaps updating the Servoy Wiki with the relevant information will also be helpful.
Are there any changes to the Servoy Java API or implementation which may cause custom plugins which work fine in 6.0 to fail in 6.1?
Are there any plans to release a version of the Servoy JasperReports plugin which will be compatible with 6.1? We do need that functionality to continue with our testing of 6.1.
We had a hard time figuring why a particular part of our application was not working in Servoy 6.1b2 - turns out that the JSDataSet.getColumnName(index) method is no longer returning the actual names of the columns but generic column0, column1, etc.
Below is the output from the interactive console for the same code running in 6.0.6 and 6.1:
I already created a case for this Jira but wanted to share the issue in case someone else is having similar troubles. Unfortunately a very important functionality of our application depends on the correct column names in the JSDataSet and this issue is a blocker for us.
Are there any changes to the Servoy Java API or implementation which may cause custom plugins which work fine in 6.0 to fail in 6.1?
Are there any plans to release a version of the Servoy JasperReports plugin which will be compatible with 6.1? We do need that functionality to continue with our testing of 6.1.
Thanks for your help!
Looking at the log file of the server in 6.1, I noticed the following errors:
2012-04-23 10:09:13,975 ERROR [pool-3-thread-1] com.servoy.j2db.util.Debug - Couldn't get remote service: 'net.stuff.servoy.plugin.velocityreport' for a not authenticated client: 'B9CB6577-FFE0-4EAE-80B4-403EC8A72398', see admin page for setting: servoy.application_server.trustedRemotePlugins [ ]
2012-04-23 10:09:13,977 ERROR [pool-3-thread-1] com.servoy.j2db.util.Debug - Server plugin for VelocityReport is unreachable! [ ]
java.lang.RuntimeException: Couldn't get remote service: 'net.stuff.servoy.plugin.velocityreport' for a not authenticated client
at com.servoy.j2db.server.main.Zl.getRemoteService(Zl.java:69)
at com.servoy.j2db.ClientState.getServerService(ClientState.java:844)
at com.servoy.j2db.plugins.ClientPluginAccessProvider.getServerService(ClientPluginAccessProvider.java:335)
at net.stuff.servoy.plugin.velocityreport.Plugin.initialize(Plugin.java:61)
at com.servoy.j2db.smart.plugins.PluginManager.initClientPluginsEx(PluginManager.java:406)
at com.servoy.j2db.smart.plugins.PluginManager.initClientPlugins(PluginManager.java:265)
at com.servoy.j2db.smart.J2DBClient$13.run(J2DBClient.java:1115)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2012-04-23 10:09:13,978 ERROR [pool-3-thread-1] com.servoy.j2db.util.Debug - Error ocured initializing plugin: VelocityReport [ ]
com.servoy.j2db.plugins.PluginException: java.lang.RuntimeException: Couldn't get remote service: 'net.stuff.servoy.plugin.velocityreport' for a not authenticated client
at net.stuff.servoy.plugin.velocityreport.Plugin.initialize(Plugin.java:67)
at com.servoy.j2db.smart.plugins.PluginManager.initClientPluginsEx(PluginManager.java:406)
at com.servoy.j2db.smart.plugins.PluginManager.initClientPlugins(PluginManager.java:265)
at com.servoy.j2db.smart.J2DBClient$13.run(J2DBClient.java:1115)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Couldn't get remote service: 'net.stuff.servoy.plugin.velocityreport' for a not authenticated client
at com.servoy.j2db.server.main.Zl.getRemoteService(Zl.java:69)
at com.servoy.j2db.ClientState.getServerService(ClientState.java:844)
at com.servoy.j2db.plugins.ClientPluginAccessProvider.getServerService(ClientPluginAccessProvider.java:335)
at net.stuff.servoy.plugin.velocityreport.Plugin.initialize(Plugin.java:61)
... 6 more
2012-04-23 10:09:13,995 ERROR [pool-3-thread-1] com.servoy.j2db.util.Debug - Couldn't get remote service: 'servoy.IJasperReportService' for a not authenticated client: 'B9CB6577-FFE0-4EAE-80B4-403EC8A72398', see admin page for setting: servoy.application_server.trustedRemotePlugins [ ]
2012-04-23 10:09:13,995 ERROR [pool-3-thread-1] com.servoy.j2db.util.Debug - Error ocured initializing plugin: jasperPluginRMI [ ]
com.servoy.j2db.plugins.PluginException: java.lang.RuntimeException: Couldn't get remote service: 'servoy.IJasperReportService' for a not authenticated client
at com.servoy.plugins.jasperreports.JasperReportsPlugin.initialize(JasperReportsPlugin.java:82)
at com.servoy.j2db.smart.plugins.PluginManager.initClientPluginsEx(PluginManager.java:406)
at com.servoy.j2db.smart.plugins.PluginManager.initClientPlugins(PluginManager.java:265)
at com.servoy.j2db.smart.J2DBClient$13.run(J2DBClient.java:1115)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Couldn't get remote service: 'servoy.IJasperReportService' for a not authenticated client
at com.servoy.j2db.server.main.Zl.getRemoteService(Zl.java:69)
at com.servoy.j2db.ClientState.getServerService(ClientState.java:844)
at com.servoy.j2db.plugins.ClientPluginAccessProvider.getServerService(ClientPluginAccessProvider.java:335)
at com.servoy.plugins.jasperreports.JasperReportsPlugin.initialize(JasperReportsPlugin.java:77)
... 6 more
Adding the following to the servoy.properties file does not seem to hlep: servoy.application_server.trustedRemotePlugins=jasperPluginRMI,VelocityReport
The information about the new trustedRemotePlugins property states:
Comma separated server plugin remote object names that are trusted to run when a SmartClient is not logged in yet, please be careful what to enable here
Can you provide some additional information on this new configuration property servoy.application_server.trustedRemotePlugins and an example of what the correct configuration should look like? What values should we use to list the plugins? (I picked the ones in the example from the error in the log file but they do not seem to resolve the errors). Can you add information about this new property to the Servoy Wiki?
rossent:
Can you provide some additional information on this new configuration property servoy.application_server.trustedRemotePlugins and an example of what the correct configuration should look like? What values should we use to list the plugins? (I picked the ones in the example from the error in the log file but they do not seem to resolve the errors). Can you add information about this new property to the Servoy Wiki?
Are there any changes to the Servoy Java API or implementation which may cause custom plugins which work fine in 6.0 to fail in 6.1?
Are there any plans to release a version of the Servoy JasperReports plugin which will be compatible with 6.1? We do need that functionality to continue with our testing of 6.1.
Thanks for your help!
In order to use the Servoy JasperReports plugin with Servoy 6.1 you need to add the plugin as a remote trusted plugin; see the new servoy.application_server.trustedRemotePlugins property in the admin page.
So just add servoy.IJasperReportService as a value for the property or add servoy.application_server.trustedRemotePlugins=servoy.IJasperReportService to the properties file.
rossent:
Can you provide some additional information on this new configuration property servoy.application_server.trustedRemotePlugins and an example of what the correct configuration should look like? What values should we use to list the plugins? (I picked the ones in the example from the error in the log file but they do not seem to resolve the errors). Can you add information about this new property to the Servoy Wiki?
As a side note, it will be great to include some information about this new property in the 6.1 release notes.
this should only be needed when you want to trust that plugin when you use it in the developer and you don’t login in your solution when developing
Normally a smartclient must login and after login the serverside plugins are accessible.
Putting in a nudge about IDE speed. Servoy 4, very slow; Servoy 5, fast; Servoy 6 slow; Servoy 6.1, very slow. Being used to Servoy 5, we’re finding that the slower speeds are significant enough and happen often enough to have an adverse effect on our coding rhythm and flow. In Servoy 5 we rarely if ever sit back and wait for the IDE. In Servoy 6 and 6.1 we find ourselves waiting for the IDE often.
I know there are a ton of things that go into perception of speed but the main thing we notice is that building the workspace is a big deal now. In Servoy 5.2.x the process takes a fraction of a second. In Servoy 6.1, the first time it takes 9 seconds and subsequent runs take 6 seconds. This is tested with adding and removing a module into another module (which triggers a rebuild) with a 5 and a 20 module solution.
We also got the same long times with a 2 module solution with both modules being empty. So number of modules doesn’t seem to make a difference.
Next we started with an empty workspace, created 2 empty modules and tested. Result = instantaneous.
Finally, we imported our 5 module solution into an empty workspace and tested. Result, 5 seconds for first time; 3 seconds for subsequent builds.
Conclusion: the build process is slowed down by the size of the workspace even though not all the modules in the workspace are active. Large workspace but only working with two virtually empty modules is just as slow as activating all the modules in the workspace.
Seems like there is a lot of room for optimizing the building process. Not scanning the entire workspace, splitting the build process up to be more “on demand”, only rebuilding what has changed, better parsing algorithms, etc.
Next up: we suspect that method files with a ton of code in them dog down the new Servoy 6.x code editor. We’ll be experimenting with splitting code across multiple files.