Welcome to MSDN Blogs Sign in | Join | Help

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