<Swing Dev> customizing L&Fs in JDK9
Alan Snyder
javalists at cbfiddle.com
Fri May 15 21:35:18 UTC 2015
I have been looking into the possibility of integrating changes into the JDK. I agree that would be the best outcome, although I also believe the list of potential changes is so large that it would be good to give developers the opportunity of making the customization that matters most to them.
Why not make the Aqua L&F a separate module?
The most pressing issue is that the Aqua L&F uses an Apple provided library that supports native rendering, and a change is needed in that library to use Yosemite native rendering on Yosemite. (You might think that would happen automatically, so I guess it is a bug that it does not.)
The other issue is that some of the customizations use various open source packages with multiple authors and licensing.
Alan
> On May 15, 2015, at 1:44 PM, Sergey Bylokhov <Sergey.Bylokhov at oracle.com> wrote:
>
> Hi, Alan.
> Why this kind of customizations cannot be integrated to the jdk8/jdk9 directly?
>> As just one example, consider that Yosemite has been out for quite a while now and Java is still using Mavericks rendering on Yosemite.
> Any patches which improve appearance of jdk on Yosemite are welcome.
>>
>> Alan
>>
>>
>>> On May 15, 2015, at 12:49 PM, Phil Race <philip.race at oracle.com <mailto:philip.race at oracle.com>> wrote:
>>>
>>> My understanding is that the Aqua L&F classes are already inaccessible
>>> if there's a SecurityManager so its not a completely new thing.
>>> Whilst there may be ways around the JDK9 restrictions, what internal Aqua APIs do you need
>>> to customise ? And how do you deliver those customisations ?
>>>
>>> We are already looking at finding ways to expose some com.apple APIs in a supported way as Java APIs.
>>> Perhaps something in Aqua can be fixed, or perhaps exposed - perhaps being a key word.
>>>
>>> Note that bundling a JRE is not the same thing as building your own & bundling.
>>> I expect most applications will want to work with a pre-built Oracle JDK which will hide internal APIs.
>>>
>>> Perhaps
>>>
>>>
>>>
>>> On 5/15/2015 12:09 PM, Alan Snyder wrote:
>>>> If my understanding is correct, the classes for several JDK specific L&Fs (Aqua, GTK, and Windows) will become inaccessible to applications in JDK9. Is this true?
>>>>
>>>> I am concerned about the impact of this change for the Aqua look and feel, which historically has lagged behind the platform UI and continues to do so (although progress has been made) and for which both small and large customizations have been written. Blocking access to the Aqua look and feel classes will make such customizations much more difficult, possibly even impossible if native code is involved.
>>>>
>>>> While I understand the desire to protect applications from depending upon JDK specific code, the benefit of this restriction seems small. After all, how many JDK implementations are there for desktop applications on OS X? The current OS X application architecture bundles a JRE in each application, so JDK changes will not break installed applications.
>>>>
>>>
>>
>
>
> --
> Best regards, Sergey.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20150515/9a209bc3/attachment.html>
More information about the swing-dev
mailing list