Make a backup of your current Servoy installation (directory and database) before installing.
This version will be available shortly through auto update for users of versions later than 3.5 b2 (check via help menu -> check for new version)
Changes in final
[enh] basic proxy authentication now possible with the HTTP tunnel
[chg] creation of columns and tables with names starting with an underscore ('_') no longer allowed
[chg] made i18n tablename editable
[fix] avoid using specific FF style attribute for tabpanel layout
[fix] glue tabs to tabpanel
[fix] popups in client no longer hidden set property popup parent so it is always visible
[fix] text in tabs in Firefox are no longer left justified
[fix] web client: tab panel in firefox does not always switch on first click
[fix] full join and right outer join no longer shown in relation dialog because they make no sense in a Servoy context
[fix] rollback after sql exception caused invalid data to be displayed
[fix] web client: rapid clicking of tabs in tabpanel would cause an internal error
[fix] scrollbars visible for large forms
[fix] urls like media:///mypicture.jpg in image media field handled
[fix] don't show the save icon when the image media field is not editable
[fix] IE: checkbox onclick event used instead of onchange
[fix] fix for temp table usage in solutions
[fix] fix for validators
[fix] Function jsTable.getRowIdentifierColumnNames() doesn't work anymore
[fix] no data in CRM demo after installing rc 7
[fix] tab sequence would not be respected for new records
Changes in beta releases
[new] http tunnel, see notes below
[new] web client has AJAX support built-in
[new] JSFoundSet node under Database Manager
[new] controller.setTabSequence(elements[])
[new] security.canDelete(serverName, tableName) - tells whether or not the user is allowed to delete records from the specified table
[new] security.canUpdate(serverName, tableName) - tells whether or not the user is allowed to update records from the specified table
[new] security.canInsert(serverName, tableName) - tells whether or not the user is allowed to insert into the specified table
[new] security.canRead(serverName, tableName) - tells whether or not the user is allowed to read the specified table
[new] application.removeAllClientInfo() removes all client-added additional client info about any client
[new] databaseManager.getViewNames()
[new] application.getUserPropertyNames()
[new] foundset.getRelationName() function returning the relation name if the foundset object is a related foundset
[new] db treeview bean can be used with web client
[new] added join type to relation dialog
[new] suggestions for global method assignments to form events
[new] column (i18n) title and description
[new] table events for hooking methods to insert, delete and update actions
[new] location paramater in addTab to insert a tab at a specified location
[new] validators on column data providers (can be defined on columns)
[new] "or" notation possible in find fields, example: >10||<0
[new] converters to automatically convert field data
[new] possiblity to show non-modal form dialogs
[new] skip the solution onload method in servoy developer by holding shift in select solution dialog while clicking solution to load
[new] 'Apply valuelist name as filter on column "valuelist_name"' option in Valuelist dialog, so that a single table can be used for multiple database valuelists (see below)
[new] baseURL property on html areas
[enh] keyboard shortcuts can be attached to scripts
[enh] constraints on relations
[enh] search across multiple relations now possible, meaning a tab panel can now contain another tab panel
[enh] removed limit of 1000 records for controller.loadRecords(pkDataSet)
[enh] application.setStatusText(text, [tip]): added optional 2nd argument to display a 'tool'tip
[enh] dataSet.getAsHTML() got a 5th optional parameter: boolean addColumnNames which is true by default
[enh] when placing field labels in Developer, the field names are prettified for the label
[enh] some optimizations
[enh] in find mode, when you create a new record, the first field is focused
[enh] application server better handles heavy loads
[enh] record sort or select via 1-to-n relation no longer returns duplicate keys
[enh] preventing duplicate pk's in related search or sort (on non-pk columns)
[enh] search multiple relations deep
[enh] better handling of heavy loads
[enh] in new records, the first field gets focus
[enh] popup menu plugin working in web client
[enh] i18n text in title text on dialogs
[enh] solution loading made faster
[enh] focusFirstField works in web client
[enh] databaseManager.hasRecordChanges function supports entire foundset check
[enh] non-fractional numbers can be up to 64 bits long
[enh] mnemonic and labelfor properties on buttons and labels in smart client and web client
[enh] plugins.file.showFileOpenDialog() accepts a fifth optional parameter to filter on file type
[enh] onAction event works with enter key in webclient
[enh] warning for use of plugin dialog in web client
[enh] add more explicit JVM versions to support in the smartclient jnlp file
[enh] DBTreeView bean handles incorrect data
[enh] web clients: browsers' timezone used for displaying dates (tip: use timezone in date format)
[enh] applications can be deleted from the admin page
[enh] all setWindow...() and getWindow...() JS functions from application are now able to receive an optional parameter - windowName
[enh] startup arguments can be obtained in login form by calling application.getStartupArguments(), returning an array
[enh] timeout parameter for application.showUrl(...)
[enh] tag %%relationname.lazyMaxRecordIndex%% (to be used on tabs) does not trigger the actual foundset loading
[chg] sql generation enhanced to support all types of joins, see remarks below
[chg] extensive support for custom sql, it's almost free-form as far as Servoy is concerned, see remarks below
[chg] showFormInDialog() will create a modal dialog by default, inline dialog in web client
[chg] when solutions are imported, existing styles with different uuid are deleted (when overwrite styles flag was set)
[chg] with unsaved records, print preview no longer is possible
[chg] added join type to relation dialog
[chg] executeStoredProcedure() moved from Database Manager to rawSQL plugin. The Database Manager function is now deprecated.
[chg] only calc preferred size on comp is visible [JC]
[chg] when solutions are imported, existing styles with different uuid are deleted (when overwrite styles flag was set)
[chg] with unsaved records, print preview no longer is possible
[chg] stacktraces for SQL exceptions are no longer printed
[chg] Java requirements, see below
[chg] increased memory limit for windows service
[chg] using native database function to limit sql results
[chg] set maxPermSize in server startup scripts
[chg] setting onSortCmd to 'none' will disallow users to sort - use 'default' for standard sort functionality
[chg] plugin classname resolving (only from main plugin dir)
[chg] http plugin allows circular redirects, needed for new Tomcat
[chg] bundeled new Sybase JDBC driver
[chg] AJAX can be switched on/off on a per-solution basis
[chg] create and use the log table with user_uid instead of user_name
[chg] upgraded to Sybase 10, except for PowerPC macs because Sybase 10 has no support for those
[chg] open sourced popup menu plugin, plugin api updated
[chg] Windows Vista users should use the native installer from download page for full install
[chg] now possible to disable duplicate server and delete inactive server on admin page
[chg] added 3 pages to the webclients configuration in the admin page:
servoy.webclient.error.page,
servoy.webclient.pageexpired.page,
servoy.webclient.serverbusy.page
[chg] application.closeFormDialog returns boolean indicating success or failure (false when blocked by onHide script)
[chg] web client plugin api allows publishing of content to browser
[chg] changed default i18n message table name and made name editable
Windows Native Installer
For Windows Vista users wishing to install Servoy other than in their own profile, there now is a native installer that enables them to do that. Please see the download page for download details.
Java requirement changes
Due to the move to Tomcat 6, Servoy now requires Java 1.5 for both Servoy Developer and Servoy Server. Servoy smart client will still work with Java 1.4.
Sybase 10
We are now shipping Servoy with Sybase 10 in the full installer. Users of the auto update mechanism will remain with Sybase 9. Note that with Sybase 10, passwords for the database user are now case-sensitive.
Double definition of database connections
It will no longer be possible to define two active database servers with the same login information.
If you have duplicate servers before upgrading to this release, it is best to make one of the duplicates inactive.
If that is not possible, you will need to update the servoy sequences for these servers before allowing clients to connect.
HTTP tunnel
Servoy 3.5 (and higher) has added an HTTP Tunnel option - enabling you to run both Servoy Smart Client and Servoy Web Client on the same port. For example: In instances where most ports are blocked for clients, you can run Servoy on port 80.
Note: On Unix/Linux systems, Servoy may need to be run as root in order to use ports below 1024.
These are the steps to follow to enable the Servoy HTTP tunnel:
1. Open <servoy install dir>/server/conf/server.xml
2. Change the connector protocol as described at the top of the file.
(You might want to change the port number as well.)
3. Open <servoy install dir>/server/webapps/ROOT/WEB-INF/web.xml
4. Uncomment the two blocks labeled "tunnel servlet" (at the top and halfway down)
5. Open <servoy install dir>/servoy.properties and add the following line:
- Code: Select all
SocketFactory.rmiServerFactory=com.servoy.j2db.server.rmi.tunnel.ServerTunnelRMISocketFactoryFactory
6. *Macintosh ONLY:
Open servoy_server.sh
Change the line that starts with "java" so that it starts with:
java -Djava.net.preferIPv4Stack=true
7. [Re]start Servoy.
Enhancements for auto-generated SQL
The sql generation has largely been rebuilt. Servoy now supports relations using inner joins and left outer joins. This can be set from the relation dialog. Thus far, Servoy relations have all implicitly been inner joins so when migrating your solutions, current relations will all become inner joins.
Servoy now uses temp tables for queries on tables with composite primary keys. With databases that do not have temp table support, tables will be created named temp_<number>. These will be removed by Servoy after use. Be aware though, that in case of a crash some might remain.
Custom SQL
With the new sql generation engine, just about any legal sql can be used for custom queries. Your sql will still have to produce primary keys for the forms' table. When your sql uses the ORDER BY keyword, the old sql generator method is still used. This means that all the old restrictions apply. It also means that your old solutions' queries should cause no trouble with Servoy 3.5 .
Valuelist table
In the valuelist dialog, a checkbox was added to indicate the db valuelist has to be populated with specific table rows. This requires a table with extra column valuelist_name. The name of the valuelist will be used to filter on this valuelist_name column. The resulting records will be used to populate the valuelist.
Integer range
As opposed to Servoy 3.1, which could only handle non-fractional numbers in the Java integer range (-2^31 - (2^31 - 1)), Servoy 3.5 handles non-fractional numbers in the Java long range; -2^63 - (2^63 - 1) inclusive.
setBaseUrl method
HTML Areas have become a setBaseUrl() method. This url will be taken to be the base for all relative urls in the html area. This allows for easier skinning.
Temp tables
Servoy now uses temp tables for queries on tables with composite primary keys. With databases that do not have temp table support, tables will be created named temp_<number>. These will be removed by Servoy after use. Be aware though, that in case of a crash some might remain.
Previous release
http://forum.servoy.com/viewtopic.php?t=8794