JLCA 3.0 - Introduction
Java Language Conversion Assistant (JLCA henceforth) is a tool that provides support for the conversion of software written in VJ++ and Java to Microsoft’s Visual C# .NET and .NET Framework. JLCA 3.0 is the latest version of the tool. It supports conversion of a majority of Java’s APIs and Java technologies supported by J2SE 1.3 and J2EE 1.3. It also addresses important issues of reducing the compilation errors and improving the conversion coverage and user experience as compared to the previous versions of the tool.
Table 1 summarizes the JLCA versions released so far.
|
JLCA |
Source |
For .NET Framework |
|
1.0 |
Visual Studio 2003 |
1.1 (Everett) |
|
2.0 |
Download from here |
1.1 (Everett) |
|
3.0 Beta (GDR) |
Download from here |
1.1 (Everett) |
|
3.0 Whidbey |
Visual Studio 2005 |
2.0 (Whidbey) |
Table 1: JLCA Released Versions
The following parts of this document describe the main issues and features addressed/implemented in JLCA 3.0.
· The section “J2SE and J2EE Coverage” gives idea of the conversion coverage achieved by JLCA 3.0 corresponding to Java 1.3 Features.
· The section “JLCA 3.0” describes the new features released in JLCA 3.0 compared to JLCA 2.0.
J2SE and J2EE Coverage
JLCA 3.0 is designed to assist in the conversion of Java applications using inherent J2SE 1.3 and J2EE 1.3 features. Furthermore, it is designed to assist in converting VJ++ applications using VJ++ features.
The previous versions of the tool added support to convert Java applications using some features of J2SE and VJ++. JLCA 3.0 adds more support to the target feature set as described above.
Table 2 ,Table 3 and Table 4 describe the conversion coverage achieved by JLCA 3.0 for J2SE Basic features, J2SE 1.3 Java Foundation Classes (JFC) features and J2EE 1.3 features. For each feature, they provide top level details of the targeted API’s, extent of conversion and description of their conversion by using JLCA 3.0.
|
J2SE 1.3 Feature |
Package / Functionality |
JLCA 3.0 Coverage |
Description |
|
Arbitrary Precision Math |
java.math |
Partially Converted |
Most of the functionality of this package is not converted. |
|
Collections Framework |
java.util |
Converted |
Conversion to .NET Framework is achieved natively or by means of support classes. Some members are converted with different behavior. |
|
Extension Mechanism |
java.lang.ClassLoader
java.lang.Package
java.lang.Thread
java.net.JarURLConnect
java.net.URLClassLoader
SecureClassLoading |
Not Converted |
The Java Extension Mechanism does not apply for the .NET Framework. |
|
I/O |
java.io |
Partially Converted |
High rate of conversion is achieved for this package. Some hierarchy conflicts are present in the conversion. |
|
Internationalization |
Locales and Resources
Calendar and Time Zone
Formatting
Loc-Sensitive String Ops
Character Sets and Classif.
AWT Attributes
Stream I/O |
Partially Converted |
Conversion is achieved for Locales, Locale-Sensitive String Ops, and Resources. The remaining functionality is either not converted or is converted with a different behavior. |
|
Java Archive (JAR) Files |
java.util.jar
java.net.JarURLConnection
JAR Files Loading |
Not Converted |
Java Archive Files has no equivalent mapping in .NET Framework. JLCA is however able to read JAR Files to extract .class info. |
|
Java Native Interface (JNI) |
- |
Not Converted |
JNI functionality is not converted. |
|
JavaBeans |
java.beans |
Partially Converted |
Bean Classes, Properties, Events and Descriptors are converted. |
|
Language and Utility Packages |
java.lang
java.util
java.util.jar
java.util.zip |
Partially Converted |
The functionality of java.lang and java.util packages is converted.
The functionality of java.util.jar and java.util.zip packages is not converted. |
|
Miscellaneous Features |
The @deprecated Tag
The APPLET Tag
|
Converted |
JavaDoc tags are converted to .NET Framework Doc tags. Html <Applet> tag is converted to <Object> tag for Applet conversion. |
|
Networking |
java.net |
Partially Converted |
Encoding and Decoding parts in this package are not converted. |
|
Object Serialization |
java.io.Externalizable
java.io.Serializable
|
Partially Converted |
The core functionality of this package is converted. Some source-code patterns are not converted. The repository containing the serialized objects could require further conversion. |
|
Package Version Identification |
java.lang.Class
java.lang.ClassLoader
java.lang.Package
java.lang.System |
Partially Converted |
Java Package Versioning does not apply for the .NET Framework. Some of the functionality of this package is converted. |
|
Reference Objects |
java.lang.ref |
Partially Converted |
WeakReference is converted. |
|
Reflection |
java.lang.reflect |
Partially Converted |
Advanced features are not converted. |
|
Remote Method Invocation (RMI) |
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
|
Partially Converted |
The client conversion is based on source-code patterns. Some complementary functionality is not converted.
|
|
Resources |
java.lang.Class
java.lang.ClassLoader
java.net.URLClassLoader
java.util.ResourceBundle
java.security
SecurityManagement
|
Partially Converted |
The Class Loading functionality is not converted.
Remaining core functionality is converted with different behavior at times. |
|
Security and Signed Applets |
java.security
java.security.cert
java.security.interfaces
java.security.spec |
Partially Converted |
The classes and interfaces holding Certificates, Keys, Signatures, Principals, Permissions, Digests and Encryption Algorithms are converted. |
|
Sound |
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
|
Partially Converted |
The javax.sound.sampled package is converted to Microsoft.DirectX.DirectSound, but needs Managed DirectX installed on the machine. |
Table 2: J2SE 1.3 Basic Features Coverage
J2SE 1.3 Java Foundation Classes (JFC)
|
J2SE 1.3
JFC Feature |
API / Functionality |
JLCA 3.0 Coverage |
Description |
|
2D Graphics and Imaging |
com.sun.image.codec.jpeg
java.awt
java.awt.color
java.awt.font
java.awt.geom
java.awt.image
java.awt.print
|
Partially Converted |
The functionality of 2D Graphics and Colors, Fonts and Geometry is converted.
Remaining features of this package are not converted or converted with a different behavior. |
|
Abstract Window Toolkit (AWT) |
java.awt
java.awt.datatransfer
java.awt.event
|
Partially Converted |
The widget classes are converted. Conversion for Events is based on source-code patterns. Layout Management conversion is not well achieved. |
|
Accessibility |
javax.accessibility |
Partially Converted |
Highh rate of conversion is achieved for the basic features and is mainly based on source-code patterns. |
|
Drag-and-Drop data transfer |
java.awt.dnd |
Partially Converted |
The conversion supported is based on source-code patterns. |
|
Input Method Framework |
java.awt.Component
java.awt.event
java.awt.im
java.text |
Not Converted |
This functionality does not have an equivalent in the .NET Framework model. |
|
Project Swing Components |
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.table
javax.swing.text
javax.swing.tree
javax.swing.undo |
Partially Converted |
The functionality of Models, Editors, Layout Management, Borders, Renderers and Pluggable Look And Feel is not converted. |
Table 3: J2SE 1.3 Java Foundation Classes Coverage
J2EE 1.3 Features
|
J2EE 1.3 Feature |
API / Functionality |
JLCA 3.0 Coverage |
Description |
|
J2EE Connector 1.0 |
|
Not Converted |
This feature is not supported. |
|
CORBA
JavaTM IDL |
Idl |
Partially Converted |
The conversion of IDL Files to .NET framework is covered.
The Server and Client side conversion is based on source-code patterns. |
|
CORBA
RMI-IIOP |
org.omg.CORBA
Org.omg.CosNaming |
Not Converted |
This feature is not supported. |
|
ECperf 1.0 |
|
Not Converted |
This feature is not supported. |
|
Enterprise JavaBeans (EJBs)
2.0 and 1.1 (CORBA Mapping) |
javax.ejb
javax.ejb.spi
XML Deployment Descriptor |
Partially Converted |
High rate of conversion is achieved for classes and interfaces for any EJB, Transactions and EJB Security. Container-Managed Persistense (CMP) Entity Beans are converted partially.
Client Side conversion is based on source-code patterns.
To achieve conversion the ejb-jar.xml file should be included. |
|
Java API for XML Processing (JAXP) |
javax.xml.parsers
javax.xml.transform |
Partially Converted |
Conversion to .NET Framework is achieved natively or by means of support classes. Conversion for SAX (org.xml.sax) and DOM (org.w3c.dom) is supported. |
|
Java API for XML Registries (JAXR) |
javax.xml.registry |
Not Converted |
This feature is not supported. |
|
Java API for XML-based RPC (JAX-RPC) |
javax.xml.rpc |
Not Converted |
This feature is not supported. |
|
Java Architecture in XML Binding (JAXB) |
javax.xml.bind |
|