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:
- Navigate to the Module Suite Base Configuration settings.
- Locate the option for long identifier support.
- 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:
- Navigate to the Module Suite base configuration.
- Locate the
amcs.cache.mode.default
property. - 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¶
- Configure the cache to use a single thread client as described above.
- Enable SASL authentication in your OTCS settings.
- 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( |
#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 |