Monocle in 8u25
Benjamin Gudehus
hastebrot at gmail.com
Thu Nov 13 23:00:49 UTC 2014
Maybe we could use "The TestFX contributors" as "developers"?
On Thu, Nov 13, 2014 at 10:33 PM, Tom Eugelink <tbee at tbee.org> wrote:
> A developer is mandatory, your name is as good as any?
>
> Tom
>
>
>
> On 13-11-2014 22:06, Benjamin Gudehus wrote:
>
>> @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