Release Notes - 4.6 Versions
November 29, 2021 (v4.6.18)
Fixes
Renaming an SAP SDK project no longer causes the BAPI Fetcher to fail.
October 06, 2021 (v4.6.17)
Fixes
Fixed an Error that was thrown when SAP API was deployed on Kubernetes Environment.
May 20, 2021 (v4.6.16)
Improvements
Core was upgraded to v4.6.78
AS/400
CSV files can now be parsed by the AS/400 Data Queue Consumer project
AS/400 Source explorer can now fetch PCML files from RPG3/RPGLE files
RPG3 file are first converted to RPGLE
RPG file then compiles to temporary location
A PCML file is then generated and fetched to the IDE
Users can generate an entity from the fetched PCML , by providing the path to the actual program (PGM)
All RPC entities under a CTG SDK project will be extended to ctgEntity instead of RpcEntity, which provides better error handling
File Consumer
Messages now reflect file properties (file name , last modified date, created date)
It is now possible to configure the desired consume strategy. Meaning, files in a directory can now be consumed by name, created date or last modified date (Ascending or descending)
Messages can now be consumed synchronously and asynchronously. Setting the consumer to Synchronous processing will cause the processor to: consume a message, execute the SDK and only then move on to consume the next message. Asynchronous processing will move on to the next message upon successfully creating an RPC entity from the consumed message (will not wait for SDK)
File processing can now be stopped by throwing a special exception, that would leave the “failed” message in the directory to be reprocessed without moving it to the Failed File directory
MQ Consumer
Messages can now be consumed synchronously and asynchronously. Setting the consumer to Synchronous processing will cause the processor to: consume a message, execute the SDK and only then move on to consume the next message. Asynchronous processing will move on to the next message upon successfully creating an RPC entity from the consumed message (will not wait for SDK)
MQ Consumer now supports SSL
A transactional property has been added to MQ to enable MQCMIT (success) and MQBACK (fail) when processing messages
Downloadable Modeler for AS/400 Screens projects has been aligned with latest Core version
REST
HTTPRequestCustomizer now allows editing the message body
REST Responses can now be validated with custom logic
The old implementation of HTTPRequestCustomizer methods have been deprecated. It is recommended to change your implementation to use the new one. The old implementation will be removed in version 4.7.0.
Fixes
MQ Consumer
Password decryption during Runtime
Setting the ‘sync’ to True in the .yaml configuration prevents redundant messages from being sent to the queue
Fixed repeating errors in the console log
The producer connection remains open after first message
IndexOutOfBoundsException is no longer thrown when a message is received with less than 140 characters
Problems with User/Pass authentication were corrected
SOAP
Models are now generated correctly for complex WSDLs
Daisy-chained namespaces in a WSDL (one namespace imports a second namespace) now work correctly
AS/400 parser now recognizes
PIC -9(5)
CTG API projects no longer throw errors for the extended CTG entity
May 5, 2021 (v4.6.15)
New Features
File consumer API project now supports the consumption of SWIFT Payment files:
Swift CSV files can now be parsed as RPC entities
Users can now select the file type (XML or Swift) when creating a new API project
SWIFT messages from file can now be consumed and mapped to an RPC entity that represents the SWIFT model, and then sent to an SDK project as a request
Improvements
Core version was upgraded to v4.6.66
SSL Support was added to the IMS TCP connector
The number of producers in a Kafka SDK can now be controlled through a designated parameter
The message body in an HTTP Request can now be adjusted according to a value in the message header
MQ SDK can now access JKS from a public URL by checking SSL definitions
Users can now define the order in which files will be consumed in Runtime, by setting the strategy (by Name, Creation Date or Last Modification Date - ascending or descending)
Users can now define the number of times (instances) a CICS program can be called in a single MF transaction
File consumers can now process the same message a predefined number of times before moving or deleting it, according to the Error Handling strategy
Fixes
Kafka consumer projects now run correctly following correction of a bean exception
License utility now recognizes end projects that do not run as SpringBoot jars
The MF CTG connector now handles timeouts correctly
April 20, 2021 (v4.6.14)
New Features
ISO-8583 Endpoint - API Project can now be configured to act as an ISO-8583 server that listens for ISO-8583 messages , invokes an SDK and eventually maps the SDK response as ISO-8583 format service output
Improvements
OpenAPI Parser now generates HTTP headers in the response when generating REST SDK models from Swagger specifications
The REST connector now maps HTTP headers in the responses
VSAM record metadata can now be loaded to the VSAM Record Registry
The VSAM file name property for datasets can now be read from the application.yml file
Fixes
MQ Consumer Input fields generated with correct annotations
CICS-VSAM Orchestration now operates correctly
April 7, 2021 (v4.6.13)
New Features
New AS/400 Data Queue connector - SDKs can now be created with AS/400 Data Queue as a backend
Messages can be pushed into a queue. Developers can setup the SDK project to either just push the message into the queue and return a success message ,or wait for a response from a different queue and return that response to the user
Entities can be created by Parsing PCML Or CSV files
Improvements
A Transaction ID field has been added to the superclass that can be updated through mapping
Logical Unit Pools can now be loaded to Mainframe Screen projects from external JSON files
Error handling strategies can now be configured for Kafka endpoints to ensure no loss of data
Upgrades
Springboot was upgraded to v2.4.4
Fixes
Contract First service generation for multiple services fixed
REST SDK model generates correctly from Swagger with patch requests
Field selection issues with T24 Services corrected
Computational fields are now correctly recognized by COBOL parser
Sybase fetcher was updated to correctly handle nested stored procedures
March 22, 2021 (v4.6.12)
New Features
AS/400 Data Queue
Consumer - It is now possible to consume messages from AS/400 Data Queue
Data Queue Endpoint Services can now be configured in AS/400 API projects
API projects can now be configured to work with AS/400 data queues
Users can now close DQ Consumers with greater control
Connector - It is now possible to push messages to an AS/400 Data Queue
AS/400 DQ’s can now be used in Runtime
When AS/400 or Data Queues are not available, messages will be stored until connectivity has been restored
ISO-8583 Connector- An international standard for financial transaction card originated interchange messaging. It is now possible create ISO-8583 messages from a designated RPC entity (included in the SDK project)
A new SDK Project wizard has been added for ISO 8583 projects
A default ISO 8583 message model has been added to the relevant SDK project template
ISO 8583 messages can now be sent and received in Runtime
Improvements
JUnits are no longer generated for API project RPC entity parsers
Core version upgraded to 4.6.54
MQ Consumers
COBOL and PCML files can now be parsed for MQ Consumers
Users can now close MQ Consumers with greater control
Vertx -
OData performance has been improved following the switch to Vertx-based clients
REST RPC performance has been improved following the switch to Vertx-based clients
Fixes
T24 projects now handle different application versions correctly
March 7, 2021 (v4.6.11)
Improvements
IDE Core was upgraded to v4.6.46
Temenos (T24) Improvements
Parts with single fields are no longer generated
During runtime, if a user overrides the Temenos transaction info, it is not overridden with the Action properties
User and Password are now retrieved from the Application yaml
The Internal Debug feature was added to VSAM, allowing the buffer (to/from the mainframe) to be read, similar to CICS functionality
Kafka Consumer performance was improved by registering it as a vertical
The tn5250j screens connector was upgraded to the latest core version
A Kafka flow Spring Boot auto configuration module was added
Upgrades 3rd parties
kotlin 1.4.20 → 1.4.21
kotlin-coroutines 1.4.1 → 1.4.2
go-offline-maven-plugin 1.2.5 → 1.2.8
ktlint 0.39.0 → 0.40.0
kaml 0.26.0 → 0.27.0
kotlin-logging 1.12.0 → 2.0.4
vertx 4.0.0 → 4.0.2
spring cloud 2020.0.0-M4 → 2020.0.1
spring-security-oauth2-autoconfigure 2.3.4.RELEASE → 2.4.0
swagger-parser 1.0.52 → 1.0.54
swagger-parser-v3 2.0.23 → 2.0.24
swagger-ui 3.40.0 → 3.43.0
springdoc 1.5.3 → 1.5.4
openapi4j 1.0.4 → 1.0.5
odata-client-core 4.7.1 → 4.8.0
grpc 1.33.1 → 1.35.0
grpc-spring-boot-starter 4.2.2 → 4.4.3
protobuf-java 3.13.0 → 3.14.0
jprotobuf 2.4.4 → 2.4.6
protoc 3.13.0 → 3.14.0
cxf-spring-boot-starter-jaxws 3.4.1 → 3.4.2
guava 30.0 → 30.1
testcontainers 1.15.1 → 1.15.2
aws-sdk-v1 1.11.898 → 1.11.954
aws-sdk-v2 2.15.26 → 2.15.81
Removed:
spring-data-hazelcast
JCL JUnit tests were aligned to work with new users and custom JCLs
SSL parameters can now be enabled in the SDK YAML to secure the connection to the legacy
Fixes
If the contract defines the first returned status without any model, a controller is generated with an empty response
An unnecessary import to the entity part `import org.openlegacy.core.xml.XmlConstants` was removed
The Emulation service sign in was fixed to support older passwords
February 21, 2021 (v4.6.10)
Improvements
When parsing Contract-First, duplicate structures are no longer created for each method, thus creating fewer classes than before
Fixes
New projects are now created properly
Contract First now generates names that are in the correct length for Eclipse IDE
February 9, 2021 (v4.6.9)
Improvements
The core version was upgraded from 4.6.29 to 4.6.31
Contract generation now supports parsing ‘oneOf’ and then flattening the structure using JsonUnwrapped
Generating a REST SDK now supports parsing ‘oneOf’/'allOf' keywords in a Swagger specification
VSAM default entities were updated to comply with the V4 adapter
The IDE Flow Engine now supports Type Conversions automatically, according to the model ref
Support was added for the MQCIH header, to allow MQ-CICS communication
Support was added for the MQIIH header, to allow MQ-CICS communication
Support was added for the UserIdentifier header to allow MQ0CICS communication
SOAP Connector HTTP requests can now be customized before they are sent
The IMS Connector can now automatically identify the payload offset
Fixes
Adapter Errors can no longer get converted to gibberish text when using code pages other than CP037
Service generation now uses the correct business entity name
Arrays are now generated correctly when generating REST SDKs from certain Swagger specifications
SAP projects can now be created in the IDE correctly on Macs
REST RPC entities with a list-type field are now generated correctly from certain Swagger specifications
Error dialog is not longer displayed when generating APIs from certain Swagger specifications
IDE now displays option to “Prepare for OpenShift Deployment”
Support added for Rest HttpRequestCustomizer to allow asynchronous responses
User and Password properties for CICS were removed from the root level
Support added to avoid reprocessing an event if the same message is received later on a different thread (asynchronous messages)
Kafka ,MQ and File consumer endpoints no longer run as web services
MF Screen projects now generate correctly using TerminalPoolAction
Known Issues
In certain MF CICS TS SDK projects, the Application.yml file is being generated with errors. This will be corrected in the next version
January 24, 2021 (v4.6.8)
New Features
We can now calculate the buffer length and automatically set it in a specific field if the application logic passes the expected payload length to the MF
Improvements
The Queue Topic input field is displayed empty, to prevent errors
The VSAM Connector was updated to comply with the new VSAM V4 adapter function. The connector still supports V3 VSAM adapter, as well
Fixes
Swagger parser bug fixes for objects of type:array
Swagger parser now supports string formatting
JsonProperty Annotation is now generated properly when a Swagger specification is imported during the Contract First API Generation
January 11, 2021 (v4.6.7)
New Features
New Mainframe JCL Connector - Can pass parameters and execute Mainframe Jobs and return their results VIA FTP. This allows searches on VSAM, GDG and other files. As these jobs may retrieve results sets of different types , each type model can be retrieved by parsing its copybook representation
Improvements
Upgrades
Core version was upgraded to v4.6.20 to support Temenos fixes
Springboot was upgraded to v2.4.0
The following 3rd Party components were upgraded:
kaml 0.25.0 -> 0.26.0
spring cloud Hoxton.SR8 -> Hoxton.SR9
swagger-parser 1.0.51 -> 1.0.52
swagger-parser-v3 2.0.22 -> 2.0.23
springdoc 1.4.6 -> 1.4.8
openapi4j 1.0.3 -> 1.0.4
bouncycastle 1.66 -> 1.67
commons-net 3.7.1 -> 3.7.2
io.grpc 1.32.1 -> 1.33.1
grpc-spring-boot-starter 4.0.0 -> 4.2.2
protoc-gen-grpc-java 1.32.1 -> 1.33.1
cxf-spring-boot-starter-jaxws 3.4.0 -> 3.4.1
powermock 2.0.7 -> 2.0.9
guava 29.0-jre -> 30.0-jre
google-compile-testing 0.18 -> 0.19
testcontainers 1.15.0-rc2 -> 1.15.0
sqs-sdk-v2 2.14.16 -> 2.15.26
sqs-sdk-v1 1.11.860 -> 1.11.898
Single lists can be retrieved, even if the list is split into multiple chunks
BRM Connector now allows using previously established connections, rather than requiring a new connection for each request
Field Validations:
All required fields are now validated for populated values before the request is sent
String request values are now validated according to the RPCField annotation’s regularExpression property before being sent to the host
Numeric request values are now validated according to the Min Max annotation, before being sent to the host
Fixes
Concurrent connections are now supported in ZVSE
Service Helper classes are now created correctly when parsing a
yaml
file in the generation of a Contract First API projectThe io.ol.provider.ctg.CtgConstants class is now defined correctly
Kafka Consumer dead letter queue functions properly
Angular was upgraded to v1.0.2 and now parses curly brackets in Screen projects correctly
The RPCDateField pattern was fixed to recognize months correctly
Services generated from Business entities in Kafka Consumer are now generated with the correct field name that matches the Business Entity name
Internal properties no longer leak to the resulting XML after adding the Property annotation to the date field and executing the API
Binder now accepts empty lists as input without throwing ‘Source must not be Null’ exception
December 29, 2020 (v4.6.6)
New Features
The option to have the IBM IMS connector work in TCP mode is now the default when creating new IMS SDK project
Improvements
Upgrades
The SAP jco connector was upgraded to v3.1.3
The Eclipse platform was upgraded to 2020-12 (M2)
Reliability - The exceptions to be thrown for Connectivity Errors were defined for MQ, MSSQL , AS/400 and DB2
Kafka
Error handling strategies were defined for Kafka endpoint API projects
The default number of producers for a Kafka SDK has been set to 1. This improves performance. Additional instances can be added, if necessary
Performance of the Kafka Producer was improved by initializing the bean in the Start function
File API Project
CSV files can now be parsed as business entities in File API projects
XSD files can now be parsed as business entities in File API projects
Graphtalk Performance was improved by switching to Vertex-based clients
Fixes
Mainframe
All editable MF screens are now available for API projects
All service helpers are now available for Kafka API projects
The Sybase fetcher date pattern has been corrected
The validation annotation generated for Float fields has been corrected
RPC fields are now generated from COBOL copybooks with the correct name
Entity helpers are now generated with the correct setters for number fields after generating API from swagger specification
Known Issues
When fetching stored procedures from MSSQL, entity date fields are generated with an incorrect date format (“mm” instead of “MM” for months)
December 14, 2020 (v4.6.5)
New Features
The IMS connector has been modified to work in TCP mode out of the box. This allows customers to modify the IMS header to their requirements through the YAML file. This has been the common scenario for most of our IMS customers. The previous behavior will be supported for the near future, but eventually, it will be deprecated
Sybase temp tables are now supported in both Run time and Design time, to allow running a script before a stored procedure that will provide input parameters for the stored procedure
Improvements
SDK Projects can now be defined to support BIDI text on the project level . Specific fields can be defined to override project level behavior. This improves Runtime handling of BIDI text to/from the legacy system
Regex validations have been removed for all field types except String
When generating an API from an SDK Kafka endpoint project, the user can configure the base path and the filename pattern for the file trigger
The screen entity name has been added to the Screens debugging messages to allow users to easily identify which screen the session in on
Fixes
Oracle Stored Procedures - Fetch systimestamp as vCreditDateTime
December 1, 2020 (v4.6.4)
New Features
New CICS Adapter (v4)
Starting from V4, the connector sends an HTTP request consisting of two parts, a header and a body.The header contains metadata. It consists of 408 bytes of information regarding the program to trigger, the debug level, etc. It also contains information useful to Analyzer programs, for customers implementing Analyzers in addition to the Adapter. Analyzer programs allow the programmatical setting of the UseriD and TranID, and validity tests on the incoming request.
Unlike V3, the header information is passed in EBCDIC characters rather than binary fields. In addition, the header is passed using an HTTP header (OLHEADER).The HTTP body contains the request Payload (the actual information we want to pass to the program we LINK to, either passed as COMMAREA or as a CICS Channel/Container).
New adapter capabilities:
Out of the box capability to work with either containers or COMMAREA
Support Customer Analyzers
Request Body only contains the payload rather than configuration + payload
KAFKA Producer SDK
Users can now send messages to a Kafka topic. Generating entities will be done by parsing Json files that represent the structure of the message that will be sent to Kafka. This connector will not wait for a response and will return upon successfully pushing a message to the Kafka topic.
Improvements
Improved Handling of Entities
Entities can now be created from specifically formatted CSV files.
Get designated Excel file and instructions here: https://openlegacy.atlassian.net/wiki/spaces/OV45/pages/959545449
Fixes
As of this version, the versioning of the runtime components and the IDE have been decoupled. Runtime components will evolve with their own versioning using semver (MAJOR.MINOR.PATCH). The IDE will continue to evolve in the same bi-weekly release schedule, also using semver.
Oracle Stored Procedures - CLOB fields were being generated as string fields with VARCHAR db type.
November 18, 2020 (v4.6.3)
New Features
Kafka Support
New API project Kafka endpoint - Upon setting an API project service type to Kafka, the user will be able to consume messages from a Kafka topic as input , execute an SDK method and then, if required, produce the results to a different Kafka topic. Upon failure, users can choose an error handling strategy that will either skip the failed message, reprocess it or send it to a designated Kafka topic for failed messages
IBM MQ Support
New API project IBM MQ endpoint - Upon setting an API project service type to IBM MQ, the user will be able to consume messages from a MQ Input queue , execute an SDK method and then, if required, produce the results to an MQ output queue
Improvements
Added parameters to Temenos Core banking application fetcher required for successful execution (version, function, gts, and company). These parameters will no longer need to beset in code
CSV parser format has changed to include an additional field “Original Name” that conveys the name of the field on the backend side
Fixes
Code generation now compiles correctly with $ value in itemNum
CLOB fields are now handled correctly in Stored Procedure connector
SOAP requests now support WSS passwords correctly
Flat fields in Contract First models are now validated correctly in Design Time model generation
Design Time API model now supports long values, in line with the @Value annotation
November 4, 2020 (v4.6.2)
New Features
Fields can now be defined as CHAR_NO_SISO. This allows Mainframe DBCS customers to introduce their own logic without interference from injected SOSI
New Screens Connection Pool use behind-the-scenes implementation to provide terminal session pooling, rather than needing specifically generated code
Improvements
The following 3rd party application versions were updated:
Kotlin 1.0.0-RC -> 1.0.0
kaml 0.19.0 → 0.24.0
spring-security-oauth2-autoconfigure 2.3.3 → 2.3.4
kotlin-logging 1.11.3 → 1.12.0
swagger-parser-v3 2.0.21 → 2.0.22
commons-net 3.7 → 3.7.1
frontend-maven-plugin 1.10.0 ->1.10.3
grpc-spring-boot-starter 3.5.7 → 4.0.0
vertx 3.9.3 → 3.9.4
The REST Provider can now be configured to support trusted certificates
The File connector has been refactored to comply with the new infrastructure
Sybase Stored Procedure Improvements
Some Stored Procedures can now be parsed automatically to create an entity
Stored Procedures can now be fetched from Sybase DB
IBM MQ Improvements
IBM MQ Projects can now be set to send only requests without waiting for a response in Design Time and Run Time
Dynamic Parameters Support
Dynamic parameters can now be used in defining a new SDK project. This will allow assigning the appropriate values to the parameters, per SDK project needs
Dynamic parameters can now be used in defining API projects. This will allow assigning the appropriate values to the parameters, per API project needs
The PLI parser now recognizes a prefix used in a field name as a differentiator between fields whose names are otherwise identical (e.g.,
@YOBI CHAR(32)
and#YOBI CHAR(34)
)The Temenos Design Time parser has been updated to work with the latest provider. The provider itself was updated to support the new RPC infrastructure
The OpenLegacy Actuator was refactored to support Annotation Processing. This allows Audit data to be collected during compilation
Fixes
Timeouts over 30 seconds are now accepted
SLF4J errors are no longer thrown during compilation
APIs can now be generated from Swagger specifications that use mixed character codes (Japanese)
October 21, 2020 (v4.6.1)
As of this version, the OpenLegacy Microservice Management Console (MMC) and its related runtime options, have been sunset.
New Features
DB2 on z/OS - We can now fetch and execute stored procedures on z/OS. Users will provide required DB2 jars when setting up the SDK project
Improvements
The CICS TS connector now supports multiple output structures for different Status codes. This allows defining default message success values per value returned in the response
The Mainframe CICS TS connector performance was significantly improved after switching to Vertx-based clients
The Dynamic field function was improved by allowing the implementation of only specifically defined functions using @JVMDefault
Maven Clean and Update are now automatically run after an entity field is updated in the entity editor. This will prevent errors by updating the EntityHelper in sync with the entity edit
The AS/400 RPC Connector now supports the *.SRVPGM extension to support calls to Service Programs
The CICS connector can now load certificates from an external file
The following 3rd party applications were updated
SpringBoot to v2.3.4
Vert.x to v3.9.3
Fixes
Payload Length property in the CICS TS Connector is now recognized. This allows padding the buffer
ContractFirst now generated correctly, without NullPointException error
Setting sapjco in SAP projects now persists after restart
API Projects can now be generated correctly from template zip files
Explore AS/400 Sources now functions correctly when creating AS/400 PCML projects
DB Fetcher used in Stored Procedures now displays correct text
September 21, 2020 (v4.6.0)
Important Note:
As of this version JDK 11 is the minimum version required to run OpenLegacy
New Features
BRM Connector - A new connector was added for Oracle Billing and Revenue Management (BRM) , that supports Flists as Entities
CSV Parser - Entities can now be generated from CSV when source files (Cobol, PCML etc) are not available. CSV can be generated from an Excel file that can be found in the following link:
https://openlegacy.atlassian.net/wiki/spaces/OV45/pages/959545449/CSV%2BParser%2B-%2BGenerating%2BCSV%2Bfrom%2BDesignated%2BExcel%2BFileAll API projects now contain a Docker file to enable easier deployment.
Openshift deployment has been simplified. The user can right click an API project and select the “Prepare for OpenShift Deployment” option. This will add additional Jenkins scripts and an Openshift configuration file.
Improvements
String Field - Users can now define Left/Right Padding for string fields and determine the padding character
MQ Connector - AS/400 legacy types are now supported in IBM MQ SDK, In addition , the ability to browse messages by their contained value has been added for use when a correlation ID has not been used
Stored Procedure Mapper yml - Allows users to modify the entity action path and DB types without requiring an entity class update. This is useful when an entity was generated for a test environment, but is be used in production
As part of an infrastructure change , we’ve replaced our dependency on SpringFox with SpringDoc ,this allows our Swagger parser to support OpenAPI 3. Swagger 2 is no longer supported
Dynamic fields were redesigned to achieve even more flexibility
Fixes
OpenLegacy’s Swagger UI displays Japanese characters properly
When generating CICS Copybooks, IDE sometimes created a cyclic reference that was not identified as such
Breaking Changes
Due to lack of use , the ability to configure runtime caches has been removed. We’ll consider this feature again if there will be a demand
Known Issues
Internal-As-External functionality currently not working
PLI parser - parses Pointers as strings
Trying to Explore AS/400 sources encounters a connection error
Problems setting sapjco Jar in SAP Project - Jar file is not registered