SA and JDK ( was Re: JDK8 Preliminary Repository Layout)

Jim Holmlund james.holmlund at oracle.com
Fri Mar 11 11:29:56 PST 2011



On 3/10/2011 6:54 PM, David Holmes wrote:
> Andrew,
>
> Just picking up on your SA comments and adding in the servicability folk and bcc'ing the build 
> folk ...
>
> Dr Andrew John Hughes said the following on 03/11/11 10:46:
>> Well HotSpot is one thing I think works well as a separate repository.
>> It allows us to have a stable branch for OpenJDK6 for example.  The only
>> real thing that stops it being independent is the servicability agent,
>> which, IME, would be better held in the JDK.  That would also mean that
>> the existing rules for building java classes could be used, rather than
>> reinventing it all in the HotSpot makefiles as at present.
>
> The SA is part of Hotspot because the SA is a Java interface to the Hotspot internals. Hence the 
> SA Java files have to be updated when the hotspot source files are, hence they must be in the same 
> repo or we'd have huge coordination problems. These files reside in sa-jdi.jar
>
> The SA classes are dependent on the com.sun.jdi interfaces/classes, so yes changes to JDI might 
> require changes to the SA. But the SA is just a JDI client in that regard.
>
See also CR
           6599669:   SA-JDI:  Fix to work with HotSpot Express.
It points out:
> The HotSpot workspace includes the Serviceability Agent .java files.
> These files must be kept in sync with HotSpot changes.
>
> The HotSpot workspace also includes an (read-only) implementation of JDI
> using SA called SA-JDI.  These files must implement new features
> as they are added to JDI in new feature releases.  So, what happens
> to these new features when SA-JDI is built/used in an update release
> as part of HotSpot Express?

- jjh

>> I've already run across one place where this is true.  HotSpot builds
>> the servicability agent with -source 1.4 -target 1.4.  Why? Because
>> of incompatibilies between its implementation and the com.sun.jdi
>> interfaces which require Comparable<T> not Comparable.
>
> My understanding is that the SA classes define their own Enum type which conflicts with the 
> java.lang.Enum added in 1.5. To avoid all the warnings this would generate, plus the raw type 
> warnings as the SA is not generified, it is compiled with -source 1.4.
>
> David


More information about the serviceability-dev mailing list