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- >>>>>> >>>> >>> >>