<Swing Dev> [11] RFR JDK-8202199 : Provide public, unsupported API for FX Swing interop
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Sat May 5 15:20:40 UTC 2018
Updated webrev to modify java.desktop module-info.java (only difference
between webrev7 and this) to remove the duplicate exports of sun.awt so
we will have now
exports sun.awt to
jdk.accessibility,
jdk.unsupported.desktop;
http://cr.openjdk.java.net/~psadhukhan/fxswing.8/
Regards
Prasanta
On 5/5/2018 2:28 PM, Prasanta Sadhukhan wrote:
> Hi All,
>
> I have tried to address all comments from Nir, Phil, Mandy and Kevin
> got so far in this webrev
> http://cr.openjdk.java.net/~psadhukhan/fxswing.7
>
> >>In SwingNode, lines 870 -883, is there a reason that only the first
> method uncommented @Override? I don't understand the comment that
> wants to skip @Override.
> If @override is not added, then it will cause recursion between
> LightweightContent.java:130 and LightweightContent.java:187 thereby
> causing StackOverflowError. I am also not sure about the comment of
> skipping @Override but I have removed it from this webrev.
>
> Regards
> Prasanta
> On 5/5/2018 4:32 AM, Kevin Rushforth wrote:
>> My quick comments:
>>
>> 1. The changes to java.desktop module-info.java won't compile when
>> applied to jdk-client, since there is already a qualified export of
>> the sun.swing package to another internal class. Can you update your
>> patch to be based off of jdk-client? I note that it requires a small
>> patch to be able to build FX with JDK 11 (it's a known gradle issue),
>> but it's not hard to do.
>>
>> 2. As I mentioned in an off-line email, the final version of the
>> javafx.swing patch will need to use 'requires static
>> jdk.unsupported.desktop' in its module-info.java, so that it will
>> still run on JDK 10 EA. This means that you will need to ensure that
>> jdk.unsupported.desktop is loaded via a service loader as discussed.
>> This will not affect the public API at all, so that can proceed in
>> parallel, but this needs to be fixed.
>>
>> 3. As I mentioned in my earlier reply to Mandy's comment, Swing
>> interop apps will fail if a security manager is installed, because
>> the jdk.unsupported.desktop classes are loaded by the app class
>> loader. This can be sorted out later as a follow-on bug, with
>> permissions added to the default policy file, etc.
>>
>> 4. As Phil mentioned, some docs would be good. They don't need to be
>> all that detailed, since it isn't intended for use by applications,
>> and will not be included in the published API docs bundle (i.e., it
>> should be excluded from "make docs").
>>
>> I will do a more detailed review early next week.
>>
>> -- Kevin
>>
>> On 5/4/2018 1:53 PM, Phil Race wrote:
>>> Two quick comments.
>>>
>>> 1) I'd like "Peer" removed from all the exported API.
>>> 2) It is probably stable enough now that you can start to add some
>>> javadoc.
>>>
>>> -phil.
>>>
>>> On 05/04/2018 05:00 AM, Prasanta Sadhukhan wrote:
>>>> Hi All,
>>>>
>>>> Please review an enhancement to remove the tight coupling of JDK
>>>> internal class from FX so that
>>>> when javafx.* modules are removed from Openjdk build in jdk11, FX
>>>> in general, and fx swing interop, in particular, can still build
>>>> and function.
>>>>
>>>> Right now, FX uses 6 jdk internal packages
>>>> sun.swing, sun.awt, java.awt.dnd.peer, sun.awt.dnd, sun.awt.image
>>>> and sun.java2d.
>>>>
>>>> However, the goal is not to use qualified exports of these internal
>>>> packages once FX is removed to be built along with JDK,
>>>>
>>>> The solution will define a new "jdk.unsupported.desktop" module
>>>> that exports public API
>>>> that is intended to be used by the javafx.swing module (but it does
>>>> so with public exports and not qualified exports).
>>>> The idea is the same as jdk.unsupported, in that it is documented
>>>> as being unsupported.
>>>> Further, since it is only intended to be used by javafx.swing, it
>>>> need not be in the default module graph.
>>>>
>>>> The module-info.java will look like this:
>>>>
>>>> |module jdk.unsupported.desktop { requires transitive java.desktop;
>>>> exports jdk.swing.interop; } |||
>>>>
>>>> Enhancement: https://bugs.openjdk.java.net/browse/JDK-8202199,
>>>> https://bugs.openjdk.java.net/browse/JDK-8195811
>>>> webrev: cr.openjdk.java.net/~psadhukhan/fxswing.6/
>>>> CSR: https://bugs.openjdk.java.net/browse/JDK-8202175
>>>>
>>>> Regards
>>>> Prasanta
>>>>
>>>> ||
>>>>
>>>>
>>>
>>
>
More information about the swing-dev
mailing list