Monocle in 8u25
ngalarneau at ABINITIO.COM
ngalarneau at ABINITIO.COM
Thu Nov 13 20:38:39 UTC 2014
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