Skyve 20190813 released

So it’s been a little while between releases. We had a bit of a false start with the July release which wasn’t quite ready for general use, but we’ve got some good stuff in this one to make up for it! Skyve 20190813 adds the option to use leaflet for maps instead of just Google Maps, as well as adding support for MySQL version 8.

Updated Maps

Skyve 20190813 adds support for maps in the default Skyve interface (PrimeFaces), and also adds the option to use Leaflet as the map renderer instead of Google maps. This allows us to provide map support in Skyve without needing to register for a paid Google API key.

Google map in Skyve default interface

Google map in Skyve default interface

Open Street Map using Leaflet in Skyve default interface

Open Street Map using Leaflet in Skyve default interface

MySQL 8 Support

This release also upgraded the version of Hibernate which Skyve uses which allows us to provide support for MySQL 8. See the instructions in the developer guide for help switching database dialect. A new SQL Server dialect was added for versions 2012+ which should be used if using a newer version of SQL Server for better syntax support.

Framework

  • Added mechanism to override JSON configuration using a JSON file with the same name in the root of the configured content folder. This allows settings to be configured at runtime from a future admin screen

  • Update Selenium version to use the same version of ByteBuddy as hibernate does

  • If an EnumeratedValue.toJavaIdentifier() yields a Java enum name that is a Java reserved word, append 'Value' to the name

  • Add MySQL 8 and 4 byte charset dialect options to generate domain

  • Rename MapFeature.iconDynamicImageName to MapFeature.iconRelativeFileName

  • Fix bug with ODG.validateDocumentAttributeNames() where it would terminate early

  • Use JPA_Style positional parameters for unique constraint checks

  • Upgrade to hibernate 5.4.3 to update MySQL index support

  • Add SQLServer2012SpatialDialect for new syntax support

  • Move column change detection logic into DDLDelegate

  • Add custom index generator for MySQL

  • Added method to return "bizKey (bizId)" string for a persistent bean as this is common way of identifying them

  • Exclude the composition association from FK check when called from preRemove()

  • Added convenience constructor for ValidationExceptionAdded support for partial HTTP requests for content

  • Remove GeoLocator widget

  • Extracted inline page styles from common jsp pages into a styles fragment

  • Re-style error.jsp to match the other common pages

Admin

  • Rename Communication system to systemUse to avoid MySql reserved word

  • Quick Import - Enforce preservation of loaded column order

  • Ensure Quick Import treats empty columns as nulls for String

  • CommunicationUtil - ensure filePath of created email eml is returned

  • Ensure ImportExport instance is saved prior to imports and exports

  • Add eviction options to tag bulk action

  • Add growl notifications for document refresh job

SmartClient

  • Upgrade geospatial support for Google maps and add option to use Leaflet

PrimeFaces

  • Add geospatial support for Google maps and Leaflet to bring up to parity with SmartClient

  • Expand the current PF module menu accordion panel and ensure tree nodes are expanded by default

  • Hide Column titles in dataRepeater and listRepeater in PF when columns reflow

Notes for Upgrading

To upgrade your Skyve project to this version, change the Skyve version in your pom.xml to 20190813 and change your skyve-maven-plugin version to 1.20.

There are updated map settings in the project configuration json file which are required for startup. Please replace or add the following to your project json when upgrading:

// Map Settings
map: {
	// gmap or leaflet
	type: "leaflet",
	// gmap or leafet layers to show for the map backdrop (use single-quoted strings)
	layers: "[L.tileLayer('https://.png', {maxZoom: 19})]",
	// layers: "google.maps.MapTypeId.ROADMAP",
	// opening a new empty map will centre here - ie "POINT(lng lat)"
	// centre: "POINT(0 0)",
	// opening a new empty map will apply this zoom level - ie 1 - 19
	// zoom: 1
},

If you are upgrading an existing production application and have system communications in the ADM_Communication table, there is a database script to run in /skyve-ee/prod/rename_columns_db_independence_20190813_m(y/s)sql.sql which will migrate data from the renamed column.

See the complete upgrade instructions on GitHub.