I'll note that I had proposed something similar with locks a while back. This may suffer from the same issue for some: Using AutoCloseable and try-with-resources in an unusual way.
Gary On Tue, May 2, 2017 at 4:22 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > Here is my version based on a fluent version of Apache Commons Lang's > StopWatch: > > https://pastebin.com/biNfwu7S > > Example: > > try (final StopWatchLogger watch = StopWatchLogger.start(LOGGER, > Level.DEBUG, "Executing {} {}", connectingIOReactor, "foo")) { > connectingIOReactor.execute(connectingEventDispatch); > } > > Logs: > "Executing 1@connectingIOReactor FOO" > "[Executing 1@connectingIOReactor FOO] took 00:00:01.224" > > Thoughts? > > Gary > > > On Mon, May 1, 2017 at 7:42 PM, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> Great idea! >> >> Gary >> >> On Mon, May 1, 2017 at 7:36 PM, Matt Sicker <boa...@gmail.com> wrote: >> >>> What about a fluent package for classes like this so you can still call >>> it >>> StopWatch? >>> >>> On 1 May 2017 at 21:02, Gary Gregory <garydgreg...@gmail.com> wrote: >>> >>> > I am down to copying StopWatch as FluentStopWatch and adding "return >>> this;" >>> > to all the void methods. >>> > >>> > I can so that in my code base but does it induce vomiting if Commons >>> Lang >>> > has both StopWatch AND FluentStopWatch? >>> > >>> > Gary >>> > >>> > On Sun, Apr 30, 2017 at 2:47 PM, Gary Gregory <garydgreg...@gmail.com> >>> > wrote: >>> > >>> > > Sorry, Commons Lang. >>> > > >>> > > Gary >>> > > >>> > > On Apr 30, 2017 1:47 PM, "Matt Sicker" <boa...@gmail.com> wrote: >>> > > >>> > >> Which subproject are you speaking of anyways? >>> > >> >>> > >> On 30 April 2017 at 15:46, Gary Gregory <garydgreg...@gmail.com> >>> wrote: >>> > >> >>> > >> > A new method perhaps or a new class a la fluent? >>> > >> > >>> > >> > Gary >>> > >> > >>> > >> > On Apr 30, 2017 1:32 PM, "Matt Sicker" <boa...@gmail.com> wrote: >>> > >> > >>> > >> > > Yup, here it is: >>> > >> > > 13.4.15. Method Result Type >>> > >> > > >>> > >> > > Changing the result type of a method, or replacing a result type >>> > with >>> > >> > void, >>> > >> > > or replacing void with a result type, has the combined effect of >>> > >> deleting >>> > >> > > the old method and adding a new method with the new result type >>> or >>> > >> newly >>> > >> > > void result (see §13.4.12 >>> > >> > > <https://docs.oracle.com/javase/specs/jls/se7/html/jls- >>> > >> > 13.html#jls-13.4.12 >>> > >> > > > >>> > >> > > ). >>> > >> > > >>> > >> > > For purposes of binary compatibility, adding or removing a >>> method or >>> > >> > > constructor m whose return type involves type variables (§4.4 >>> > >> > > <https://docs.oracle.com/javase/specs/jls/se7/html/jls- >>> > 4.html#jls-4.4 >>> > >> >) >>> > >> > or >>> > >> > > parameterized types (§4.5 >>> > >> > > <https://docs.oracle.com/javase/specs/jls/se7/html/jls- >>> > 4.html#jls-4.5 >>> > >> >) >>> > >> > is >>> > >> > > equivalent to the addition (respectively, removal) of the an >>> > otherwise >>> > >> > > equivalent method whose return type is the erasure (§4.6 >>> > >> > > <https://docs.oracle.com/javase/specs/jls/se7/html/jls- >>> > 4.html#jls-4.6 >>> > >> >) >>> > >> > of >>> > >> > > the return type of m. >>> > >> > > >>> > >> > > On 30 April 2017 at 15:30, Matt Sicker <boa...@gmail.com> >>> wrote: >>> > >> > > >>> > >> > > > https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html >>> > >> > > > >>> > >> > > > A reference to a method must be resolved at compile time to a >>> > >> symbolic >>> > >> > > > reference to the erasure (§4.6 >>> > >> > > > <https://docs.oracle.com/javase/specs/jls/se7/html/jls-4. >>> > >> html#jls-4.6 >>> > >> > >) >>> > >> > > > of the qualifying type of the invocation, plus the erasure of >>> the >>> > >> > > signature >>> > >> > > > (§8.4.2 >>> > >> > > > <https://docs.oracle.com/javase/specs/jls/se7/html/jls- >>> > >> > 8.html#jls-8.4.2 >>> > >> > > >) >>> > >> > > > of the method. >>> > >> > > > >>> > >> > > > I'm getting the impression here that the ABI follows the same >>> > rules >>> > >> as >>> > >> > > > using MethodHandle.invokeExact(). >>> > >> > > > >>> > >> > > > On 30 April 2017 at 15:21, Gary Gregory < >>> garydgreg...@gmail.com> >>> > >> > wrote: >>> > >> > > > >>> > >> > > >> On Apr 30, 2017 1:19 PM, "Oliver Heger" < >>> > >> oliver.he...@oliver-heger.de >>> > >> > > >>> > >> > > >> wrote: >>> > >> > > >> >>> > >> > > >> I think client code has to be recompiled, otherwise a >>> > >> > NoSuchMethodError >>> > >> > > >> is thrown. >>> > >> > > >> >>> > >> > > >> >>> > >> > > >> >>> > >> > > >> Dang it. Are you sure? >>> > >> > > >> >>> > >> > > >> Gary >>> > >> > > >> >>> > >> > > >> >>> > >> > > >> Oliver >>> > >> > > >> >>> > >> > > >> Am 30.04.2017 um 21:24 schrieb Matt Sicker: >>> > >> > > >> > That sort of thing changes the binary signature, but source >>> > >> > > >> compatibility >>> > >> > > >> > is retained. >>> > >> > > >> > >>> > >> > > >> > On 30 April 2017 at 14:20, Gary Gregory < >>> > garydgreg...@gmail.com> >>> > >> > > wrote: >>> > >> > > >> > >>> > >> > > >> >> Hi, >>> > >> > > >> >> >>> > >> > > >> >> Would it break BC to change StopWatch.stop() to return >>> "this"? >>> > >> > > >> >> >>> > >> > > >> >> Gary >>> > >> > > >> >> >>> > >> > > >> >> -- >>> > >> > > >> >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> > >> > > >> >> Java Persistence with Hibernate, Second Edition >>> > >> > > >> >> <https://www.amazon.com/gp/product/1617290459/ref=as_li_ >>> > >> > > >> >> tl?ie=UTF8&camp=1789&creative= >>> 9325&creativeASIN=1617290459& >>> > >> > > >> >> linkCode=as2&tag=garygregory-2 >>> 0&linkId=cadb800f39946ec62ea2b >>> > >> > > >> 1af9fe6a2b8> >>> > >> > > >> >> >>> > >> > > >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t= >>> > >> > > garygregory-20&l=am2&o=1&a= >>> > >> > > >> >> 1617290459> >>> > >> > > >> >> JUnit in Action, Second Edition >>> > >> > > >> >> <https://www.amazon.com/gp/product/1935182021/ref=as_li_ >>> > >> > > >> >> tl?ie=UTF8&camp=1789&creative= >>> 9325&creativeASIN=1935182021& >>> > >> > > >> >> linkCode=as2&tag=garygregory-20&linkId= >>> > >> > > 31ecd1f6b6d1eaf8886ac902a24de4 >>> > >> > > >> 18%22 >>> > >> > > >> >>> >>> > >> > > >> >> >>> > >> > > >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t= >>> > >> > > garygregory-20&l=am2&o=1&a= >>> > >> > > >> >> 1935182021> >>> > >> > > >> >> Spring Batch in Action >>> > >> > > >> >> <https://www.amazon.com/gp/product/1935182951/ref=as_li_ >>> > >> > > >> >> tl?ie=UTF8&camp=1789&creative= >>> 9325&creativeASIN=1935182951& >>> > >> > > >> >> linkCode=%7B%7BlinkCode%7D%7D& >>> tag=garygregory-20&linkId=%7B% >>> > >> > > >> >> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >>> > >> > > >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t= >>> > >> > > garygregory-20&l=am2&o=1&a= >>> > >> > > >> >> 1935182951> >>> > >> > > >> >> Blog: http://garygregory.wordpress.com >>> > >> > > >> >> Home: http://garygregory.com/ >>> > >> > > >> >> Tweet! http://twitter.com/GaryGregory >>> > >> > > >> >> >>> > >> > > >> > >>> > >> > > >> > >>> > >> > > >> > >>> > >> > > >> >>> > >> > > >> ------------------------------------------------------------ >>> > >> --------- >>> > >> > > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >>> > >> > > >> For additional commands, e-mail: dev-h...@commons.apache.org >>> > >> > > >> >>> > >> > > > >>> > >> > > > >>> > >> > > > >>> > >> > > > -- >>> > >> > > > Matt Sicker <boa...@gmail.com> >>> > >> > > > >>> > >> > > >>> > >> > > >>> > >> > > >>> > >> > > -- >>> > >> > > Matt Sicker <boa...@gmail.com> >>> > >> > > >>> > >> > >>> > >> >>> > >> >>> > >> >>> > >> -- >>> > >> Matt Sicker <boa...@gmail.com> >>> > >> >>> > > >>> > >>> > >>> > -- >>> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> > Java Persistence with Hibernate, Second Edition >>> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ >>> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >>> > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b >>> 1af9fe6a2b8> >>> > >>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= >>> > 1617290459> >>> > JUnit in Action, Second Edition >>> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ >>> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >>> > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac >>> 902a24de418%22 >>> > > >>> > >>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= >>> > 1935182021> >>> > Spring Batch in Action >>> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ >>> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& >>> > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% >>> > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= >>> > 1935182951> >>> > Blog: http://garygregory.wordpress.com >>> > Home: http://garygregory.com/ >>> > Tweet! http://twitter.com/GaryGregory >>> > >>> >>> >>> >>> -- >>> Matt Sicker <boa...@gmail.com> >>> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> >> JUnit in Action, Second Edition >> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> >> Spring Batch in Action >> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> > JUnit in Action, Second Edition > <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> > Spring Batch in Action > <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> JUnit in Action, Second Edition <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> Spring Batch in Action <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory