JLCA 2.0 Vs 3.0 and understanding the Conversion Report

JLCA v2.0 Vs v3.0

At times users come back to us when they have problems with usage of JLCA v2.0 and find that the conversion using the JLCA 2.0 release is not very effective. The JLCA 2.0 release comes integrated with Visual Studio .NET (2003). For all such customers we reccomend the usage of JLCA 3.0 beta release. The JLCA 3.0 beta release is an add on over Visual Studio .NET (2003). Even though it’s in beta the quality of JLCA 3.0 is very high and users get a much better conversion with this than they would with version 2.0.

Go here to download JLCA 3.0 (It is recommended that you also download the product documentation for JLCA 3.0 beta along with the product. The documentation for 3.0 beta is also avaiable at the above location)

Apart from enhancing the user experience in conversion JLCA3.0 also adds conversion of a host of new packages and Java Level API's. For details of the latest packages and API's supported by JLCA 3.0 beta see here.

JLCA Conversion Report

The JLCA tool is mostly an API level conversion tool i.e. it converts the targeted Java code at an API level and does not convert any architectural changes mandated because of the design aspects of the underlying .NET Framework.

One thing to mention about running the JLCA is that when you’re done you’ll get a summarized report detailing any additional work you’ll have to do in order to complete the migration a.k.a Conversion Report. Apart from the Conversion Report these comments are also inserted at the appropriate location in the converted code files.

This report tends to err on the side of caution; for example, in Java every toString method you have which is converted to a C# ToString method will be flagged since a small fraction of the time the behavior can be different. Of course, most of the times it’s identical but it flags it just to make you aware that there could be a difference. So don’t be alarmed if you get a lot of conversion errors and warnings; this is actually normal and most of them are easy to clean up.

The report emits links corresponding to the kind of error/issue that was encountered during the conversion. The types of links emitted can be broadly classified into three types

  • Errors: Ascribes to compilation errors in the code. These kind of errors are inserted in the code at the correct line of code.
  • Issues: These mainly ascribe to architectural changes that need to be considered due to a move to .NET Framework. These kind of issues are generally placed in the converted code at not a particular line of code, but generally at the start of the block which might need the change.
  • Warning: During the conversion, there might be some specific behavioral changes that might be seen as a result of the API conversion. For e.g. Though the tool tries nearest functional equivalence, stuff like UI etc. might not be exactly same and need some changes because of the behavior. Such messages are also added at the appropriate line of code.

The best way to look at these error messages is to install the product documentation of JLCA (available here for JLCA 3.0 as DocSetup in the link above for JLCA 3.0) and follow the help link provided with each inserted message. The documentation provides the users with the information about what the issue could be and the possible workaround that can be done for the same.