Skip to content
PDF

Version 3.7.0 (Earth)- Release notes

Release Date End of AMP(*) End of Life
2024-07-12 2027-07-12 2028-07-12

(*) Active Maintenance Period

The present document contains information regarding product enhancements, fixed issues and known issues related to AnswerModules Modules Suite version 3.7.0.

This guide

The information presented in the on-line guide are mostly non-version specific. AnswerModules team does its best to ensure that, where necessary, is made clear that the information presented is only applicable to specific versions, however if you are looking for this version-specific documentation, you can find it here

No Warranties and Limitation of Liability

Every effort has been made to ensure the accuracy of the features and techniques presented in this publication. However, AnswerModules accepts no responsibility and offer no warranty whether expressed or implied, for the accuracy of this publication.

Module Suite Compatibility Matrix

OpenText Content Server MS 3.2.1 MS 3.3.0 MS 3.4.0 MS 3.5.0 MS 3.6.0 MS 3.7.0
Content Suite 21.1 X X X
Content Suite 21.2 X X X
Content Suite 21.3 X X X
Content Suite 21.4 X X X
Content Suite 22.1 X X X X X
Content Suite 22.2 X X X X X
Content Suite 22.3 X X X X
Content Suite 22.4 X X X
Content Suite 23.1 X(*) X X
Content Suite 23.2 X X X
Content Suite 23.3 X X X
Content Suite 23.4 X X
Content Suite 24.1 X(**) X
Content Suite 24.2 X
Content Suite 24.3 X(***)

(*) Requires hotfix hotFix_ANS_340_010 to be installed

(**) Requires hotfix hotFix_ANS_360_009 to be installed

(***) Requires hotfix hotFix_ANS_370_003 to be installed

New Feature: Improved Support for Long Identifiers

Module Suite 3.7.0 introduces enhanced support for very long identifiers. If your environment utilizes long identifiers, you can enable this improved support through the Module Suite Base Configuration.

To enable this feature:

  1. Navigate to the Module Suite Base Configuration settings.
  2. Locate the option for long identifier support.
  3. Enable the feature as needed.

For detailed instructions, refer to our Base Configuration documentation.

SASL Memcache Authentication Support

Module Suite 3.7.0 introduces support for SASL memcache authentication. When enabling this feature on OTCS, follow these important steps:

Single Thread Client Configuration

Ensure that the cache is configured to use a single thread client. To do this:

  1. Navigate to the Module Suite base configuration.
  2. Locate the amcs.cache.mode.default property.
  3. Set its value to single.

Configuration Reload Required

After enabling SASL authentication on OTCS, you must save the Base Configuration to force a configuration reload.

Steps to Enable SASL Memcache Authentication

  1. Configure the cache to use a single thread client as described above.
  2. Enable SASL authentication in your OTCS settings.
  3. Save the base configuration to apply the changes.

Module Suite 3.7.0 Breaking Changes

Module Suite 3.7.0 it's based on Groovy 4. Groovy 4 builds upon existing features of earlier versions of Groovy. In addition, it incorporates numerous new features and streamlines various legacy aspects of the Groovy codebase.

Major Groovy Version Update

This release includes a significant update from Groovy 3.0.19 to Groovy 4.0.20. This is a major version change that introduces new features, improvements, and breaking changes. Users should carefully review their existing Groovy code and dependencies for compatibility issues. Key points to note:

  • Several breaking changes, including removal of the old parser and classic bytecode generation
  • New features like switch expressions, sealed types, and records (some incubating)
  • Performance improvements, especially for GString
  • Changes in JDK requirements (JDK16+ to build, JDK8+ to run)
  • Some modules and classes have been removed or relocated

Please refer to the Groovy 4.0 release notes for a comprehensive list of changes and migration guidance.

Note

WARNING: Some features of Groovy 4 are designated as "incubating". Where appropriate, related classes or APIs of these features may be annotated with the @Incubating annotation. Caution should be exercised when using incubating features as the details may change in subsequent versions of Groovy. We don't recommend using incubating features for production systems.

Important naming/structuring changes

Maven coordinate change

In Groovy 4.0, the groupId of the maven coordinates for Groovy have changed from org.codehaus.groovy to org.apache.groovy.

Legacy package removal

The Java Platform Module System (JPMS) requires that classes in distinct modules have distinct package names (known as the "split packaging requirement"). Groovy has its own "modules" that weren't historically structured according to this requirement.

Groovy 3 provided duplicate versions of numerous classes (in old and new packages) to allow Groovy users to migrate towards the new JPMS compliant package names. See the Groovy 3 release notes for more details. Groovy 4 no longer provides the duplicate legacy classes.

In short, time to stop using groovy.util.XmlSlurper and start using groovy.xml.XmlSlurper. Similarly, you should now be using groovy.xml.XmlParser, groovy.ant.AntBuilder, groovy.test.GroovyTestCase and the other classes mentioned in the prior mentioned Groovy 3 release notes.

New features

Switch expressions

Groovy has always had a very powerful switch statement, but there are times when a switch expression would be more convenient.

def result = switch(i) {
    case 0 -> 'zero'
    case 1 -> 'one'
    case 2 -> 'two'
    default -> throw new IllegalStateException('unknown number')
}

Sealed types

Sealed classes, interfaces and traits restrict which other classes or interfaces may extend or implement them. Groovy supports using a sealed keyword or a @Sealed annotation when writing a sealed type.

sealed interface Tree<T> {}
@Singleton final class Empty implements Tree {
    String toString() { 'Empty' }
}
@Canonical final class Node<T> implements Tree<T> {
    T value
    Tree<T> left, right
}

Records and record-like classes (incubating)

Groovy 4 adds support for native records for JDK16+ and also for record-like classes (also known as emulated records) on earlier JDKs.

record Cyclist(String firstName, String lastName) { }

Built-in type checkers

From Groovy 4, we bundle some select type checkers within the optional groovy-typecheckers module, to encourage further use of this feature.

@TypeChecked(extensions = 'groovy.typecheckers.RegexChecker')
def whenIs2020Over() {
    def newYearsEve = '2020-12-31'
    def matcher = newYearsEve =~ /(\d{4})-(\d{1,2})-(\d{1,2}/
}

GINQ, a.k.a. Groovy-Integrated Query or GQuery (incubating)

GQuery supports querying collections in a SQL-like style.

from p in persons
leftjoin c in cities on p.city.name == c.name
where c.name == 'Shanghai'
select p.name, c.name as cityName

Other improvements

  • GString performance improvements
  • Enhanced Ranges
  • Support for decimal fraction literals without a leading zero
  • JSR308 improvements (incubating)
  • AST transformation priorities

Legacy consolidation

  • Old parser removal
  • Classic bytecode generation removal

JDK requirements

Groovy 4.0 requires JDK16+ to build and JDK8 is the minimum version of the JRE that we support. Groovy has been tested on JDK versions 8 through 17.

All Enhancements in version 3.7.0

ID Scope Description
#001860 Smart Pages New Sync PDF Viewer Widget
#001858 Smart Pages New Kanban Widget
#001923 Module Suite Updated Synchfusion based widgets after having updated the dependency (25.1.35)
#001922 Smart Pages Added a self-contained method one can use to render programmatically a Smart Page
#001920 Module Suite Introduction of a new object-based licensing model
#001919 Module Suite Uniformed the look and feel of ModuleSuite admin csscripts to OT administrative pages
#001918 Content Script Updated Velocity macro #csresource
#001917 Extension - OAuth It is now possible to use SYSTEM as the storage policy (it will use System Data under the hood).
#001916 Extension - OAuth It is now possible to register an OAuth Profile on the fly
#001914 Extension - LLM Introduced dedicated openai Service, added Langchain4j dependency to support more models
#001913 Extension - JDBC Enable encryption for connection towards internal MSSQL database
#001912 Extension - Docx Improved the way comments are extracted from a document
#001911 Module Suite Removed dependency from groovy-wslite. Bumped soa-model-core dependency to 2.0.1
#001910 Module Suite Enabled OT Memcache SASL support. Updated dependencies and added support for a new non-pooled memcache client.
#001908 Module Suite All services in the serviceContext now receive a notification when the ContentScriptManager updates the serviceConfiguration.
#001899 Module Suite New APIs to set and get ModuleSuite related system data configuration
#001909 Module Suite Autocompletion now provides correct information about internal service's ContentScriptAPI objects
#001907 Module Suite Optimization of the process used to retrieve the current version of a node
#001882 Beautiful Webforms New APIs to manage the extended definition of category and form template
#001852 Beautiful Webforms Added Group Settings configuration to the Grid widget (Initial grouping)
#001849 Smart Pages Added Group Settings configuration to the Grid widget (Initial grouping)
#001863 Smart Pages Enabled context menu integration for the Grid widget
#001862 Beautiful Webforms Enabled context menu integration for the Grid widget
#001872 Module Suite Update Handlebars runtime javascript to version 4.7.8
#001873 Module Suite In Content Script Editor and BWF Smart Editor updated jquery and lodash library (3.7.1, 4.17.21)
#001894 Module Suite New application 'Form Workflow Dashboard' of the Application Builder tool
#001881 Beautiful Webforms New 'XENGADN Dropdown' widget to manage the 'ADN table key lookup' field
#001831 Module Suite Docbuilder: How to justify a paragraph
#001827 Module Suite Re-import of an existing Template Folder is not supported by the Transport Warehouse
#001718 Beautiful Webforms It is possible to configure a button in the footer of the 'SmartView Task'(V4) template to open a Modal Container
#001813 Module Suite Useless call to GetNodeFast to retrive the Version of a Script that has been loaded with getNodesFast method
#001654 Smart Pages Re-import of an existing SmartPage is not supported by the Transport Warehouse
#001935 Rend Changed default rendition engine from (wkhtmltopdf which is now deprecated) to rend

Issues Resolved in version 3.7.0

ID Scope Description
#001896 Module Suite xECM SPI method GetBusinessObjectQueryFormBulk is not executed
#001759 Module Suite rhRequest not working
#001883 Module Suite Modification of public rights issue
#001761 Module Suite info.pageCount wrong results on word generation
#001904 Script Console Script Console sample security configuration does not activate CSRF protection to Remote WebForms extension urls
#001832 Module Suite SFTP configuration issue
#001816 Module Suite Business Application using a connector type from xECM for Everything causing trace files
#001843 Module Suite Setting classification results in error 'could not login with cookie'
#001886 Module Suite Big integer DataID ( = 10000000000 ) returned incorrectly in Content Script
#001892 Content Script It is not possible to set "SQL Table" as the storage mechanism of a workflow form via the workflow process builder
#001897 Module Suite Error when a new version is added to a workflow attachment via the 'Workflow attachments' section of 'SmartView Task' template
#001898 Beautiful Webforms Minor visualization issues on CARL widget (widget's height non properly set)
#001850 Module Suite Smart Dropdown widget not working correctly when switch to another tab
#001806 Module Suite Rest call delay and session expiration
#001871 Module Suite Workflow update step package instructions API issue
#001369 Module Suite Issue in the Base Configuration page
#001835 Smart Pages In some cases odata crud operations return an error
#001879 Module Suite ADN Reference field implementation ( or ADN ID upgrade )
#001867 Beautiful Webforms The ADN Dropdown widget fails to retrieve ADN table key lookup values
#001895 Module Suite Space Content Widget issue
#001878 Online Documentation Flag name for message leads to imap error fetching mail
#001876 Online Documentation Documents without extension when temporary file crated, dot is added
#001844 Module Suite Version Content Fails If Document name is not FS compatible
#001853 Module Suite Anscontentsmartui module during Download create a trace file
#001884 Module Suite Default value set on BWF widgets overrides current non-empty form field value when loading a previously submitted form
#001784 Module Suite Using i18n map in Content Script for a locale
#001767 Module Suite Script Editor does not show snippets after the full Snippets import in MS 3.5 ( after Blazon snippet import )
#001837 Module Suite Field not emptied with Smart DropDown
#001855 Module Suite Smart Dropdown Validation rises even if it has a value set
#001838 Module Suite Smart Dropdown Breaking in Set
#001775 Module Suite Updated dependencies presenting risks related to security vulnerability
#001847 Module Suite Issue with removing categories from nodes. The script terminates correctly but the categories are not removed.
#001840 Smart Pages Search time keeps adding on
#001823 Beautiful Webforms The getFormInfo method loads incorrect information in the definition of fields belonging to a set
#001758 Module Suite Cache.touch method not working as expected
#001822 Beautiful Webforms Submitting a Content Server Versions form with unchecked checkboxes using forms.submitForm API will result in invalid data
#001826 Smart Pages Using the Include Web Form widget, fields with the error are not highlighted
#001812 Module Suite Fixed various issues in the Application Builder
#001825 Module Suite AM Logo is not up-to-date in the Velocity macro
#001708 Module Suite Application Builder: In the 'Document Builder' application, the 'Panel Container Toolbar' widget is not displayed in the form
#001707 Module Suite Application Builder: It is not possible to create the 'Create and Approve' application
#001790 Content Script Using the new Extension for Extended ECM for Engineering the generated transmittal 'Load sheet' is a csv instead of an xlsx
#001808 Content Script The overrides of the anscontentscript module are not loaded in the correct order
#001824 Extension - xECM When creating a BWS if the attached category has a default Date applied the creation fails
#001755 Module Suite Typo error in Custom Script Widget
#001558 Beautiful Webforms BWF Editor: opening the editor can require more that 10 seconds
#001788 Module Suite Content Script static variables incorrect Long conversion
#001810 Content Script The escapeXML method of the html API does not work
#001786 Extension - xECM The fluent api newBusinessWorkspaceCreationRequest to create the BWS (xecm API) does not create the Transmittal workspace
#001809 Extension - xECM Run Content Script Action in Event Bots Configuration page can't be properly configured
#001807 Extension - LLM Error when defining a new function
#001785 Smart Pages The Grid widget does not pass the parameter to the odata service.
#001789 Beautiful Webforms The docman.getNode().update() method returns an error when trying to update the Beautiful Form
#001793 Content Script Module Suite notifications in the 'Notification Center' do not display the header title correctly
#001787 Content Script The getFacetsVolume() method of the docman api returns the wrong volume
#001163 Online Documentation Review license pages
#001072 Online Documentation Requirements page is not updated
#001115 Online Documentation Installing Extension Packages
#001418 Online Documentation Add a note to remove CSSystem
#001666 Online Documentation Dead link in Getting Started page
#001650 Online Documentation Add deprecation information for wkhtmltopdf rendition method
#001658 Online Documentation Wrong anchor link in Callback documentation page
#001671 Online Documentation Module Suite documentation page "Installing on a clustered environment" is incomplete for the reconcile of opentext.ini file
#001673 Online Documentation Broken link on the "Deploy on Windows" documentation page in SAP extension section
#001783 Online Documentation Missing extension when renaming war files in paragraph "What to do if the installer raises the error: Unable to automatically.."
#001796 Online Documentation Impersonation documentation of the API is missing
#001889 Online Documentation Add mandatory Module Suite Extensions to Deployment guide on Developer Website
#001890 Online Documentation Enabling OT Memcache SASL requires to save the AnswerModules Base Configuration
#001876 Online Documentation Documents without extension when temporary file crated, dot is added

Dependencies updated in version 3.7.0

Library Previous Version New Version
groovy 3.0.19 4.0.20
commons-logging 1.2 1.3.1
commons-validator 1.7 1.8.0
commons-text 1.11.0 1.12.0
commons-email 1.5 1.6.0
commons-net 3.9.0 3.10.0
commons-io 2.13.0 2.16.1
commons-lang3 2.13.0 3.14.0
commons-codec 1.11.0 1.17.0
okhttp 4.11.0 4.12.0
jackson-databind 2.13.5 2.17.1
log4j-api 2.20.0 2.23.1
slf4j-api 2.0.6 2.0.13
handlebars 4.3.1 4.3.1
fop 2.8 2.9
gpars removed
c3p0 0.9.5.5 0.10.1
httpclient 4.5.13 4.5.14
http-builder removed
pdfbox 2.0.26 2.0.31
guava 11.0.1 33.2.0-jre
javaparser-core 0.9.1 1.5.2
jsoniter removed
aws-java-sdk 1.12.490 1.12.723
woodstox-core 6.5.1 6.6.2