What's new in the Migration Toolkit for Application Binaries

23.0.0.5

Released December 2023

Java SE and Java/Jakarta EE Automated Fixes on the Command Line via Recipes

The Migration Toolkit for Application Binaries now supports automated source code fixes on the command line for moving to several Java versions. These include Java version 7,8,9, Jakarta EE 9 and Jakarta EE 10. See Detailed Migration Analysis Report for instructions on performing application analysis and reviewing the several available rules with automated fixes. The report also provides the Automated Fix Configuration section that contains the config of all supported recipes. These include over 40 recipes covering several versions of Java in addition to the many existing Liberty recipes (rewrite-liberty).

Support

Bug and field support fixes were added to this release.



23.0.0.3

Released September 2023

WebSphere traditional to Liberty Automated Fixes on the Command Line via Recipes

The Migration Toolkit for Application Binaries now supports automated source code fixes on the command line using recipes. The OpenRewrite open source project rewrite-liberty contains recipes that automate the source code changes and are run through Maven and Gradle build invocation when moving from WebSphere traditional to Liberty. Applications flagged with WebSphere to Liberty rules provide a new section in the produced HTML and JSON report for automating certain source code changes. The generated automated fix configuration can be run through Maven or Gradle build invocations, depending on your preferred platform.

DataStoreHelper Rule Additions

New rules were added to flag usage of DataStoreHelper APIs.

Additional Configuration Migration to Liberty

Support for migrating additional WebSphere Application Server Configuration for DataStoreHelper, XML bindings and JDBC Exception Mapping.

Support

Bug and field support fixes were added to this release.



23.0.0.2

Released June 2023

Support

Bug and field support fixes were added to this release.



23.0.0.1

Released March 2023

New Jakarta EE 10 Migration

The Migration Toolkit for Application Binaries now supports migrating from any previously supported Java/Jakarta EE to Jakarta EE 10. Liberty supports the usage of Jakarta EE 10 in beta releases. The Jakarta EE 10 rules flag specific references to identified issues in migrating to Jakarta EE 10 and provide detailed help for those issues. You can take advantage of these rules by specifying the --targetJakartaEE=ee10 option.

User-Defined Rules: Boolean Operators

Boolean operators <and> and <or> have been added to allow for combining rules. See User-Defined Rules to learn more.

User-Defined Rules: Missing Root Nodes and Attributes

The detectElement rule now has the flagNoRootNode attribute which will flag files that do not have a root node. The detectAttribute rule now has the flagIfAttributeMissing attribute that will flag the specified tags if the specified attributeName is not found. See Detect Element (detectElement) and Detect Attribute (detectAttribute).

Support

Bug and field support fixes were added to this release.



22.0.0.7

Released December 2022

New Jakarta EE9 Migration

The Migration Toolkit for Application Binaries now supports migrating from any previously supported Java/Jakarta EE to a Jakarta EE9. Liberty supports the usage of Jakarta EE9. The Jakarta EE9 rules flag specific references to identified issues in migrating to Jakarta EE9 and provide detailed help on those issues. You can take advantage of these rules by specifying the --targetJakartaEE=ee9 option.

Support

Bug and field support fixes were added to this release.



22.0.0.6

Released September 2022

TA Data Collection Updates

The Migration Toolkit for Application Binaries can generate a data collection to be uploaded to IBM Cloud Transformation Advisor using the --ta option. The location of the generated archive for upload to Transformation Advisor is printed after running. TA data collection includes additional information on traditional WebSphere Application Server Network Deployment clusters detected during a scan.

The Migration Toolkit for Application Binaries has added parameters for controlling scans using the --ta option:
  • --stopOnMissingBinary - Specify to stop the data collection when an application binary cannot be found either in the configuration or in its expanded form.
  • --stopOnMissingSharedLibrary - Specify to stop the data collection when a shared library is not accessible from the scan location.
  • --excludeApplicationFile - Specify the path to the file containing the names of the applications to exclude from the scan.
For more details on --ta see Transformation Advisor Data Collection.

Additional Configuration Migration to Liberty

Support for migrating additional WebSphere Application Server configuration to Liberty:
  • configuration for session persistence to a database, including required datasource resource
  • transaction peer recovery, transaction service settings, including both file-based, database-based transaction logging.

JAX-RPC Detection Improvements

Modifications were made to reduce flagging of unused JAX-RPC artifacts.

Inventory Improvements

The Operational Considerations section of the Inventory report includes more information on session persistance, transaction recovery, and traditional WebSphere Application Server Network Deployment clusters.

Support

Bug and field support fixes were added to this release.



22.0.0.3

Released June 2022

TA Data Collection Mode

The Migration Toolkit for Application Binaries can generate a data collection to be uploaded to IBM Cloud Transformation Advisor using the --ta option. After uploading the data collection, you can view the results in Transformation Advisor, where you can gain application modernization insights including common code discovery, application migration complexities, and estimate development costs as well as produce migration artifacts for containerized environments. For more details see Transformation Advisor Data Collection.

Inventory Optimizations and Improvements

Inventory scans will now dive deeper into your application in order to better identify unused archives while also reducing the overall scan time. Run time is heavily dependent on the size of an archive, but some larger application scans have seen improvements upwards of 15%.

JAX-RPC Conversion Tool Pre-validation

Analysis and Technology scans have integrated the ability to validate whether an application can use the new JAX-RPC Conversion Tool for bytecode modification. With the release of IBM's new JAX-RPC Conversion Tool some JAX-RPC web services can be migrated to JAX-WS web services through an application archive modification process. The JAX-RPC rules and help were updated with more information about the usage of the tool.

FeatureList Jakarta 9 Support

FeatureList scans will now identify Javarta 9 dependencies and recommend the necessary features for them.

Support

Bug and field support fixes were added to this release.



22.0.0.2

Released May 2022

TA Data Collection Mode

The Migration Toolkit for Application Binaries can generate a data collection to be uploaded to IBM Cloud Transformation Advisor using the --ta option. After uploading the data collection, you can view the results in Transformation Advisor, where you can gain application modernization insights including common code discovery, application migration complexities, and estimate development costs as well as produce migration artifacts for containerized environments. For more details see Transformation Advisor Data Collection.

Support

Bug and field support fixes were added to this release.



21.0.0.4

Released December 2021

New Java SE 17 Migration

The --targetJava=java16 non-LTS (Long-Term-Support) option was deprecated and replaced with --targetJava=java17option. Setting --targetJava=java17 provides the same functionality as migrating to Java SE 16, but with extra rules pertaining to the updates made in Java SE 17. Java SE 17 is a Long Term Supported Java version.

Configuration with a properties file

The Migration Toolkit for Application Binaries can now be configured using a properties file. There is a scanner.properties file in the same directory as the binary scanner jar that can be used to configure your application scans.

User-defined rules update

The detectClass rule type now supports flagging on method visibility for implemented methods through the new accessFlag attribute on implementsMethod.

Support

Bug and field support fixes were added to this release.



21.0.0.3

Released September 2021

User-Defined Rules

The Migration Toolkit for Application Binaries now allows for user-defined analysis rules to detect scenarios specific to your application migration. The user-defined rules are written in XML files. The rule files are grouped together in an XML list file and then specified using the --userRuleLocation parameter.

The Migration Toolkit for Application Binaries allows for user-defined analysis rules to be the only rules run by forgoing any pre-written rules inside the tool. To do this use the --userRulesOnly parameter in the command. This parameter must be used with --userRuleLocation.

New Option for Generating Separate Reports

The Migration Toolkit for Application Binaries now supports the creation of all report files separately with a single command. To do this specify --all-separate-reports parameter. This parameter will generate Technology Evaluation, Detailed Migration Analysis, Inventory, and Configuration report files.

New Java SE 16 Deprecation Rules

To help users moving to the latest Java versions, we have added rules for new deprecations to our Java SE 16 migration scenario.

Support

Bug and field support fixes were added to this release.



21.0.0.2

Released June 2021

New Java SE 16 Migration

The --targetJava=java15 non-LTS (Long-Term-Support) option was deprecated and replaced with --targetJava=java16 non-LTS option. Setting --targeJava=java16 provides the same functionality as migrating to Java SE 15, but with extra rules pertaining to the updates made in Java SE 16. Java SE 16 is a non Long Term Supported Java version. To migrate to an LTS Java version, migrate to Java SE 11 using the --targetJava=java11 option.

TLS/SSL Configuration Migration to Liberty

Additional support added for security configuration migration. WebSphere traditional TLS/SSL configuration is now migrated to a Liberty server.xml. Additionally, referenced keystores and truststores are now copied to the output folder when --includeSensitiveData is specified.

Support

Bug and field support fixes were added to this release.



21.0.0.1

Released March 2021

New Java SE 15 Migration

The --targetJava=java14 non-LTS (Long-Term-Support) option was deprecated and replaced with --targetJava=java15 non-LTS option. Setting --targeJava=java15 provides the same functionality as migrating to Java SE 14, but with extra rules pertaining to the updates made in Java SE 15. Java SE 15 is a non Long Term Supported Java version. To migrate to an LTS Java version, migrate to Java SE 11 using the --targetJava=java11 option.

Application Security Configuration Migration Updates

Additional support added for security configuration migration. WebSphere traditional security role bindings, standalone and federated LDAP security configuration can be migrated using wsadmin scripts. Additionally, if an application was using LDAP security configuration defined in a security domain, that configuration is now migrated.

Added Open Liberty to the Technology Report

Open Liberty has been added to the Technology migration report.

Archive Checksum Algorithm Changed from MD5 to SHA256

All Java archive files now have an SHA256 checksum associated with them for help tracking duplicates within an application.

Support

Bug and field support fixes were added to this release.



20.0.0.4

Released December 2020

Application Security Configuration Migration Updates

Additional support added for security configuration migration. WebSphere traditional security role bindings, standalone and federated LDAP security configuration can be migrated to a Liberty server.xml. Additionally, any username configuration that is extracted into variables is now treated as sensitive data.

Added Support for Migration to Open Liberty

Setting your target application server to Open Liberty is now supported. Set --targetAppServer=openLiberty to migrate to Open Liberty.

Archive Checksum Addition in Inventory Report

All Java archive files now have an MD5 checksum associated with them for help tracking duplicates within an application.

Support

Bug and field support fixes were added to this release.



20.0.0.3

Released September 2020

Inventory Report Operational Considerations Improvements

The operational considerations section in the Inventory report was updated to provide additional guidance on setting up session caching.

JNDI Binding Names Configuration Migration

JNDI bindings in WebSphere traditional can now be migrated to a Liberty application server using the configuration migration command.

Java 11 Rule Addition

A new rule was added to warn users of the version format change when migrating to Java 11 and later versions.

Support

Bug and field support fixes were added to this release.



20.0.0.2

Released June 2020

Inventory Report Operational Considerations

A new operational consideration section was added to the inventory report. This section includes an overview of the application's deployment in WebSphere traditional. If the application is deployed to WebSphere Application Server Network Deployment and utilizing static clustering or session replication, advice is provided for configuring them in a containerized cloud environment.

New Java SE 14 Migration

The --targetJava=java13 non-LTS (Long-Term-Support) option was deprecated and replaced with --targetJava=java14 non-LTS option. Setting --targeJava=java14 provides the same functionality as migrating to Java SE 13, but with extra rules pertaining to the updates made in Java SE 14. Java SE 14 is a non Long Term Supported Java version. To migrate to an LTS Java version, migrate to Java SE 11 using the --targetJava=java11 option.

JVM Options Migration

The migration of JVM option configuration from WebSphere traditional to Liberty is now supported.

Configuration Value Paramaterization

When migrating from WebSphere traditional to Liberty, values of certain configuration elements that often differ between environments are now parameterized with variables to allow for easy substitution.

Deprecation of --verbose and Logging Updates

The --verbose option has been deprecated. The updated logging infrastructure can now be accessed with specifying --debug.

Support

Bug and field support fixes were added to this release.



20.0.0.1

Released March 2020

New Java SE 13 Migration

Rule addtions to the Java SE 13 non-LTS migration option.

Configuration Migration Support for --sharedLibraries Option

The --generateConfig action now supports the --sharedLibraries option. While generating config --sharedLibraries can be set to a comma-separated list of shared library paths used by an application.

Support

Bug and field support fixes were added to this release.