The missing public API for robots (`com.sun.glass.ui.Robot` and `com.sun.javafx.robot.FXRobot`) is causing me sleepless nights. Here ( https://github.com/TestFX/Robot) is a small prototype for a possible API to ignite some discussion. In case the proposed delay of JDK 9 ( http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-December/003149.html) takes place.
About the architecture: In the prototype I decided to not touch classes in `com.sun.glass.ui` and instead provide "wrapper" classes. This is a pattern which is also used for other classes in the JavaFX codebase, to provide a public API for functionality from e.g. `com.sun.prism` and `com.sun.javafx`. Additionally `com.sun.glass.ui.Robot` has dependencies to other private classes in its package and to native bindings to different operating systems and Monocle. About the implementation: - `javafx.application.ApplicationMixin::createGlassRobot()` returns a new `javafx.application.util.GlassRobot`. The methods of `ApplicationMixin` will of course find their places in `javafx.application.Application` eventually. - The `GlassRobot` is in the `javafx.util` package. It could also go into a new `javafx.robot` package instead. `GlassRobot` uses classes from the JavaFX API like `KeyCode`, `Point2D` and `MouseButton` instead of primitive types which are used by `com.sun.glass.ui.Robot`. (I've created a new mail thread in order to permalink to it and allow others without JIRA writing access to participate in the discussion. A JIRA ticket should be definately created via bugs.java.com -- if none already exist; I'll check this. I also know the code needs to be patch files into order to be merged into HG.) --Benjamin