Monocle in 8u25

Tom Eugelink tbee at tbee.org
Thu Nov 13 21:33:45 UTC 2014


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