Monocle in 8u25
Benjamin Gudehus
hastebrot at gmail.com
Thu Nov 13 21:06:29 UTC 2014
@Tom Thanks for the patch. Will apply it soon.
Is there something like a package maintainer field for Maven? I think
developer is a bit too pompous; I didn't touch the code.
On Thu, Nov 13, 2014 at 10:01 PM, Benjamin Gudehus <hastebrot at gmail.com>
wrote:
> Hi Neil!
>
> >The TestFX library is still moving the Windows mouse!
> TestFX is using Awt's robot. This robot ignores Glass/Monocle and controls
> the OS's cursor.
> We need to replace it with Glass' robot. I already tested it and it works
> fine.
> PR will be ready soon. This PR will also replace the Awt screenshot
> mechanism with the one
> from the Glass robot. I hoped that this will also take screenshots wenn
> running in headless mode.
> But unfortunately the screenshots were empty. I saw in Monocle's source
> code, that it writes
> color values into an internal byte stream, so it actually should work.
>
> Also very nice to see, that people are using bleeding edge version of
> TestFX. :)
> TestFX will also have better Spock/Groovy support in the future.
>
> --Benjamin
>
>
> On Thu, Nov 13, 2014 at 9:38 PM, <ngalarneau at abinitio.com> wrote:
>
>> Hi Benjamin,
>>
>> We are using Spock for testing, and have modified the setupStage() method
>> to support optional headless testing with Monocle,
>> which is working well on Windows (the code is in groovy):
>>
>> void setupStage(Closure<javafx.scene.Node> rootNodeFactory)
>> {
>> if (fx == null && isHeadless)
>> {
>> // Cribbed from:
>> https://gist.github.com/hastebrot/cbca1128dd791966e3a6
>> PlatformFactory.instance = new MonoclePlatformFactory()
>> NativePlatformFactory.platform = new HeadlessPlatform()
>> }
>> fx = new GuiTest()
>> fx.rootNodeFactory = rootNodeFactory
>> fx.setupGuiTest()
>> }
>>
>> It works nicely until fx.clickOn is called. The TestFX library is still
>> moving the Windows mouse!
>>
>> Any thoughts?
>>
>>
>> Thanks,
>>
>> Neil
>>
>>
>>
>>
>> From: Benjamin Gudehus <hastebrot at gmail.com>
>> To: Tom Eugelink <tbee at tbee.org>,
>> Cc: "openjfx-dev at openjdk.java.net" <openjfx-dev at openjdk.java.net>
>> Date: 11/12/2014 03:10 AM
>> Subject: Re: Monocle in 8u25
>> Sent by: "openjfx-dev" <openjfx-dev-bounces at openjdk.java.net>
>> ------------------------------
>>
>>
>>
>> That would be nice, Tom.
>>
>> Example usage:
>>
>> Since com.sun.glass.ui.PlatformFactory can't find Monocle classes from the
>> external jars, we need to change
>>
>> public static void main(String[] appArgs) {
>> Application.launch(appClass, appArgs);
>> }
>>
>> to
>>
>> public static void main(String[] appArgs) {
>> new ToolkitApplicationLauncher().launch(appClass, appArgs);
>> }
>>
>> and start the Application with -Djavafx.monocle.headless=true.
>>
>> ToolkitApplicationLauncher.jar:
>> https://gist.github.com/hastebrot/cbca1128dd791966e3a6
>>
>>
>> On Wed, Nov 12, 2014 at 8:48 AM, Tom Eugelink <tbee at tbee.org> wrote:
>>
>> > I can roll it out under the same name (openjfx-monocle-1.8.0_20) within
>> > the org.jfxtras group. Just say so.
>> >
>> > Tom
>> >
>> >
>> > On 12-11-2014 08:30, Benjamin Gudehus wrote:
>> >
>> > Hi all!
>> >
>> > Files and instructions are available at
>> https://github.com/TestFX/Monocle
>> > .
>> >
>> > Releases with jars: https://github.com/TestFX/Monocle/releases
>> >
>> > License (taken from OpenJFX respository):
>> > https://github.com/TestFX/Monocle/blob/master/LICENSE
>> >
>> > Would be nice to have this available from Maven.
>> >
>> > --Benjamin
>> >
>> > On Wed, Nov 5, 2014 at 8:20 PM, Tom Eugelink <tbee at tbee.org> wrote:
>> >
>> >> This is extremely good news. I have no problem to "drag" that library
>> >> along in the JFXtras project (project name seems to be a good match for
>> >> this usage ;-) and release it to maven - if that is allowed by the
>> JavaFX
>> >> license.
>> >>
>> >> Tom
>> >>
>> >>
>> >>
>> >> On 5-11-2014 16:57, Benjamin Gudehus wrote:
>> >>
>> >>> Hi Sean,
>> >>>
>> >>> I've put the Monocle sources directly in my code directories for
>> >>> testing purposes. Putting it into a separate Jar is possible and I
>> >>> thought that pre-compiled jars could be provided via Maven.
>> >>>
>> >>> I didn't do a complete OpenJFX build, because I was only interested in
>> >>> the Headless component of Monocle, i.e. I didn't needed the
>> >>> platform-dependent dynamic libraries.
>> >>>
>> >>> Rough instructions were given in a previous mail. There were some
>> >>> request to provide the pre-compoile jars so I will additionally set up
>> >>> a public repository with detailed instructions when I'm back home.
>> >>>
>> >>> --Benjamin
>> >>>
>> >>> On 11/5/14, Sean True <sean.true at gmail.com> wrote:
>> >>>
>> >>>> Did you build the glass/ui/monocle sources into a separate jar, or
>> did
>> >>>> you
>> >>>> do a complete OpenJFX build?
>> >>>>
>> >>>> If you did a separate build, a recipe would be extremely helpful.
>> >>>>
>> >>>> -- Sean
>> >>>>
>> >>>> On Tue, Nov 4, 2014 at 6:17 PM, Benjamin Gudehus <
>> hastebrot at gmail.com>
>> >>>> wrote:
>> >>>>
>> >>>> I managed to run Monocle/Headless on Windows with 8u25. This will
>> allow
>> >>>>> users to run headless tests.
>> >>>>>
>> >>>>> All what is needed is to copy all files from
>> "com/sun/glass/ui/monocle"
>> >>>>> of
>> >>>>> "javafx-src.zip" and add the
>> >>>>> cursor resource files from
>> >>>>> "modules/graphics/src/main/resources/com/sun/glass/ui/monocle" of
>> the
>> >>>>> related hg tag in the OpenJFX repository [1].
>> >>>>>
>> >>>>> Before Application#launch() is called we need to manually set the
>> Glass
>> >>>>> and
>> >>>>> Monocle platforms:
>> >>>>>
>> >>>>> accessStaticField(com.sun.glass.ui.PlatformFactory.class,
>> "instance",
>> >>>>> new com.sun.glass.ui.monocle.MonoclePlatformFactory());
>> >>>>>
>> accessStaticField(com.sun.glass.ui.monocle.NativePlatformFactory.class,
>> >>>>> "platform",
>> >>>>> new com.sun.glass.ui.monocle.headless.HeadlessPlatform());
>> >>>>>
>> >>>>> The directory structure in 8u40 is a bit different, but there could
>> be
>> >>>>> added version checks. Checking
>> >>>>> for the JVM vars "glass.platform" and "monocle.platform" might be
>> also
>> >>>>> added to this code.
>> >>>>>
>> >>>>> [1] http://hg.openjdk.java.net/openjfx/8u-dev/rt/tags
>> >>>>>
>> >>>>>
>> >>>>> On Tue, Nov 4, 2014 at 8:42 PM, Benjamin Gudehus <
>> hastebrot at gmail.com>
>> >>>>> wrote:
>> >>>>>
>> >>>>> Hmm. Seems that Class.forName() in com.sun.glass.ui.PlatformFactory
>> >>>>>> won't
>> >>>>>> retrieve externally defined PlatformFactorys. So I will try to set
>> the
>> >>>>>> PlatformFactory.instance field manually, before the
>> >>>>>> Application/Tookit/FX-Thread is launched.
>> >>>>>>
>> >>>>>> On Tue, Nov 4, 2014 at 7:36 PM, Benjamin Gudehus <
>> hastebrot at gmail.com
>> >>>>>> >
>> >>>>>> wrote:
>> >>>>>>
>> >>>>>> Thank you. That makes it clearer. :)
>> >>>>>>>
>> >>>>>>> Is it possible to supply the headless part of Monocle in an
>> external
>> >>>>>>> Jar
>> >>>>>>> for desktop platforms?
>> >>>>>>>
>> >>>>>>> As far as I know the only possibility to run TestFX tests with
>> >>>>>>> Hudson/Jenkins is in headless mode.
>> >>>>>>> TestFX's tests itself can only run with the X virtual framebuffer
>> on
>> >>>>>>> Linux test clients for the Travis CI so far.
>> >>>>>>>
>> >>>>>>> So far the only advice I could give TestFX users who like to run
>> >>>>>>>
>> >>>>>> headless
>> >>>>>
>> >>>>>> tests is to use 1.8.0_20-ea-b05.
>> >>>>>>>
>>
>>
>>
>>
>> NOTICE *from Ab Initio: This email (including any attachments) may
>> contain information that is subject to confidentiality obligations or is
>> legally privileged, and sender does not waive confidentiality or privilege.
>> If received in error, please notify the sender, delete this email, and make
>> no further use, disclosure, or distribution. *
>
>
>
More information about the openjfx-dev
mailing list