harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Popov" <ivan.g.po...@gmail.com>
Subject Re: [jdktools][jpda] Adapt Eclipse JDI implementation to complete JPDA support in Harmony
Date Tue, 24 Apr 2007 05:56:25 GMT
I've run several experiments with JDI implementation from Eclipse and
was able to use it for running JDB debugger demo and Netbeans
debugger. However, there are several issues that should be solved.

1. Eclipse 3.0 provides quite independent JDI implementation, one can
use two separate jars from JDT runtime bundle:

  jdi.jar - JDI API interfaces
  jdimodel.jar - JDI implementation

But it corresponds to 1.4 and works not stable with Netbeans debugger,
so it is not the case.

2. In the newer Eclipse 3.2 and 3.3 JDI implementation corresponds to
1.5 and works well with both JDB and Netbeans (except of a few issues
mentioned below). Unfortunately, it introduces dependencies on two
additional jars (for formatting error messages and NLS support):

  com.ibm.icu.base_3.6.0.20061215.jar - from com.ibm.icu.base bundle
  org.eclipse.osgi_3.3.0.v20070321.jar - from RCP Runtime Binary bundle

The first one is quite small and independent bundle available from
Eclipse download site and I think it's OK to add it to Harmony
together with JDI jars. For the second one an easy stub can be
implemented to eliminate this dependency.

3. All Java debuggers expect that JDI API is located in
JDK/lib/tools.jar and implicitly add it to classpath when debugger is
started. This means we need to repackage all classes from Eclipse's
jdi.jar to Harmony's tools.jar. I don't like this solution, but it
seems the only possible one. I hope there are no legal issues with
such repackage. All other jars can be added separately and loaded with
special class loader, similar to what is already implemented for
Eclipse compiler jar.

4. There are a few bugs in implementation of JDI connectors which
throw NPE when are used in JDB and Netbeans debuggers. I fixed this in
my experiments and fix is rather simple. I can submit bug to Eclipse
and attach this fix. I hope Eclipse folks can apply it quickly.

If nobody objects I will proceed with items 2-4.


View raw message