You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Graham Wallis (JIRA)" <ji...@apache.org> on 2017/05/31 10:02:04 UTC

[jira] [Commented] (ATLAS-1849) Atlas should prereq Java 8

    [ https://issues.apache.org/jira/browse/ATLAS-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16030929#comment-16030929 ] 

Graham Wallis commented on ATLAS-1849:
--------------------------------------

Any of the graph providers other than titan0 pre-req Java 8.
The way the titan1 code is built today is by activating a different maven profile if the build is running with a 1.8 JDK - in which case the titan1 is compiled and packaged. If the build is running with a 1.7 JDK then an empty jar is built instead, in order to satisfy the build dependency; but of course such a build (JDK 1.7 and titan1) is not functional. A similar profile-based approach could be adopted for the other graph providers - e.g. JanusGraph.  Or we could adopt a different approach in the poms and just refuse to build with an invalid combination of JDK and graph provider. I'm not sure I see any advantage in building a combination that does not function; if there is merit in doing so, we could continue to use the 'empty jar' approach - or we could place a hard dependency on Java 8 - such that the other JIRAs depend on this one. 

> Atlas should prereq Java 8
> --------------------------
>
>                 Key: ATLAS-1849
>                 URL: https://issues.apache.org/jira/browse/ATLAS-1849
>             Project: Atlas
>          Issue Type: New Feature
>            Reporter: Nigel Jones
>
> Atlas should move to assume Java 8 in order to remain current
> Java 7's last official release was in April 2015
> Java 8 was released in March 2014 and is the current release
> Java 9 is currently targetted for release in July 2017
> Various new components we wish to integrate, such as Janus Graph now quite sensibly depend on, and can take advantage of, Java 8. Whilst Atlas does build cleanly under java 8, the new capabilities cannot be used and more crucially any components requiring it can't be so easily integrated into the source. With Java 7 way out of focus there are more likely to be security exposures too.
> One of the current main environments Atlas is supported in is Hadoop. Hadoop 2.x is build with Java 7, though the very latest releases do at least support build with Java 8. Hadoop 3 which prereqs java 8 is due for release in August 2017
> However other environments in the enterprise need not be constrained by this dependency
> We need to decide how we will tackle this dependency change & mitigate the impacts - for example
>  * we stay as-is until hadoop 3 is current/into 2018 (in my view too long)
>  * we go all out on java 8 in the current trunk, and branches are cut for java 7 approach (I worry this is too much work to dual-fix)
>  * we create multiple build profiles and carefully allow java8 code in as needed, but in such a way as a java7 version can still be built, albeit missing out on selective functionality - this could still be tricky, and has run-time dependency differences
>  * if profiles we decide on default (once working I'd suggest 8...)
> Thoughts welcome :-)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)