in sling we use the animal sniffer plugin for exactly this purpose [1]. it checks that the compiled codes only uses signatures available in the configured jdk.
stefan [1] http://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/ >-----Original Message----- >From: Tomek Rekawek [mailto:[email protected]] >Sent: Monday, September 12, 2016 1:06 PM >To: [email protected] >Subject: Re: Minimum JDK version > >Hi, > >the interesting thing here is that we actually compile the code with - >source and -target=1.6 in these branches [1][2]. However, the javac still >uses the rt.jar coming from the current JDK and it does contain the >java.nio package. It seems that the only way to check the API usage >correctness is to switch to JDK 1.6. > >Or maybe there’s some way to validate whether the used packages matches >selected JDK version (eg. via some plugin reading the @since javadocs in >API classes)? > >Regards, >Tomek > >[1] https://github.com/apache/jackrabbit-oak/blob/1.4/oak- >parent/pom.xml#L97 >[2] https://github.com/apache/jackrabbit-oak/blob/1.2/oak- >parent/pom.xml#L95 > > >-- >Tomek Rękawek | Adobe Research | www.adobe.com >[email protected] > >> On 12 Sep 2016, at 11:42, Davide Giannella <[email protected]> wrote: >> >> Hello team, >> >> following the recent mishap about JDK version and releases highlighted >> two main issues: >> >> cannot find jenkins for anything that is not 1.6 >> >> we should enforce the build to build with the minimum required JDK. >> >> Now for the second point, this is easily achievable. What we have to >> decide is whether we want this enforcement done on all the builds, or >> only during releases build and checks. >> >> I'm for having it enforced on all the builds. >> >> Thoughts? >> >> Davide >> >>
