[ 
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)

Reply via email to