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