Servoy 5.0 rc 1

Release notes for Servoy betas

Servoy 5.0 rc 1

Postby Jan Blok » Fri Oct 09, 2009 7:00 pm

We are pleased to announce the immediate availability of Servoy 5.0 release candidate 1

NOTE: this is PRE-RELEASE SOFTWARE, use with caution and make BACKUPS before you start

This version is available through the download page on the Servoy website (developer section).

If you find a bug or have a feature request, please file a case in our support system: http://crm.servoy.com/servoy-webclient/ ... oy_support

We want to say thanks to the Servoy 5.0 beta testers, for all the testing they already did, for them this version will also be available through auto update shortly.

---------
Highlights

Developer Changes:
[new] Unit testing support
[new] JavaScript Function parameter and JSDoc support
[new] Configurable JavaScript formatting
[new] Integration with SQL Explorer Eclipse plugin
[new] Basic JavaScript profiler
[new] Eclipse update to 3.5/Galileo
[new] Tomcat update to version 6.0.20
[new] Sybase update to version 11 (this drops all sybase support for Mac PPC!)

Client Changes:
[new] Data Drag and Drop
[new] Client Design mode
[new] Full support for linked relations in scripting and UI design
[new] Improved form inheritance support
[new] Webclient anchoring support
[new] Windows key shortcuts plugin
[new] Foundset multiselect support
[new] ValueList fallback support
[new] Extended i18n support

Deployment Changes:
[new] Applicationserver clustering using Terracotta
[new] Maintenance mode with pre- and post import hooks
[new] Mark Database Servers as a clone of ...., to have Servoy automatically update mulitple clones of the same database datamodel on import

---------
Detailed overview

Developer Changes:
[new] JSUnit support (automated testing of JavaScript functions). See JSUnit node in the Solution Explorer View, on a solution there is a context menu to start the tests for all JavaScript methods in the solution starting with "test"
[new] Possible to specify the function parameters in function declaration like:
function x(text)
{
application.output(text)
}
* Possible to place comments outside the function declaration in the comments above (see JSDoc toolkit at http://code.google.com/p/jsdoc-toolkit/ ... gReference for the standard way of documenting JS code).

[new] Possible to assign values to the parameters of a function when the function is assigned to an event/command in the Properties pane in Developer
[new] Methods attached to events and commands now automatically get a JSEvent where applicable
[new] Methods that are called by events like a Button's onAction now automatically receive a JSEvent object as first argument.
* Legacy code that re-uses methods for both event handlers and inline usage might behave differently because of the unexpected first argument passing when triggered by an event

[new] Events and Methods show their default arguments in properties pane in Developer
[new] Configurable JavaScript formatting (can be shared in a profile format, to have all developer in a team use the same coding convention)
[new] Integration with Eclipse SQL Explorer, have to be installed separately via eclipse update mechanism like doing for SVN. Eclipse SQL Explorere, sees the database connections defined in Servoy automatically (see: data tab in Table editor and the Context menu entry for Database Servers)
[new] Basic javascript profiler view
[new] Component templates:
Allows for storing a all form property settings in a template: See context menu of a form. If elements are selected o the form while saving the template, the elements are also part of the template.
When creating a new form, it's possible to select one of the previously saved templates. All form properties and possible elements with their properties will be copied onto the newly created form
Templates that contain elements can also be used to copy the group of elements to an existing form (in this case form properties contained in the template are not taken into account)
A list of saved Templates can be found under Resources in the Solution Explorer.
Templates are part of the Resources project and thus can be saved in a Team Provider and thus shared among developers
Note: Templates are 'templates', meaning that altering a previously saved template doesn't alter all the locations where the template was previously used to create a form and move elements on an existing form.

[new] Import .servoy file in Servoy Developer, directly into workspace
[new] i18n key/message synchronization via team support
[new] i18n is file based in developer, to allow SVN/CVS usage on i18n content
[new] Ability to bind a valuelist to a global method for retrieval of valuelist data
[new] Ability to externalize hardcoded strings to i18n keys (accessible through context menu of i18n node in solution Explorer)
[new] Improved debug scripting console (called Interactive console), including code completion
[new] regex node listed under JSLib
[new] Option to turn on Javascript Strict mode in Developer, see the JavaScript preferences. More waring are reported. For example:
function x(a,a) {...}
will raise a warning about the duplicate arguments

function x(a) {var a = 10}
will raise a warning about hiding an argument

if (x = 10)
will raise a warning about doing an assignment ("if ((x = 10))" will not!)

var a = 10; var a = 11
will raise warning about redeclaration of variable

function x() { if (true) { return 1} else {}}
will raise warning about inconsistent returns

function x() {var x; x; x = 10}
will raise warning about useless expression

[new] Warnings in Developer for elements outside form boundaries
-Elements (partly) located outside the bounderies of a form (outside the defined height and width of a form) will generate warning markers as of 4.2, because elements placed this way will result in scrollbars in the Webclient, while the Smart Client won't
-more solution integrity checks, to produce warning if possible problems are detected

Important: This release contains a developer workspace migration, it will merge servoy form items (files) into the form file, resulting in far less files and better developer performance.
It is strongly recommended to:
A) When using the Servoy Team provider / repository, every developer can convert the workspace
B) When using SVN/CVS:
1-make sure all solution data from all developers is committed
2-have one developer do the workspace migrate action
3-commit the new version (in case of SVN/CVS)
4-have the other developers use "team update" on the the non-active(!) solutions
Warning: A converted workspace cannot be used by an older Servoy developer version


Servoy client:
[new] Data Drag and Drop & Client Design mode:
-In developer see the form events onDrag, onDragOver and onDrop event on Forms
-Client designmode (resize and relocate elements on a form in the client by user drag/drop/select actions, see controller.get/setDesignMode())
-See the servoy_sample_solutionModel for DnD in client design mode
-Added controller.recreateUI(): brings a loaded form in sync with it's solutionModel blueprint (important for client design)

[new] Full support for linked relations in scripting and UI design:
-Support in UI to place dataproviders multiple (linked) relations deep
-Support for placing a tab on a tabPanel over multiple (linked) relations
-Support to sort over multiple (linked) relations

[new] Support added for sorting on aggregates
[new] Forms can be created without having a datasource (table) assigned
[new] Ability to create forms without formparts (so you can define all form parts in the child form)

[new] 'window' plugin which allows to register methods to be fired based on key combination pressed (SC and WC). See plugins.window.create/removeShortcut()
[new] JSEvent (object used by window plugin and drag and drop events) Note: application.getLastKeyModifiers has been deprecated
-data: allows you to add custom data to the event, useful for drag 'n' drop events
-getElementName(): get the name of the element that triggered the event
-getFormName(): get the name of the form that triggered the event
-getModifiers(): gets the modifiers that were applied to the event trigger
-getSource(): object reference to the element that triggered the event (same as: forms.xxxx.elements.yyyy)
-getTimeStamp(): the timestamp when the event trigger occurred
-getType(): gets the type of event
-getX(): returns the x coordinateof the cursor at the moment of the event trigger
-getY(): returns the y coordinateof the cursor at the moment of the event trigger

[new] Foundset multiselect support (JSFoundSet.multiSelect, JSFoundSet.getSelectedIndexes(), JSFoundSet.getSelectedRecords(), JSFoundSet.setSelectedRecords())

[enh] Extended i18n support:
-Support added in i18n area for country and variant: en_US vs. en_UK etc.
-Support for any combination of Language and Country in the i18n area
[new] Added JScolumn.getTitle()
[new] .newRecord(index): allows to create a new record at a certain index
[new] valuelist fallback support, to lookup/display values which are not longer selectable for end user

[new] Added group/ungroup support to group elements together: The group can be named, so it can be scripted against.
-Resizing a group will rezise the elements in the group.
-group can be saved as a template

[new] Advanced operators for relation definition:
-Case insensitive equal: #= -Case insensitive not euqal: #!=
-Case insensitive like: #like
-Case insensitive not like: #not like
-Null or equal: ^||=
-Null or greater than: ^||>
-Null or smaller than: ^||<
-Null or greater or equal to: ^||>=
-Null or smaller or equal to: ^||<=
-Null or not equal to: ^||!=
-Null or like: ^||like
-Null or not like: ^||not like
-Null or case insensitive equal: ^||#=
-Null or case insensitive not like: ^||#!=

[new] optional logging level parameter to application.output(...). See Application - Constants - LOGGINGLEVEL
[new] onRightClick event on fields
[new] onFocusGained/Lost events on Forms: to get notified of form elements getting or loosing focus
[new] onDataBroadcast event on Solution: to get notified of incoming dataBroadCasts
[new] controller.getFormContext(): function to get the parent form stack of a visible form
[new] application.isInDeveloper(): returns true if running developer. application.getApplicationType() will start to return the same values per client in application server and developer
[new] option to name locks and consecutively release only the locks with the specified name, instead of releaseAllLocks (see optional parameters on databaseManager.acquireLock and databaseManager.releaseAllLocks)
-Servoy locks can also be turned into real database lock (select-for-update statement, admin-page option)

[new] afterRecordInsert/afterRecordUpdate/afterRecordDelete events on table level, to complement the existing onRecordXxxx events that fire before the action
[new] support for onAction on label linked to field using labelFor to render the Column header: overrides onSort in TableView, allowing method triggering in findMode
[new] JScolumn.getForeignType()
[new] JScolumn.getScale(): returns the precision of a a numeric column (Note: JScolumn.getLength() now returns the length of a numeric column properly)
[new] foundset.loadRecords(pk): to load a single record by its primary key value (only single column number/UUID are supported)
[new] application.showCalendar(Date): to show the calendar with the specified date allready selected (since 4.1.3)
[new] JSRecord node under the Database Manager, with functions .getPKs() and .isEditing()
[new] number of bytes to read from a file using plugins.file.readFile('somefile', noOfBytes): to read the bom for a file with a bom (since 4.1.3)
[new] UUID object node under application with functions .toBytes() and .toString().
[chg] Webclient javascript will run in interpreted mode, instead of compiled mode, allowing the use on continuations (since 4.1.3)
[new] REST web service plugin, which makes it possible to expose (form) methods as REST API handlers:
-The REST API is accessible through the url: : http://domain:port/servoy-service/rest_ ... e/formName
-The form needs to have the following methods:
-GET: ws_read()
-POST: ws_create()
-DELETE: ws_delete()
-PUT: ws_update()
-A sample solution is included in the Servoy distribution (servoy_sample_rest_ws.servoy), detailing how to retrieve data from the http request and to return a response.

[new] Improved of GlobalMethod column converter, the attached method will receive more information/arguments
[new] Added solutionModel types for Servoy objects for testing the type of objects using the operators instanceof and typeof
[new] Forms references in a globals variable / global variable holding an (associative) array will not be removed from memory

Deployment:
[new] Terracotta integration for clustering Servoy application servers (documentation how to setup a cluster will follow soon)
[new] Multiple database model updates during import, when dbservers are flagged as cloneFrom base dbserver, to support switchServer better in SaaS env.
[new] solution import has an option to report what it did change on datamodel(s)
[new] Ability to disable batchprocessors (all or individual) on the admin page, so they do not start automatically on server (re)start
[new] Application Server maintenance mode
-scripting support before and after import solution at the server,when the importing solution contains modules starting with 'before_import' and/or 'after_import, those are started by batchprocessor (during these solution executions a special maintanance plugin is usable to alter the database datamodel)
[new] Added option to limit the upload size of files through media fields in the Web client (admin-page option)

Servoy WebClient:
[new] WebClient anchoring support, can be globally disabled on admin page if unwanted behavior

Plugin API:
[new] massive update on public api at: http://www.servoy.com/docs/public-api/index.html
-3rd party Servoy aware beans can use Servoy property editors: If your bean info class calls pd.setValue("servoy_property_editor", "dataProvider") and the property type is String, Servoy Developer will use the data provider property editor from Servoy on a bean.
Jan Blok
Servoy
Jan Blok
 
Posts: 2684
Joined: Mon Jun 23, 2003 11:15 am
Location: Amsterdam

Re: Servoy 5.0 rc 1

Postby Providence1 » Sat Oct 10, 2009 9:15 pm

When I use the color picker to choose RGB color values for a body of a form, say 100 straight across in values, I get 81 straight across as my chosen values after I close the color picker.

191 straight across will give you 177 straight across in values after the color picker is closed.
Providence
Providence1
 
Posts: 456
Joined: Tue Aug 17, 2004 2:36 am
Location: New York, NY

Re: Servoy 5.0 rc 1

Postby rgansevles » Mon Oct 12, 2009 9:08 am

Providence, what OS are you using?

Rob
Rob Gansevles
Servoy
User avatar
rgansevles
 
Posts: 1929
Joined: Wed Nov 15, 2006 6:17 pm
Location: Amersfoort, NL

Re: Servoy 5.0 rc 1

Postby martinh » Mon Oct 12, 2009 9:22 am

In the past you were talking about Servoy 4.2
Does the 5.0 replace the 4.2 version?
Martin
------------------------------------------------
Servoy Developer
Version 5.2.10/5.2.13
Java version 1.6 update 31
Database SQL Server 2008 R2
martinh
 
Posts: 857
Joined: Wed May 09, 2007 5:34 pm
Location: Belgium

Re: Servoy 5.0 rc 1

Postby Jan Blok » Mon Oct 12, 2009 9:50 am

Yes, marketing decided that 5.0 was more appropriate when looking at the big feature set.
Jan Blok
Servoy
Jan Blok
 
Posts: 2684
Joined: Mon Jun 23, 2003 11:15 am
Location: Amsterdam

Re: Servoy 5.0 rc 1

Postby lwjwillemsen » Mon Oct 12, 2009 1:57 pm

Please some info/documentation (or link) about the use of the new sql option in the valuelist (global method ?)
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 681
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 5.0 rc 1

Postby erdione » Mon Oct 12, 2009 2:38 pm

What is the new fallback valuelist option ?
Fabrice
erdione
 
Posts: 112
Joined: Thu Feb 01, 2007 1:19 pm

Re: Servoy 5.0 rc 1

Postby Harjo » Mon Oct 12, 2009 3:32 pm

yes, this one is mine! :-)

for instance if you have a value list with active projects, and set an invoice to such project.( by using a combobox) than you have a problem when the project becomes not active anymore. You don't see any value anymore in the combobox,

now you can let this valuelist fallback to a valuelist , with ALL your projects.

so in short, you can use the fallback valuelist to show ALL projects, and the real valuelist, on which they can choose, when you open the combobox.
Harjo Kompagnie
byKom B.V.
ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
Harjo
 
Posts: 4321
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Servoy 5.0 rc 1

Postby Providence1 » Mon Oct 12, 2009 3:53 pm

Rob, I'm using 10.6.1
Providence
Providence1
 
Posts: 456
Joined: Tue Aug 17, 2004 2:36 am
Location: New York, NY

Re: Servoy 5.0 rc 1

Postby jcompagner » Mon Oct 12, 2009 4:27 pm

lwjwillemsen wrote:Please some info/documentation (or link) about the use of the new sql option in the valuelist (global method ?)


if you want an example for that. just let servoy create the method through the valuelist editor. Then you have loads of sample code.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8884
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 5.0 rc 1

Postby david » Mon Oct 12, 2009 4:35 pm

Harjo wrote:yes, this one is mine! :-)

for instance if you have a value list with active projects, and set an invoice to such project.( by using a combobox) than you have a problem when the project becomes not active anymore. You don't see any value anymore in the combobox,

now you can let this valuelist fallback to a valuelist , with ALL your projects.

so in short, you can use the fallback valuelist to show ALL projects, and the real valuelist, on which they can choose, when you open the combobox.


Nice :)
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1727
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Servoy 5.0 rc 1

Postby Harjo » Mon Oct 12, 2009 4:38 pm

exactly! :D
Harjo Kompagnie
byKom B.V.
ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
Harjo
 
Posts: 4321
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Servoy 5.0 rc 1

Postby lwjwillemsen » Mon Oct 12, 2009 9:57 pm

jcompagner wrote:
lwjwillemsen wrote:Please some info/documentation (or link) about the use of the new sql option in the valuelist (global method ?)


if you want an example for that. just let servoy create the method through the valuelist editor. Then you have loads of sample code.


Thanks Johan, I didn't expect this sample code to show up when creating the global method through the valuelist editor...

Am I correct when I think this global method will be called every keyboard stroke when selecting typeahead at the formelement with this valuelist ?
Lambert Willemsen
Vision Development BV
lwjwillemsen
 
Posts: 681
Joined: Sat Mar 14, 2009 5:39 pm
Location: The Netherlands

Re: Servoy 5.0 rc 1

Postby ptalbot » Tue Oct 13, 2009 6:22 am

Great work! I especially like the (massive indeed! :)) update of the public API!

Only one thing: with the deprecation/disparition of IClientPluginAccess.DEVELOPER value in the public API v5.x.x, I cannot see anything to test for the type of client (debugger vs smart) anymore :{

Is there something equivalent to
[new] application.isInDeveloper(): returns true if running developer. application.getApplicationType() will start to return the same values per client in application server and developer

in the public API, accessible from a bean/plugin?

Or is there any other reliable way to test for that?

Thanks in advance for the info,
Patrick Talbot
Freelance - Open Source - Servoy Valued Professional
https://www.servoyforge.net
Velocity rules! If you don't use it, you don't know what you're missing!
User avatar
ptalbot
 
Posts: 1659
Joined: Wed Mar 11, 2009 5:13 am
Location: Montreal, QC

Re: Servoy 5.0 rc 1

Postby jcompagner » Tue Oct 13, 2009 9:34 am

ptalbot wrote:Great work! I especially like the (massive indeed! :)) update of the public API!

Only one thing: with the deprecation/disparition of IClientPluginAccess.DEVELOPER value in the public API v5.x.x, I cannot see anything to test for the type of client (debugger vs smart) anymore :{

Is there something equivalent to
[new] application.isInDeveloper(): returns true if running developer. application.getApplicationType() will start to return the same values per client in application server and developer

in the public API, accessible from a bean/plugin?

Or is there any other reliable way to test for that?

Thanks in advance for the info,



I dont think plugins currently can ask for that anymore yes. How do you use it in your plugin?

Make a case so that we can add it to the IClientPluginAccess api.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8884
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Next

Return to Latest Releases

Who is online

Users browsing this forum: No registered users and 1 guest