Integrated: 7903451: JMH: Refactor internal Optional usages
Andrei Rybak
duke at openjdk.org
Tue Apr 4 09:01:39 UTC 2023
On Sun, 26 Mar 2023 08:38:53 GMT, Andrei Rybak <duke at openjdk.org> wrote:
> This is a follow-up to the email https://mail.openjdk.org/pipermail/jmh-dev/2023-January/003562.html
>
> `java.util.Optional` isn't `Serializeable`. Because of that `org.openjdk.jmh.runner.options.TestOptions` fails with `java.io.NotSerializableException: java.util.Optional`, when `org.openjdk.jmh.util.Optional` is completely replaced with `java.util.Optional`. See [test results on branch `java-util-optional`](https://github.com/rybak/jmh/actions/runs/4326921418), ([one commit](https://github.com/rybak/jmh/commit/25b9cb382be7285a51446976247d036ac855fc91) on top of initial state of this PR).
>
> I didn't look further into possibility of removing `Optional`s as fields of class `CommandLineOptions`. I think that the refactoring up until the drop-in replacement to `java.util.Optional` might still be worth it, at least from the point of making it more approachable for people who are familiar with `java.util.Optional`. So here are these changes for your consideration. Details are in the commit messages.
This pull request has now been integrated.
Changeset: e88ed825
Author: Andrei Rybak <rybak.a.v at gmail.com>
Committer: Aleksey Shipilev <shade at openjdk.org>
URL: https://git.openjdk.org/jmh/commit/e88ed8253b137ee4bc29270f08af6117d2cf3937
Stats: 20 lines in 3 files changed: 5 ins; 3 del; 12 mod
7903451: JMH: Refactor internal Optional usages
Passing an empty Optional to method orAnother() of class
org.openjdk.jmh.util.Optional is a no-op. Stop doing it in getters
getJvmArgs(), getJvmArgsAppend(), and getJvmArgsPrepend() of class
OptionsBuilder.
Refactor usage of method org.openjdk.jmh.util.Optional#orAnother in
class Runner using new method orElseGet() with lazy `Supplier`s as per
comment added in commit db1bc365 (7902576: Lazy query for current JVM
args in Runner, 2020-01-20). Clean up imports, while we're here.
Reviewed-by: shade
-------------
PR: https://git.openjdk.org/jmh/pull/98
More information about the jmh-dev
mailing list