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 Basic Features









































































































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


Not Converted


This feature is not supported.


Java Database Connectivity (JDBC)


java.sql  


javax.sql


Partially Converted


High rate of conversion is achieved for JDBC 1.0, for calling statements and stored procedures, data types, transactions and connection pools.


For JDBC 2.0, only RowSetMetaData and RowSet are partially converted.


The driver operations are not converted.


Java Message Service 1.0.2b


javax.jms


Partially Converted


JMS core functionality is converted to use MSMQ.


Some advanced JMS functionality is not converted.


Java Naming and Directory Interface (JNDI)


javax.naming


javax.naming.directory


javax.naming.event


javax.naming.ldap


javax.naming.spi


Service Providers


Partially Converted


Features related to accessing naming/directory services are converted.


Functionality relative to event notification, LDAP and service plugging in is not converted.


Java Servlet 2.3


javax.servlet


javax.servlet.http


Partially Converted


The core and HTTP Servlets functionality is converted. Contexts and Bindings are not converted.


Java Transaction API 1.0.1B


javax.transaction


javax.transaction.xa


Partially Converted


The support has been added to convert JMS, EJBs and JDBC.


Java Transaction Service 1.0


javax.jts


org.omg.CORBA


org.omg.CosTransactions


Org.omg.CosTSPortability


Not Converted


This feature is not supported.


JavaBeans Activation Framework 1.0.1


javax.activation


Partially Converted


Few functionality conversions have a different behavior.


JavaMail API 1.2


javax.mail


javax.mail.event


javax.mail.internet


javax.mail.search


Partially Converted


The basic mailing functionality is converted while the advanced JavaMail features are not converted.


JavaServer Faces


javax.faces


Not Converted


This feature is not supported.


JavaServer Pages (JSP) 1.2


Core Functionality


Tag Libraries


JSP Standard Tag Library


Partially Converted


Most of JSP core functionality and tag libraries are converted. Web Application Deployment is made using IIS.


Java Standard Tag Library is not converted.


SOAP with Attachments API for Java (SAAJ)


javax.xml.soap


Not Converted


This feature is not supported.


Table 4: J2EE 1.3 Features Coverage


 

Comments (3)
  1. JLCA 3.0 — это такое средство для конверсии кода Java в код C#, причём таким обр

  2. As I promised, I have posted the JLCA 3.0 cheat sheet for the users on my Blogs. The aim of this exercise…

Comments are closed.

Skip to main content