5.16.1

Release date: June 12, 2015

Download

Fixes

  • Projects that were converted from version 5.9 or below to 5.16 did not convert properly in case the project contained published web or app services.
  • Resolve an error that could occur when a versioned deployment package is created of the current project in the Modeler (Ticket 292717).
  • Fixed error that occurred when copying a data view with a microflow data source (Ticket 293023).
  • Make sure it’s still possible to concat string literals to empty string variables (Ticket 288502).
  • Clarified error when bundling widgets fails.
  • Fixed an issue in 5.16.0 where if you upgrade a project and another team member has already committed the conversion to the team server you could see changes.
  • Fixed cookie support check on Windows Phone when running on Phonegap.
  • Extended client API to support datagrid extension and tab extension widgets.

Migration

  • As of Mendix 5.16.0 widgets are compiled to validate that they use documented client APIs only, and use a dependency loading mechanism that is compatible with all platforms supported by Mendix. Compilation of widgets is part of the “Create Deployment Package…” action. We advise you to perform this shortly after opening your project in 5.16.0, so you known upfront what widgets are incompatible with 5.16.0.

5.16.0

Release date: June 1, 2015

Download

Backwards compatibility breaking changes

  • Due to the bugfix for nillable associated entities (listed below), it might occur that existing projects that do not properly set the nillable or optional checkboxes for data members start giving runtime errors while exporting XML or calling a web service when their parameters are empty.
    • To solve this, make sure that for every association you are exposing, either:
      • The associated entity is always instantiated (i.e., it is not empty)
      • The corresponding XML Schema element has one of nillable=”true” or minOccurs=”0” attributes.
    • If you are the administrator of a Published Web Service and your consumers run into this problem, you can do so by going into the ‘Members…’ dialog in your operation’s Parameters tab, and check the ‘Nillable’ or ‘Optional’ checkbox for the affected data association(s).
    • Note that this issue only applies to to 1 associations where the associated entity is on the 1-side, so a list of objects may still be empty.
  • During the build custom widget are bundled. This step involves compiling the widgets against the official client API  as documented here: https://apidocs.mendix.com/5/client/. Widgets that use undocumented functions of the mendix client will cause this step to fail and thus the project build to fail. You can use the logfile generated while bundling the widget resources to determine the cause of the problems. This logfile is available in your project in deployment/data/tmp/dojo/build-report.txt.

New features

  • To minimize the effort of upgrading Mendix applications and guarantee that custom widgets will not impacted by changes in our javascript client, we now validate that custom widgets only use documented client API functions. These functions are documented here: https://apidocs.mendix.com/5/client/. The widgets are validated when building a project package. As Mendix 5.16 is the first release to contain this check, you may encounter widgets that use undocumented features. If your widgets use undocumented internal functions your build will break. When writing custom widgets we advise you to follow Appstore widget boilerplate, as can be found on Github (https://github.com/mendix/AppStoreWidgetBoilerplate).
  • Improved performance of opening a Mendix app. Custom widgets are now bundled when you create an MDA, either locally or when building via the Mendix Platform. This speeds up loading of the app, as it decreases the amount of requests required to load a Mendix App.
  • Allow Bootstrap glyphicons on buttons (Ticket 205150)
  • Make it possible to add annotations to a domain model. (Tickets 3858, 8933)
  • Support for indices on createdDate and changedDate attributes.
  • Add two new operations to the ‘List Operation’ microflow action: ‘Head’ and ‘Tail’. Head returns the first element of the list, or empty if the list contains zero elements. Tail returns a new list containing all elements excluding the first element, or an empty list if the list contains zero or one element(s).
  • Add support for Java 8. Java code generated by the Modeler now compiles and runs on both Java versions 7 and 8. During installation of the Mendix Business Modeler, JDK 8 will be installed if no JDK is present yet on the system. No new JDK will be installed when JDK 7 is already available.
  • New relational database platform supported: MariaDB 5.5.
  • Allow editing name, class and style of header widget.
  • Custom widgets are now compiled against the official client API, as documented in the API Documentation
  • Introduce batch replace for button icons in the Tools menu. (Ticket 22360)

Improvements

  • Suppress the ‘Open Project’ dialog when opening team server projects from the project portal or from the Business Modeler’s start page. If the project contains more than one branch, the dialog is still shown to allow the selection of the desired branch.
  • Change the default projects folder from ‘My Documents’ to ‘My Documents\Mendix’.
  • Generating ids for new objects will now be done more efficiently.
  • Upgraded built-in database from HSQLDB 2.3.1 to 2.3.2.
  • Replace rBootstrap with Bootstrap-RTL for right-to-left support.
  • Stand-alone mode is disabled by default when pinning a Mendix application to the homescreen on iOS.

Fixes

  • Retrieve should not be optimized away if its output variable is used in an activity which creates and changes an object at the same time. (Ticket 206058)
  • Instantiated records for persistent entities should be removed from memory after cancel/rollback. (Tickets 206533, 206514, 217085, 234503)
  • Throw exception if an empty value is added to a number in a microflow expression. (Ticket 246037)
  • Force non-scientific notation when resolving decimal members in XPath constraints. (Ticket 246069)
  • Fixed casting errors from Integer to Long in microflow expressions. (Ticket 206613)
  • Fixed list operation actions ‘Find’ and ‘Filter’ for Decimal type when using a whole number variable. (Ticket 246236)
  • Do not delete the javasource folder of a module when that module is removed from the project but another module with the same name is still present in the project. (Ordinarily, it’s not possible to create a module with a name that is already in use. However, this situation can arise after merging a feature branch.) (Tickets 206407)
  • When creating a new version controlled project, add the project lock file to the list of files that are ignored by SVN. This file used to be added to the ignore list at a later stage, which could in the meantime result in incorrect warnings about the project being changed.
  • Fix the problem that merging a single revision from another branch would also mark one revision earlier in that branch as having been merged. (Tickets 206549, 205732)
  • Immediately update the list with project changes when a new module is added to a version controlled project. (Ticket 203346)
  • A WSDL operation that doesn’t have an output or response part will now be treated as one-way operation. (Ticket 206193)
  • Fixed an issue where the XSD or WSDL return type of an operation could not be made optional or nillable.
  • In published webservice operations, order of members of the parameter and return type entities is maintained if the order of corresponding attributes in the domain model is changed. The order of members directly reflect the order of elements in the exposed web service definition file (WSDL) (Ticket 205453)
  • In published webservice documentation (/ws-doc), the list of available web services is now sorted alphabetically.
  • In webservice calls, when using a Simple or Advanced request body, parameters would be treated as XML elements even if they were actually XML attributes. This caused validation errors when ‘Validate against wsdl’ was enabled. The runtime now generates correct XML attributes.
  • In webservice calls, empty nillable associated entities were skipped, causing validation to fail. They are now rendered as XML elements with the xsi:nil=”true” attribute.
  • In 5.15, an Oops would occur when pressing the New button in the Select Web Service Operation dialog in mappings. It now works again.
  • The name for web service operations and name for app service actions are again set to the name of the first selected implementing microflow.
  • When trying to import an app service .MSD file created with an unsupported version, the Modeler would show an Oops screen. This has been resolved.
  • When renaming a variable in a microflow, parameters that referred to the variable in a ‘call appservice’ microflow action were not updated (Ticket 205342)
  • In the ‘Select members’ dialog of published web service documents, columns ‘WSDL name’ and ‘Object WSDL name’ have been renamed to ‘Exposed name’ and ‘Exposed item name’. A bug has been fixed that caused exposed item names to be non-editable for 1 - or - * associations. (Ticket 204385)
  • In the ‘Select members’ dialog of published web service and published app service documents, a bug has been fixed where collapsed nodes were not validated for correctness after pressing ‘OK’.
  • In the ‘Select members’ dialog of published web service and published app service documents, unchecking a association node automatically unchecks all subnodes. Similarly, checking a subnode automatically checks all its parent nodes.
  • The Modeler will now show a consistency error if someone tries to create an app service operation parameter with a reserved name (‘username’, ‘password’, or ‘appservicelocation’).
  • In Domain-to-XML mappings, trying to export a DateTime datatype to a Time XML element resulted in an exception. The modeler gives a consistency error when you tring to map a DateTime attribute into an XML Time element. An XML Time element can still be mapped by a converter microflow, with return type String. In this microflow you can compose the content of the Time element, for instance: ‘08:56:53.000’. (Ticket 206567)
  • In case of ‘xsd:All’ elements, optionality of child elements (‘minOccurs=”0”’) was not taken into account if the xsd:All container did not define ‘minOccurs’. (Ticket 225578)
  • Published web services now don’t return http status code 400 anymore for client soap faults, this was not correct according to the soap 1.1 spec. (Ticket 206244)
  • Stop returning the soap fault code “AuthenticationError” for web service authentication errors, this is now simply “Client” as it should be. (Ticket 206532)
  • Usages of object mapping microflows in mapping documents were not properly traced (Ticket 206670)
  • You’re no longer allowed to select ‘Association to parent’ and ‘Call a microflow’ in a domain to XML mapping. Previously it would use the association in these cases.
  • Consistency errors are shown when parameters have been added to or removed from a microflow that is used in web services or app services.
  • Prevent data truncation when changing existing string attributes with a fixed length to unlimited. (Ticket 257984) There is a known bug in older versions of Oracle 11.2 where converting numeric attributes to string attributes with a length greater than 80 leads to corrupted data. This problem is fixed in Oracle 11.2.0.4. See https://support.oracle.com/epmos/faces/DocumentDisplay?id=9949330.8 and http://stackoverflow.com/questions/16735793/strange-behavior-on-oracle-cast-to-nvarchar2
  • Database connections are now correctly reset if they are not valid anymore or if the database server does not accept connections for a period.
  • Fixed situation for MySQL where inheritance is added to an entity where one of the inherited entities already contains an AutoNumber attribute.
  • Scroll to the top after navigating to another page sharing the same layout (Ticket 225864).
  • Fix an issue where a conditionally invisible close button caused an exception (Ticket 205685).
  • Reset paging in DataGrid inside listening DataView, when another object is selected in listen target widget (Ticket 205503).
  • Fix runtime error for reference selectors on calculated attributes (Ticket 205505, 419875)
  • Upgrade Bootstrap to version 3.3.2 (Ticket 204301)
  • Fix issue when exporting a datagrid which contains an empty reference and a virtual attribute. (Ticket 205191, 205572, 102164)
  • Fixed issue with the progress bar which while being invisible caused other elements to not be clickable.
  • Ensure the getter for the a widget’s disabled property returns the correct state. (Ticket 206382)
  • Fix test for cookie support in Internet Explorer (Ticket 204691).
  • Change how invalid widgets are handled. From now on, every invalid widget will get a has-error class on its root dom node, instead of his parent table cell node (Ticket 211394).
  • Fix an exception in the Modeler caused by combination of role-based conditional formatting and snippets (Ticket 206308).
  • Call resize method on custom widgets, when its container, e.g. group box or tab panel, is expanded or shown (Ticket 211220).
  • Fix IE 10 specific bug, when value of TextBox with a mask was always considered empty (Ticket 206508).
  • Retain profile in the phone or tablet preview after signing in or out (Ticket 204258)

Known issues

  • The calendar widget versions smaller than 4.2 are incompatible with 5.16, please update to a recent version.
  • The formtooltip widget, formloader widget, data grid extension, tab extentsion, and RichTextEditor widget are not compatible with Mendix versions from 5.16 onwards.
  • There is a known bug in older versions of Oracle 11.2 where converting numeric attributes to string attributes with a length greater than 80 leads to corrupted data. This problem is fixed in Oracle 11.2.0.4. See https://support.oracle.com/epmos/faces/DocumentDisplay?id=9949330.8 and http://stackoverflow.com/questions/16735793/strange-behavior-on-oracle-cast-to-nvarchar2
  • If you convert a team server project from an older version and the project has already been converted to 5.16.0 and committed to the team server this can result in conflicts when you update from the team server.

    A work around for this is to resolve all conflicts using theirs. 

Removed features

  • Custom widgets are no longer allowed to use private functions of the mendix client. Please check the client api documentation for supported functions: https://apidocs.mendix.com/5/client/.
  • The hierarchical domain model notation is no longer supported.

Migration

  • You may encounter issues when upgrading projects containing published app or webservices from Modeler versions smaller than 5.9. To avoid these issues first upgrade the project to version 5.15 before upgrading to version 5.16.0.
  • As mentioned above, as of Mendix 5.16.0 widgets are compiled to validate that they use documented APIs only, and use a dependency loading mechanism that is compatible with all platforms supported by Mendix. Compilation of widgets is part of the “Create Deployment Package…” action. We advise you to perform this shortly after opening your project in 5.16.0, so you known upfront what widgets are incompatible with 5.16.0.