There was a discussion why we use HToolkit instead of HeadlessToolkit:
http://mail.openjdk.java.net/pipermail/awt-dev/2012-July/003114.html

So we might want to continue using it.

Also, please be aware that there is HToolkit check in 
GraphicsToolkit.getHeadlessProperty()

On Oct 22, 2013, at 1:23 PM, Artem Ananiev <artem.anan...@oracle.com> wrote:

> Hi, David,
> 
> thanks for additional cleanup.
> 
> I have only one concern. Before the fix, we checked if there is an active 
> Aqua session. When no session was found, we falled back to HToolkit. I think 
> this logic should be preserved, but slightly corrected: fall back to 
> HeadlessToolkit (with CToolkit wrapped in).
> 
> Otherwise the only way to run headless on Mac will be to force it with the 
> system property. It works this way on Windows, but on Windows we're sure that 
> WToolkit can run even without a UI session. Is it also true on Mac? Did you 
> try to launch AWT without -Djava.awt.headless=true from remote console with 
> no users logged in?
> 
> Thanks,
> 
> Artem
> 
> On 10/22/2013 7:34 AM, David DeHaven wrote:
>> 
>> Updated webrev for JDK (hotspot change is the same):
>> http://cr.openjdk.java.net/~ddehaven/8025673/jdk.1/
>> 
>> Changes since last version:
>> - Moved to jdk8/build/jdk to save someone a merge headache, moved changes to 
>> CompileNativeLibs.gmk to libs/Awt2dLibraries.gmk
>> - Removed HToolkit option and toolkit selection code from 
>> java_props_macosx.[ch]
>> 
>> -DrD-
>> 
>> 
>>> I want to do one more iteration of this. Based on feedback it seems I can 
>>> remove a bit more code from java_props_macosx.[ch] and make things a bit 
>>> cleaner.
>>> 
>>> -DrD-
>>> 
>>>> Thanks guys.
>>>> 
>>>> Anthony, can you sponsor this for me?
>>>> 
>>>> -DrD-
>>>> 
>>>>> This fix looks fine to me as well.
>>>>> 
>>>>> --
>>>>> best regards,
>>>>> Anthony
>>>>> 
>>>>> On 10/20/2013 11:56 PM, David DeHaven wrote:
>>>>>> 
>>>>>> CCing: build-dev, macosx-port-dev, hotspot-dev
>>>>>> 
>>>>>> Request for review of JDK-8025673:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8025673
>>>>>> 
>>>>>> Proposed changes:
>>>>>> http://cr.openjdk.java.net/~ddehaven/8025673/
>>>>>> 
>>>>>> This change disables building libawt_xawt.dylib and 
>>>>>> libawt_headless.dylib on Mac since they are not used and not supported. 
>>>>>> There are too many challenges (and not enough time) in removing all X11 
>>>>>> code from the Mac build at this time, so we're deferring complete 
>>>>>> removal for later (will be covered by JDK-8003900).
>>>>>> 
>>>>>> A small change to hotspot is required as it was looking for 
>>>>>> libawt_xawt.dylib and if not found would set java.awt.headless to true. 
>>>>>> Since we don't build a headless only JRE on Mac I just have that method 
>>>>>> return false. I'm not sure how to handle changes to hotspot, can it be 
>>>>>> pushed along with the jdk changes? Without that change the Mac builds 
>>>>>> will be broken.
>>>>>> 
>>>>>> Significant build system changes, build-dev guys are encouraged to 
>>>>>> comment...
>>>>>> 
>>>>>> I tried excluding all sun/awt/X11 classes in CompileJavaClasses.gmk but 
>>>>>> that broke JNI header generation on platforms still using X11 and I 
>>>>>> couldn't use the big list of excluded files on Mac as that resulted in 
>>>>>> Java compilation errors, so I just added some logic to exclude 
>>>>>> everything on Mac and left the list in place everywhere else.
>>>>>> 
>>>>>> The changes to CompileNativeLibraries.gmk will port to 
>>>>>> libs/AwtJava2dLibraries.gmk in jdk8/build, however there is a problem in 
>>>>>> the jdk8/build workspace where the build cannot find symbols in JNI libs 
>>>>>> so that issue needs to be resolved first. I've not had time to 
>>>>>> investigate that problem.
>>>>>> 
>>>>>> 
>>>>>> Question for the AWT team, we still have this in java_props_md.c:
>>>>>> 458     PreferredToolkit prefToolkit = getPreferredToolkit();
>>>>>> 459     if (prefToolkit == CToolkit) {
>>>>>> 460         sprops.awt_toolkit = "sun.lwawt.macosx.LWCToolkit";
>>>>>> 461     } else {
>>>>>> 462         // TODO: do we still need this?
>>>>>> 463         sprops.awt_toolkit = "sun.awt.HToolkit";
>>>>>> 464     }
>>>>>> 
>>>>>> Is that necessary? Since we're now using libawt_lwawt in both headless 
>>>>>> and headful modes I would think we could remove the HToolkit option, but 
>>>>>> I'm not 100% certain about that.
>>>>>> 
>>>>>> 
>>>>>> I've built and tested on Mac and a Linux VM (Ubuntu 12.04) and both seem 
>>>>>> to be working fine.
>>>>>> 
>>>>>> JPRT run for Mac is in progress, I will submit one for all other 
>>>>>> platforms when it finishes building.
>>>>>> 
>>>>>> -DrD-
>>>>>> 
>>>> 
>>> 
>> 

Reply via email to