Skyve 20180409 released

This release contains quite a few enhancements to reporting in Skyve, as well as more work on SAIL. Some bugs were squashed along the way.


  • Ensure the view title is updated on ajax requests

  • Introduce TriState check boxes

    • Note: previously checkboxes were false in PrimeFaces, they will now default to null. If you wish for them to remain true/false, then you will need to set triState=false" in the edit.xml as per SmartClient views.

  • Set default list grid column widths and justifications based on the bound document attribute type


  • Enable programmatic selection of tab 0


  • Log a 1-liner for 404s in CustomerResourceServlet

  • Add command trace for router outcome in home.jsp

  • Updated CommunicationUtil#htmlEnclose() to only replace \n with <br>within a line, not every instance which was causing too many line breaks to be inserted in emails

  • Allow tag action job requests to operate in the same transaction

  • Updated AbstractDomainTest#getRandomAttribute() to return a random attribute instead of the first one

  • Update backup utilities to log info messages only when command trace setting is on

  • Added new @DataMap annotation to allow Skyve Factories to specify different data files to use for attributes random test data. Updated TestUtil to use the @DataMap if present, or now fallback and look for a lorem.txtto use for random text instead of always using uppercase random characters to fill text fields

  • Added GENERATED_PATH parameter to DomainGenerator

  • Updated OverridableDomainGenerator to output domain, orm and factory files to the generated path instead of the source and generated test path

  • Generate better SAIL for module and documents

  • Ensure generated SAIL captures download and report buttons

  • Implement lookup description op codes in SAIL for PrimeFaces testing

  • Add data factory / data builder to Skyve

  • Updated FactoryExtension location to be within SRC_PATH instead of TEST_PATH. Updated OverridableDomainGenerator to look for factory extensions and add imports in the new location

  • Add TestSuccess, TestFailure and Automation.testStrategy to SAIL

  • Add comments to SAIL and comment when generation encounters a problem (and continue)

  • Change User and System dashboard to use listgrid of jobs

  • Added maven version variable to ultima template footer. Note that projects that use this will need to filter this file during compilation so that the variable is replaced.

  • Ensure that WebUtil.getConversationBeanFromRequest() uses a webContext supplied to it so we don’t inadvertently end up with 2 instances of the same deserialised bean

  • Do not set icon properties when generating scaffolded list or edit views as these should either be specified manually, come from the document or be defaulted

  • Fix overridable domain generation of java type hierarchies to include Extension classes for base documents if defined

  • Associations and collections to documents with an extension class defined now generate the reference to the extension class in OverriableDomainGenerator

  • OverriableDomainGenerator now returns the Extension class in domain object generation of newInstance method if appropriate

  • Updated SkyveScript to correctly process the default module and to clear errors when resolved

  • Added a cancellable job class which job implementations can extend to periodically check whether or not they should stop executing

  • Added an iterating job class which can be used to execute common logic over a collection of elements

  • Set startRow and endRow form item properties so that form row breaks always occur no matter whether the form items are visible or not

  • Fix UnfilterableListGridBuilder and UnsortableListGridBuilder to stop filtering and sorting instead of being the other way around

  • Fix ListGrid to work with SkyveLazyDataModel if pagination is not enabled in the ComponentBuilderChain


  • Default print action in edit views for Reporting

  • Added ability to preview report designs

  • Enabled generation of a reporting template for list and edit menu items

  • Added row count and summary totals to list reports

  • Add customer logo to title band of all generated reports

  • Completed ability to create list report templates, preview them and reference them in views


A new @DataMap annotation has been added and can be used in Skyve factories to specify a specific test file you wish to load for an attribute. This can be used in a single annotation mode:

@DataMap(attributeName = "userName", fileName = "firstName.txt")

or if multiple attributes are required to be mapped, they need to be wrapped with a @SkyveFactory annotation:

  value = {
    @DataMap(attributeName = "userName", fileName = "firstName.txt"),
    @DataMap(attributeName = "lastName", fileName = "firstName.txt")
releasesBen Petito