Chapter 5. Cobol2SpringMVC

5.1. BLU AGE II 5.0 COBOL2SpringMVC Release Note

Global Notes:

  • 5.X products are parts of the “Blu Age II – Legacy to cloud” product family, built on Kepler (Eclipse 4.3);

  • Product documentation is available at http://wikimod.bluage.com/mediawiki/index.php/Main_Page;

    • Starting with version 5.0, a new license management has been introduced, requiring the use of a new License Server (shipped separately – see corresponding documentation for details);

    • 5.X versions rely on the launch configurations mechanism introduced with the 4.X product series in replacement of the previous workflow mechanism. Migrating from the 3.X workflow to the 5.X launch configuration is described in a dedicated guide.

5.1.1. COBOL to SpringMVC

5.1.1.1. Improvements

5.1.1.1.1. WSDL to UML Wizard

Various improvements were performed on the WSDL to UML wizard:

  • Better fields naming.

  • minOccurs/maxOccurs support.

5.1.1.1.2. POST Methods in REST Mode

CXF/JAX-RS-like annotations were added to support this scenario:

As a complement, a tagged value was added to the RestOperation stereotype to support @Consumes (similarly to @Produces).

5.1.1.1.3. COBOL non-Unique Paragraphs Names

COBOL paragraph with the same name, but in different sections, as is legal in COBOL, are now properly parsed.

5.2. BLU AGE II 5.1.0 COBOL2SpringMVC Release Note

Detailed content of BLU AGE COBOL2SpringMVC release 5.1.0 from BLU AGE 5.0.0.

Global Notes:

  • 5.X products are parts of the “Blu Age II – Legacy to cloud” product family;

  • Product documentation is available at: http://wikimod.bluage.com/mediawiki/index.php/Main_Page

  • Starting with version 5.0, a new license management has been introduced, requiring the use of a new License Server (shipped separately – see corresponding documentation for details);

  • 5.X versions rely on the launch configurations mechanism introduced with the 4.X product series in replacement of the previous workflow mechanism. Migrating from the 3.X workflow to the 5.X launch configuration is described in a dedicated guide.

5.2.1. COBOL

5.2.1.1. Improvements

  • A “Refresh” button was added in the Statistics View toolbar to update its content on demand.

  • Better UNSTRING statement parsing.

  • Better EXEC SQL statement parsing.

  • Homonym paragraphs in distinct sections are now supported.

  • Mapping to “Bean” or “ValueObject” elements is now possible.

  • More PIC formats support (now case insensitive).

5.2.1.2. Fixes

  • “Skipped” annotations could sometimes halt transmodeling.

  • Modernization of entities containing a THU range works properly.

  • “Trying to set value from another repository” does not happen anymore.

  • Negative values are now supported during level 88 modernization.

5.2.1.3. Documentation

The following annotations interact with transmodeling functionalities:

  • Skipped: annotated lines will not be processed by transmodeling.

  • Modernized as:

    • This annotation is added by transmodeling tooling (for this purpose, ensure that the “Create Service Call Annotation” option is checked in transmodeling preferences).

    • The “Go to UML” option of the contextual menu of those annotations enables navigation to the associated UML element.

  • Other annotations have a documentary / organizational role.

5.2.2. Hibernate/Spring/Spring MVC

5.2.2.1. Improvements

  • DAOFinder classes were renamed as DAOService.

  • Some compatibility improvements when editing SpringMVC mockups with G-Marker (better meta support, multiple tr in thead/tfoot support).

  • A superfluous “getInstanceFromSession” call was removed from pre-controllers generated code.

5.2.2.2. Fixes

  • ProcessOperation elements are now properly regenerated during partial generation.

  • “target” pins in activity diagrams do not halt generation anymore.

5.3. BLU AGE II 5.2.0 Cobol2SpringMVC JPA Release Note

Global Notes:

  • 5.X products are parts of the “Blu Age II – Legacy to cloud” product family, built on Kepler (Eclipse 4.3);

  • Product documentation is available at http://wikimod.bluage.com/mediawiki/index.php/Main_Page;

    • Starting with version 5.0, a new license management has been introduced, requiring the use of a new License Server (shipped separately – see corresponding documentation for details);

    • 5.X versions rely on the launch configurations mechanism introduced with the 4.X product series in replacement of the previous workflow mechanism. Migrating from the 3.X workflow to the 5.X launch configuration is described in a dedicated guide.

5.3.1. COBOL

5.3.1.1. Fixes

5.3.1.1.1. Parsing
  • Rare low-level errors could halt the parsing of COBOL programs (Eclipse message “An internal error occurred during: “Updating project”). Now, should those happen, they will be displayed in the “Problems” view, under the “Unexpected Parsing Error” type.

  • Parsing of the NOT INVALID KEY construct is more robust.

  • SOURCE-COMPUTER / OBJECT-COMPUTER entries in the CONFIGURATION section and SYMBOLIC CHARACTERS in the SPECIAL-NAMES section do not halt parsing anymore.

  • Parentheses in the replacement source of COPY REPLACING are supported.

  • SYSLIB” and “FOR RESPONSE” are now accepted in “CALL” verbs.

  • “#” is now accepted in PIC formats.

  • More PIC variants are supported (order of specifications is more flexible).

  • More STRING/UNSTRING variants supported (DELIMITED is now optional).

  • Parsing of intrinsic FUNCTION expression has been improved.

  • The DO PERFORM variant is now supported.

5.3.1.1.2. Annotation Editor
  • File search results in COBOL programs are not offset anymore by copybooks inclusion.

5.3.1.1.3. Statistics Reporting
  • An “ALL” category was added in statistics export and combo box.

  • Order of categories is preserved in statistics export.

  • The Category preference is now synchronized with the editor.

  • The Statistics view does not cause slowdowns anymore.

  • Included copybooks are now properly taken into account in lines count.

5.3.1.1.4. Transmodeling
  • The GOTODEPENDING ON verb is now transmodeled as a “switch” construct.

  • Empty sections do not halt transmodeling anymore.

  • Signed numeric constants will not cause the generation of invalid Central Buffer Node names anymore.

5.3.1.2. Improvements

5.3.1.2.1. Annotation Editor
  • Linking (Ctrl+Click) to FILE DESCRIPTION from file manipulation verbs is now available.

  • Linking to programs will now use in priority the PROGRAM-ID to identify the target program, then fallback to the file name.

  • Common COPYBOOKs are now included in programs (SQL ORACA, SQLSA and SQLCA).

  • Any textual file can now be annotated. For this purpose, use Right click > Open With > Annotation Text Editor. Statistics for those annotations can be generated from the Statistics View.

5.3.1.2.2. Transmodeling
  • Transmodeling of intrinsic FUNCTION expression has been improved (parameters are now properly extracted).

5.3.1.2.3. Mockup Generation
  • Generation of BLUAGE-compatible HTML mockups from BMS maps has been improved:

    • BMS maps not using the standard lines continuation mechanism (a character on column 72) are now properly parsed,

    • more attribute formats are supported,

    • the idiom of starting a field on column 80 is now properly interpreted.

5.3.2. SpringMVC JPA

5.3.2.1. Fixes

5.3.2.1.1. Wizards
  • The Business Object creation wizard is now robust to the existence of an activity diagram homonym with the entities folder.

5.3.2.2. Improvements

5.3.2.2.1. Launch Configuration
  • For easier configuration, BSP properties have been reorganized in a “standard” and “advanced” scope.

5.4. BLU AGE II 5.2.2 Cobol2SpringMVC Hibernate Release Note

Global Notes:

  • 5.X products are parts of the “Blu Age II – Legacy to cloud” product family, built on Kepler (Eclipse 4.3) ;

  • Product documentation is available at http://wikimod.bluage.com/mediawiki/index.php/Main_Page ;

    • Starting with version 5.0, a new license management has been introduced, requiring the use of a new Licence Server (shipped separately – see corresponding documentation for details);

    • 5.X versions rely on the launch configuration mechanism introduced with the 4.X product series in replacement of the previous workflow mechanism. Migrating from the 3.X workflow to the 5.X launch configuration is described in a dedicated guide.

5.4.1. COBOL

5.4.1.1. Fixes

5.4.1.1.1. Transmodeling
  • The SET TO XXX TRUE transmodeling has been restored.

  • Opaque nodes could be generated twice when mappings were missing. It does not happen anymore.

  • MOVE SPACES towards level 88 fields do not generate flush services any longer, but elementary assignments.

5.4.1.2. Improvements

5.4.1.2.1. Creation of COBOL Reverse Project
  • The renaming option for inputs proposed by the COBOL reverse projects creation wizard now searches for JCL scripts. When such a file is identified, it is renamed with the « .jcl » extension (and no longer « .cpy »).

  • Duration of initial built of COBOL reverse projects has been reduced.

5.4.1.2.2. Syntactic Analysis
  • ON [NOT] OVERFLOW construct is now recognized.

  • TIMEOUT is now valid as an identifier.

  • Handling of the COPY … REPLACING ==XXX== … syntax has been generalized.

5.4.1.2.3. Annotation Editor
  • When a COBOL paragraph and section have the same name and a PERFORM or a GO TO targets this name, Ctrl + Click from these verbs will reach the paragraph instead of the first element found.

  • The INDEXED BY construct does not cause a warning any longer, and can now be reached by Ctrl + Click.

5.4.1.2.4. Transmodeling
  • Considering the following COBOL code:

    IF <condition>

    NEXT SENTENCE

    ELSE

    <Statements>

Its transmodeling now generates a test with a reversal of the condition. There is therefore no more opaque generated for the NEXT SENTENCE.

  • The STRING … INTO verb is now supported for DELIMITED BY SIZE and DELIMITED BY <literal> operators, with reading and writing into elementary fields.

  • The INITIALIZE verb is supported for the initialization of the elementary fields.

  • It is now possible to modernize (using the wizard Transient Object Modernization) and transmodel level 01 fields directly owning levels 88.

  • A caching mechanism is now provided. It can significantly improve the initialization time of the transmodeling wizard starting from its second launch. To activate it, tick the following checkbox in the preferences: « Blu Age Blu Age Reverse Model Transformation Generic Model caching ».

  • A mechanism allowing to choose the type of activity diagrams generated by the COBOL transmodeling has been set up.

    • By default, the previous behaviour has been preserved (generation of the <<Process>> activity and the associated operation).

    • When checking « Blu Age Blu Age Reverse Transmodeling Choose Activity Type on generate transmodeling wizard », you can select the type of activity to generate by default (<<Process>> or <<ProcessOperation>>) :

    • Ticking this option triggers the display of an additional column « Generate Process Operation » in the transmodeling wizard :

    • This column is editable, therefore the type of activity to generate can be chosen for each line when necessary :

    • A contextual menu on the column title allows to change the status of all entries of this column at once:

5.4.2. SpringMVC Hibernate

5.4.2.1. Fixes

5.4.2.1.1. Wizards
  • The Business Object creation wizard is now robust to the existence of an activity diagram homonym with the entities folder.

5.4.2.2. Improvements

5.4.2.2.1. Launch Configuration
  • For easier configuration, BSP properties have been reorganized in a “standard” and “advanced” scope.

5.4.2.2.2. UML Profiles
  • The BigDecimalUtils#subtract utility has been added to the UML profile. It is still possible to generate the « substract » method when setting the option of « donotGenerateDeprecatedOperations » workflow to false.

5.5. BLU AGE II 5.2.4 Cobol2SpringMVC Hibernate Release Note

Global Notes:

  • 5.X products are parts of the “Blu Age II – Legacy to cloud” products family, built on Kepler (Eclipse 4.3) ;

  • Product documentation is available at http://wikimod.bluage.com/mediawiki/index.php/Main_Page ;

    • Starting with version 5.0, a new licence management has been introduced, requiring the use of a new licence Server (shipped separately – see corresponding documentation for details);

    • 5.X versions rely on the launch configuration mechanism introduced with the 4.X product series in replacement of the previous workflow mechanism. Migrating from 3.X workflow to the launch configuration is described in a dedicated guide.

5.5.1. COBOL

5.5.1.1. Fixes

5.5.1.1.1. Syntactic Analysis
  • CONVERSION is now a valid PERFORM target.

  • More flexibility in the possible order of PIC, USAGE, and BINARY.

5.5.2. SpringMVC Hibernate

5.5.2.1. Improvements

5.5.2.1.1. HTML Mockups (Generation)

A CICS mapsets modernization wizard towards a Blu Age parameterized HTML mockup and its associated « screen bean » is available.

This wizard can be launched using a right-click on the CICS mapset (of .bms extension), «  Modernize BMS Map » action.

It checks that a UML model is open, then it searches for a copybook (of .cpy extension) with the same name as the mapset. It parses it and tries to detect if it is a SDF map (IBM "screenpainter" that generates mapping comments between screen fields and copybook). This information feeds the first page of the wizard and can be modified when necessary:

If the copybook is valid, the « Next » button is enabled and leads to the second screen of the wizard:

The list of the CICS maps in this mapset (there may be several ones) is to the left (« BMS Fields »). The root objects are the maps and their children, the CICS fields to be mapped. In this example, they are SDF maps, therefore to the left the “long” name with the “legacy” name in brackets are displayed.

To the right (« Screen Entity ») is a component equivalent to the « Legacy Objects Modernization » tool (usual actions of the context menu are available here if needed). The wizard pre-feeds this part with entities issued from the merging of segments and fields « xxxI » and « xxxO ». It also uses names to match each BMS field with the corresponding TOM one.

Once the « Finish » button is clicked, two types of entities are created.

On one hand HTML mockups: they are identical to those generated by the « Generate BLU AGE Mockup » action, but also contain BLU AGE tags mapping to the UML (see on the left):

In the other hand the associated UML entities:

They include mappings for both « xxxI » and « xxxO » legacy fields so that there is an access to the corresponding merged UML field in both cases during transmodeling:

5.5.2.1.2. HTML Mockups (Editing)
  • Gmarker is now the default editor for .htmlgm and .html files containing at least one Blu Age tag.

5.5.2.1.3. Modeling
  • There is no need to add a « hidden » field when a BO instance is only used to feed a table.

  • The correct syntax of the bluage:RequiredFieldValidator tag is now as follows (note that the « id » field associated with the validator must now be unique):

    <bluage:RequiredFieldValidator errormessage="required Last Name" forid="CUST_LNAME1" id="req_CUST_LNAME" />

  • In screen diagrams, it is now possible to use as the target of a navigation flow a Call Behavior Action UML node named after the textual path of the destination screen:

5.5.2.1.4. Code Generation
  • The quality of the generated code has been improved by taking into consideration the following Sonar warnings:

    • Redundant non-null check.

    • Inefficient traversal of map.

    • Passing a potentially null parameter when a non-null one is compulsory.

    • Update of a static class variable from a non-static method.

  • Controllers, Forms and Validators class names must be capitalized (independently of associated model elements names).

5.6. BLU AGE II 5.2.6 Cobol2SpringMVC Hibernate Release Note

Global Notes:

  • 5.X products are parts of the “Blu Age II – Legacy to cloud” products family, built on Kepler (Eclipse 4.3) ;

  • Product documentation is available at http://wikimod.bluage.com/mediawiki/index.php/Main_Page ;

    • Starting with version 5.0, a new licence management has been introduced, requiring the use of a new licence Server (shipped separately – see corresponding documentation for details);

    • 5.X versions rely on the launch configuration mechanism introduced with the 4.X product series in replacement of the previous workflow mechanism. Migrating from 3.X workflow to the launch configuration is described in a dedicated guide.

5.6.1. COBOL

5.6.1.1. Fixes

5.6.1.1.1. UML Generation
  • When using model caching to improve performances, annotations modifications are now properly taken into account by subsequent transmodelings.

5.6.1.2. Improvements

5.6.1.2.1. Syntactic Analysis
  • The following constructs of the COBOL Unisys variant are now parsed:

    • SECTION and PARAGRAPH IDs can be an INT

    • Declarative Section => USE AS GLOBAL PROCEDURE : AS is optional

    • USING clause added to Datasets (Record Database)

    • For segment definition:

      • "FROM DICTIONARY SAME RECORD AREA" ([KEY] IS [VALUE])

      • WITH keyword added

      • REAL keyword added

      • TYPE IS keyword added

      • @EEEE@ hexadecimal values are accepted

    • LOCAL-STORAGE section added

    • PROGRAM-LIBRARY section added

    • VA accepted as an alias for VALUE

    • OC accepted as an alias for OCCURS

    • REF accepted as an alias for REFERENCE

    • I-O accepted as an alias for INPUT-OUTPUT of SECTION

    • WITH USING and EXTERNAL keywords added to USE clause on section and paragraph

    • Accepted as ID and keywords:

      • MYSELF

      • AREAS and PROTECTED on FileDescription

    • LOCK statement :

      • Added keywords: STRUCTURE, FIRST, LAST, NEXT ...

      • Added AT clause

    • FIND statement:

      • Added keyword KEY OF

      • Added keyword de fin END-FIND

    • START and STOP statement on ID or STRING

    • CREATE statement:

      • Added ON EXCEPTION clause

      • Added CREATE XXX(INT) construct

      • Added keyword END-CREATE

    • CLOSE statement:

      • Added ON EXCEPTION clause

      • Added WITH keyword and CRUNCH option

      • Added keyword END-CLOSE

    • OPEN statement:

      • Added ON EXCEPTION clause

    • END-TRANSACTION statement:

      • Added ON EXCEPTION clause

    • SELECT statement:

      • Added keywords SORT, KEY

      • Added options: ASSIGN TO SORT DISK | PORT | PRINTER | READER | REMOTE | TAPE | VIRTUAL

    • STRING statement: Added keyword FOR

    • SORT statement:

      • Added clauses MEMORY SIZE IS and DISK SIZE IS

      • Added optional keywords on clauses GIVING SAVE | LOCK | RELEASE | NO REWIND | CRUNCH

    • DELETE statement:

      • Added optional keywords OF and NEXT

    • READ and WRITE statements:

      • Added option FORM

    • Added statements :

      • ENTER

      • FREE

      • RECREATE

      • CHANGE

      • ENABLE

      • DISABLE

      • WAIT

      • ATTACH

      • DETACH

      • SEEK

    • Added literal ATTRIBUTE

    • Added options to clause RECEIVED BY

    • Added field in clause COMMUNICATION AREA

    • Added TRUE and FALSE constants

    • Added VALUE literal in expressions

    • Handling of NULL literal, including when IS operator is implicit

    • Added USE ON clause on a section

    • Support for the copybook inclusion by fragments syntax: COPY [NAME] FROM [INT] THRU [INT] REPLACE ...

5.6.2. SpringMVC Hibernate

5.6.2.1. Fixes

5.6.2.1.1. JNDI Configuration
  • A jndiResourceRef property was added to BSP com.netfective.bluage.spring.hibernate. The java:comp/env prefix in the JNDI Name (in persistence-infrastructure-config.xml file) is only required when this property is false.

5.6.2.2. Improvements

5.6.2.2.1. UML Modeling
  • Beans can now bear synthetic operations, stereotyped with <<formula>> or <<process>>.

5.6.2.2.2. Code Generation
  • Code quality was improved by taking into account the following SONAR warning:

    • BigDecimal.valueOf(double) should be preferred over BigDecimal(double).