Review for RFR 7902119: Add JemmySupport to jemmy/v3
Alexandre (Shura) Iline
alexandre.iline at oracle.com
Mon Dec 3 23:45:23 UTC 2018
Thank you very much for the review, Sergey!
I will fix those problems which I think have to be fixed before the initial push - those which may create potential inconsistencies in the future.
For the rest, I hope you are OK if I create bugs to track. It is only the initial push, after all.
Shura
> On Dec 2, 2018, at 2:03 PM, Sergey Grinev <sergeygrinev at mail.ru> wrote:
>
> Hi Shura.
> it's very useful and well written library. Docks are great addition to Jemmy toolkit!
> I have only few minor commens as follows:
>
> *0) Overview*
> - Documentation is scarce
> - There is only one test (although, pretty creative)
> - Test infrastructure seems to use Jemmy v3 version not published to repo
> - There are several deprecated classes
>
> *1) Proccessor.java *
>
> 1.1) Typos
>
> - Proccessor instead of Processor (or is to differ from javax.annotation.processing.Processor? -- in this case, it can be JemmyProcessor or DocksProcessor)
> - onlyOnlce instead of onlyOnce (or even better, isAlreadyProcessed )
>
> 1.2) options field and overriding getSupportedOptions
> AFAIK, these are redundant and SupportedOptions annotations can be used instead
>
> @SupportedOptions(Proccessor.ACTIONS)
>
> 1.3) same for types and getSupportedAnnotationTypes(), although here it's questionable as you need to expose hardcoded package name.
>
> @SupportedAnnotationTypes("org.jemmy.control.ControlType")
>
> 1.4) findAnnotation methods looks a bit ineffective
>
> 1.5) BooleanValueGetter (and its type-counterparts) will look better as an instance inside BooleanArrayValueGetter to avoid exposure and recreation
>
> *2) ControlSupport.java*
>
> 2.1) linkSuperClasses() method, line controls.add(root);
>
> you are adding null to the list in case foundOne==true -- it seems root variable assigning is missing there
>
> 2.2) line 462 "do a quicksort, at least" comment -- also you can store ControlSupport in SortedList with corresponding comparator; it will help in DockGenerator.java:82 too;
>
> 2.3) You are using two different ways to compare types during finding superclass in ControlSupport.linkSuperClasses and DockGenerator.generate() (line 82)
> it seems worth to add a shared utility method
>
> *3) DockGenerator.java*
>
> 3.1) there is no null check for superDockName in generate() method. I've assumed it's due to prior verification in ControlSupport.linkSuperClasses() (line 491), but for future stability I'd add one
>
> 3.2) Given that $SUPERDOCK$ is a valid java identifier, placeholders looks a bit unsafe.
>
> 3.3) parameter names "docks" looks misleading in constructor
>
> public DockGenerator(ProcessingEnvironment processingEnv, List<ControlSupport> docks)
>
> 3.4) line 357: are you sure it's a warning and not a showstopper? E.g. file writing failures will lead to missing docks silently
>
> *4) DumpGenerator.java*
>
> 4.1) all constants can be private
>
> 4.2) generate(): TransformerConfigurationException is excessive, it extends already listed TransformerException
>
> 4.3) toStringDollar() utility method can be moved to DumpGenerator from Proccessor class and made private, it's used only here
>
>
> -- Sergey
>> Hi,
>>
>> Could you kindly take a look on this integration. Along with the code I managed to introduce some minimal tests, because of which additional step is taken during test execution. Here is the sequence of steps taken when "ant test"n:
>> 1. Source is compiled (from src dir)
>> 2. Test data (from test_data dir) is compiled (into build/test_data) with Proccessor class as an annotation processor. These classes include a few Wrap class extensions and contain proper annotations. Generated sources are placed into build/test_docks.
>> 3. The generated source (from build/test_docks) is then also compiled (into build/test_data).
>> 4. Tests are compiled and run with build/test_data in class path.
>>
>> Webrev:http://cr.openjdk.java.net/~shurailine/7902119/webrev.00/
>> Bug:https://bugs.openjdk.java.net/browse/CODETOOLS-7902119
>>
>> Thank you.
>>
>> Shura
>
More information about the jemmy-dev
mailing list