On 17/07/2014 12:07, Petr Pchelko wrote:
Hello,
Please review the fix for the issue:
https://bugs.openjdk.java.net/browse/JDK-8037485
The fix is available at:
http://cr.openjdk.java.net/~pchelko/9/8037485/webrev.00
<http://cr.openjdk.java.net/%7Epchelko/9/8037485/webrev.00>
This fix separates the public datatransfer API from the desktop
module. The datatransfer module would contain java.awt.datatransfer
and sun.awt.datatransfer packages.
The sun.awt.datatransfer.desktop contains platform-dependent features
of the datatransfer system and belongs to the desktop module. So, most
of the changes are just package renaming.
DataTransferer class was split into 2 parts:
1. Utilities to work with the DataFlavor is moved to the
DataFlavorUtil class. It's just a collection of uility functions and
classes
2. Java objects to native representation converters are left in the
DataTransferer class and moved to the desktop module. It's needed only
with DnD and system clipboard API, so it naturally belong to desktop.
DesktopDatatransferServices was created. This is a collection of
services that datatrasfer module could use from desktop if desktop is
present. ServiceLoader is used because reflection does not cross
module boundaries for non-exported APIs
RMIAccessServices - a collection of services which RMI module might
provide to desktop and datatransfer. If RMI module is present we can
transfer RMI classes. If not - we cannot.
The fix was tested on all platforms with jtreg and JCK. No new test
failures found. Also the fix was tested without the RMI and without
the desktop module.
Mandy and I had a brief discussion with Petr about this. One suggestion
is to separate out the changes related to RMI as there are other
approaches there. This would also make it a bit easier to review the
most important work to factor out the datatransfer API.
-Alan.