groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cédric Champeau <cchamp...@apache.org>
Subject Re: trySetAccessible for Java 9
Date Wed, 05 Jul 2017 17:10:02 GMT
Thanks Uwe, patches/PRs are very welcome :) I did miss your suggestion,
sorry I wasn't able to follow everything on this list lately.

The risk I saw was that the MethodHandle class wasn't always available, but
for 2.4+, it's not a problem!


2017-07-05 19:07 GMT+02:00 Uwe Schindler <uschindler@apache.org>:

> Hi,
>
>
>
> I made this suggestion about a month ago! In Lucene/Elasticsearch we do
> everything with MethodHandles that requires new Java 9 APIs (currently
> Elasticsearch’s Painless Script engine is the first one that uses indy
> string concats!). In general I would not use an if/then/else construct at
> all. Just try to get a MethodHandle to trySetAccessible(), if this fails
> get a MethodHandle to a local/private method with same signature.
>
>
>
> Finally you may need to adapt the MethodHandle to the right types and then
> call it _*always*_ with correct casting to make javac use correct types.
> Be sure to make the MethodHandle a static final constant somewhere! This
> removed the need for a if/then/else on every call.
>
>
>
> I may provide a patch, if you like. I’d just need some directions where to
> look at. Should be a 10 liner.
>
>
>
> Uwe
>
>
>
> -----
>
> Uwe Schindler
>
> uschindler@apache.org
>
> ASF Member, Apache Lucene PMC / Committer
>
> Bremen, Germany
>
> http://lucene.apache.org/
>
>
>
> *From:* Cédric Champeau [mailto:cchampeau@apache.org]
> *Sent:* Wednesday, July 5, 2017 6:55 PM
> *To:* Russel Winder <russel@winder.org.uk>
> *Cc:* dev@groovy.apache.org
> *Subject:* Re: trySetAccessible for Java 9
>
>
>
> Actually I'm realizing that the `MethodHandle` API came with Java 7. So we
> _can_ compile against it. So I guess an option is to have the method handle
> redirect to `trySetAccessible` if the detected runtime is Java 9, and a
> backport method if < 9.
>
>
>
>
>
>
>
> 2017-07-05 18:41 GMT+02:00 Russel Winder <russel@winder.org.uk>:
>
> On Wed, 2017-07-05 at 18:28 +0200, Cédric Champeau wrote:
> >
> […]
> > Any suggestion?
>
> How about leave Groovy 2.x as a "can only build on JDK8", and put all
> effort
> for a JDK9 build on Groovy 3.x which, as I understand it requires JDK8 as a
> runtime. This would seem to minimise hassle and maximise forward-looking
> benefit. Unless I am missing something.
>
> --
> Russel.
> ============================================================
> =================
> Dr Russel Winder     t:+44 20 7585 2200   voip:sip:
> russel.winder@ekiga.net
> 41 Buckmaster Road   m:+44 7770 465 077   xmpp:russel@winder.org.uk
> London SW11 1EN, UK  w: www.russel.org.uk skype:russel_winder
>
>
>

Mime
View raw message