1.1 Xhr/Json Service Upgrades from WM 6.5

We do not have an automatic upgrade script to move users from WM 6.5 to WM 6.6 Xhr/Json services. The upgrade can be done by hand. There is only one key change. If any of your parameters are of type "path", the previous design assumed that your path parameter would automatically be appended to the end of the url. Now you have to add it in directly. Suppose we have a parameter named "account".

In WM 6.5, you'd have http://myapi.mydomain.com/myservice/ and we'd append account/accountValue to the end of that url.

In WM 6.6, you need to explicitly add http://myapi.mydomain.com/myservice/account/${account} and then we substitute the value of your account input into the above url. For this to work, you need to upgrade the URL by hand to add in account/${account}.

1.2 M1 Composite Upgrades

Users who experimented with creating composites in M1 will need to re-export their composite before they can be imported. Users who created composites prior to WM 6.6 need not worry as their was no composite "Download/Export" operation prior to WM 6.6.

2 Security Upgrades and Improvements

2.1 Upgrade to Spring Security 3.1

WaveMaker applications now use Spring Security 3.1 for security. Existing projects opened in WaveMaker 6.6.0.M2 and higher will be upgraded from Acegi. Demo, Database and LDAP security settings will be automatically migrated to Spring Security. If your project's security settings were customized outside of the the studio security tooling, those custom settings will NOT be migrated. Example include custom authentication managers and custom method access filters.

LDAP configuration changes

The new security LDAP configuration now supports searching multiple OU's for users. As a result of this enhancement, migrated LDAP settings might require adjustment after migration.
Consider the example a 6.5 project using the LDAP URL of:
ldap://ldapServer:389/dc=vmware,dc=com with the userDnPattern of: cn={0},ou=Users,ou=WaveMaker
This enabled users from the WaveMaker OU to login in with 6.5. For 6.6 the migration configuration does not work but can easily be adjusted.

Option 1: Remove the OU restriction
Simply set the User Search Pattern to "cn={0}". Since the new configuration searches the LDAP tree, you no longer need to specify the OU containing users.
Note: this enables other users in OU's sibling to ou=WaveMaker to login in.
Option 2: Move the OU to the URL
If you do not want users in sibling OU's to be able to login, add the OU to the LDAP URL
LDAP URL: ldap://ldapServer:389/ou=Users,ou=WaveMaker,dc=vmware,dc=com
This sets the WaveMaker OU as the base for all searches.

For more information about configuring LDAP security in WM 6.6, see the LDAP section of the Security documentation.

2.2 SSL Encryption

Enabling security now in a project now can also enable the application to run over SSL (Secure Sockets Layer). When enabled, all communication between client and server is encrypted. With SSL enabled, login passwords, session id's, database contents and all other data is encrypted.

WaveMaker's emedded tomcat server is configured with a certificate to run SSL.
The java server you deploy to must be configured to support SSL if SSL is enabled.
SSL is enabled by default when enabling security. You can turn off SSL by clearing the use SSL tick box.

For more information about enabling SSL in WM 6.6, see the SSL Encryption section of the Security documentation.

2.3 Active Directory Support

The security configuration editor now provides an Active Directory specific provider option. This provider uses the Spring Security ActiveDirectoryLdapAuthenticationProvider which is customized for a typical Active Directory setup.

Using this provider are able to authenticate using either their username ("thomas") OR their full userPrincipalName ("thomas@edison.com"). Roles are obtained from the memberOf attribute values of the user entry.

3 Studio Multi-select

Studio now lets you

  • Drag and drop of multiple widgets + undo drag and drop of multiple widgets
  • Delete of multiple widgets + undo of delete
  • Cut, Copy and Paste of multiple widgets + Undo of cut, copy and paste of multiple widgets
  • Edit properties of multiple widgets + undo of all property changes to all widgets.
  • Copy and paste mixed sets of widgets and nonvisual components from one page to another in a single cut/paste sequence (common and painful refactoring task made easier -- though javascript code still has to be done by hand)
  • dblclick: Select all sibling widgets
  • shift click vs meta click to select all widgets in parent between last selection and current selection

4 Improved Composites

Composites now support the following new behaviors:

  • When creating a composite, you can choose to include any services from your project into your composite (database, java, etc...)
  • When a user drags a composite onto their page, all services from the composite are added to the user's project
  • Composites can now contain resource files (images, html, javascript libraries, css, data, etc...)
  • Composites can now contain design time pages/wizards
More Info:

5 Improved Templates

You can now design a project to act as a template for a new project. You can use studio's Export Project command to create a zip file that you can share, and you can import that project using Import Template.... Once imported, this project will show up in your New Project dialog.

A new project created using such a project template can have

  • Security already enabled
  • Themes and custom css already setup
  • Headers, footers, extra pages, and page layout already setup
  • Services already imported
More Info:

6 New Import/Export

In Studio, project import and export now lets you choose to include custom themes and custom components/composites. It also gives you the option to overwrite a project of the same name or choose a new name for the project you import. Import/Export Docs.

7 New Theme Designer

A new theme designer has been added to the Source tab. This theme designer lets you view and edit all of the css that goes into your theme, makes it easy to edit and understand how the theme works, and should allow anyone to design their own theme. The new theme designer also allows users to see how every widget in wavemaker is styled so that they can apply this knowledge to customize individual widgets within their own project.

Finally, the new theme designer allows a theme to define custom widgets. These custom widgets are instances of button, panel, editor, etc… that are added to the palette and have different styles or properties from the default button, panel or editor.

For more information, see Theme Designer

8 ServiceVariables now have a disabled property

You can now disable a ServiceVariable using a disabled property. A disabled ServiceVariable will not fire; will not call the server.

Why would you want to disable a service variable? This is most useful for addressing cases where a LiveVariable is filtered by a grid selection, but before its been filtered, it shows all data. You can now bind a LiveVariable's disabled property to grid.emptySelection, and now the LiveVariable only loads data when there is a selection.

9 Loading Dialogs can now track multiple ServiceVariables

You can now create a single LoadingDialog, customize its message and graphics AND have it show any time any of a set of service variables are firing.

10 XhrService Evolves

A number of fixes were added to the new XhrService editor to allow

  • Default values for inputs
  • Inputs that don't show up as svar inputs (hard coded parameters)
  • Better handling of parameters in the path
  • Better handling of content that can't be escaped when sending it to the server
  • Now handles array as top-level result from server

11 Client side querying can now do simple OR expressions

If you pass an array of conditions into setQuery, it will OR them together:

      {enabled: true, budget: "<500000"},
      {enabled: false, budget: ">500000"}

sets queriedItems to all items where either enabled is true and budget < 500,000 OR enabled = false and budget > 500,000.

12 Jiras addressed

  • WM-4686: wm.Html now loads scripts; must enable the allowScriptTags property for this to work
  • WM-4695: Management of back button state; adds two properties to the widget: displayWhenHistoryEmpty and historyEmptyIfLessThanOrEqualTo
  • WM-4722: Adds app.hintDelay property
  • WM-4731: Disabled EditableGrids are no longer editable
  • WM-4350: Number editor has option to not format the number using the noFormatting property
  • WM-4733: When using the ServiceVariable inFlightBehavior property, there is now a new event handler to tell you when all requests have been completed; needed for users who want to start the next step of their process after dozens of requests have finished: onInflightBacklogComplete
  • New Accordion property: arrowsOnLeft
  • New Dialog property: titleBarButtonsOnRight
  • WM-4546: Icons now show in the MenuBar, not only in menu items
  • WM-4568: displayField can now select a subfield (id.firstName, department.name)
  • WM-4603: Assorted bug fixes for running studio in IE-10
  • WM-4684: Phonegap build dialog now automatically reuses your last deployment URL
  • Adds border-radius setting to styles in the property panel
  • Adds support for dojo.require("project.resources.javascript.xxxx");
  • WM-4653: helpText property now works on mobile devices (does not trigger onHover though)
  • WM-4758: PageLoader now fires onSessionExpiration event
  • WM-4503: Can now use ${grid.selectedItem} in bind expressions/display expressions, and also refer to other components; no longer must evaluate to a string/number/boolean/date.
  • WM-4709: Mysql Database connections now default to UTF-8 (for new database imports only)
  • WM-4832: Added property to enable/disable DojoGrid sorting: enableSorting
  • WM-4835: Simplified checkboxes where caption is on the right
  • WM-4582: Login page should maintain queryString/hash/path parameters when redirecting to index.html
  • WM-4566: wm.List scrollToRow and scrollToSelection are absurdly inefficient
  • WM-4732: Checkbox and RadioButton don't maintain _lastValue; reset does not work correctly
  • WM-4769: Deleting a published property can break PageContainers that have a binding to it
  • WM-4744: DataModelEditor: Unable to change field type
  • WM-4825: getUserName fails with Active Directory
  • WM-4839: Postgres db security is failing?
  • WM-4844: Test Query in DB Query by Roles fails (It is not backward compatible)
  • WM-4846: Maybe redundant JSType error report
  • WM-4861: displayExpression no longer has bind button
  • WM-4863: Import Postgres is reportedly having problems
  • wm-4866: Mobile: How to create a NavigationCall to Home when home varies by device?
  • WM-4872: Private java methods show up in client as operations
  • WM-4874: Adding int parameters to uploadFile method causes server to return argument mismatch errors
  • WM-4883: LiveEditing grid has bad layout when showing the "Saved" indicator for checkbox fields
  • WM-4890: Import Project doesn't work without ?debug parameter in url
  • WM-4893: Getting Error while clicking on tree nodes in Services Tab while designing
  • WM-4894: Cross site scripting issues
  • WM-4895: TwitterFeed stopped working as the twitter 1.0 api used is no longer supported by twitter
  • WM-4891: studio script editor scrolls automatically to top
  • WM-4889: Queries disappear after database reimport
  • WM-4888: The Operation "getUsersById" does not exist in Service " (It is not backward compatible)
  • WM-4887: Secure operations of services redirect to the login page instead of throwing a 403 error when anonymously accessed
  • WM-4886: Date and Time Editor Not Populating Time Portion of a datetime field
  • WM-4885: Importing Project as Template throws an error that causes the "Setting up new Project" loader to be shown endlessly
  • WM-4717: Imported types not included in service defs, types
  • WM-4794: Launcher fails to start when wm home is invalid
  • WM-4892: onSetData of wm.Var is not fired when list methods (addItem)
  • WM-4897: LDAP authentication not working properly
  • WM-4901: Error Login Service Upgrade from 6.5.3 to 6.6.M3
  • WM-4905: Security Service getUserId in 6.6M3 breaks my app
  • WM-4928: Odd Java Service Behavior

13 Misc Fixes

  • Select editor now has displayMenuExpression so that the menu can show full html with extra info while editor only shows the standard displayField or displayExpression.
  • Fix on lookup editor not wrapping text (http://dev.wavemaker.com/forums/?q=node/10939)
  • All links broken links related to Cloud Foundry has been removed.
  • An operation,'goToHomePage' has been provided in the NavigationCall to enable users to navigate to the home page on the desktop, phone or tablet.

© 2004-  WaveMaker, Inc