On Fri, Oct 31, 2014 at 11:43 AM, Deepak Bhole <dbhole@redhat.com> wrote:
* Christopher <ctubbsii-fedora@apache.org> [2014-10-31 11:37]:
> On Fri, Oct 31, 2014 at 5:35 AM, Mat Booth <fedora@matbooth.co.uk> wrote:
>
>     On 31 October 2014 08:18, Max Rydahl Andersen <manderse@redhat.com> wrote:
>
>
>                     Fedora 20 used to have 3 different Java versions (5, 7, 8).
>
>
>                 ok, why no Java 6 ?
>
>
>             Besides many technical reason the biggest one is non-technical in
>             my eyes - no one volunteered to do it. You know it's always a
>             matter of "who will do the work?". I'm pretty sure that if someone
>             jumps in and say "Hey, I'll maintain Java 6, fix problems/adopt
>             Java 6 to changes in the OS if neeeded, help strengthen the
>             switching between JREs, go through the Java projects(shipped in
>             Fedora) and help them properly set their targets in build scripts
>             so builds properly work on Java 6 and etc" there will be no
>             objection to having Java 6. :)
>
>
>         Fair enough.
>
>
>                     OpenJDK 7
>                     was removed from F21 because its support will end before
>                     F21 EOL and
>                     we
>                     don't want to ship software not supported by upstream.
>
>
>                 So for users most stable thing is to use Oracle JDK builds
>                 instead which
>                 are and will stay available ?
>
>
>             Users can still try to use it but it's something that they have to
>             do on their own - download, extract, set PATH, etc. Just like on
>             every platform with Oracle JVM.
>
>
>         Yeah, this is similar experience for developers on all other platforms
>         so its expected/assumed.
>
>
>                 No separate repo with "binaries that is currently supported but
>                 will not
>                 stay supported for all of fedora 21 lifetime" ?
>
>
>             1. Fedora can not legally redistribute Oracle JDK.
>
>
>         I know - hence why I would think having a openjdk 7 build would make
>         sense.
>
>
>             2. Fedora can not distribute something that Fedora developers can
>             not support if there is a problem in it (as it is with Oracle JDK).
>
>
>         so *any* package that is known to be marked as EOL sometime in the
>         future before the upcoming Fedora EOL's gets removed from that future
>         Fedora release ? Even that Java 7 is still the most used and targeted
>         Java version ?
>
>
>
>     Maybe I misunderstand the use-case, but your projects can still target Java
>     7 even if Eclipse is running on Java 8.
>      
>
>  
> That's not entirely true. This only works if a true JDK7 exists on the system.
> While newer JDKs are able to target older runtimes, there are cases where one
> can introduce source-incompatible changes that work in a newer JDK, but not in
> an older JDK. This matters for collaborating on projects where some team
> members are not using the newer JDK to target the older runtime. For instance,
> this happened with JDK7/JDK6 on my team... JDK7 allows certain use of generics
> syntax that properly compiles to JDK6 target, and validates in Eclipse as JDK6
> source-compatible, but the actual JDK6 compiler treats as an error. I had to
> abandon my use of Fedora 20 as a development environment for our project, and
> revert to CentOS6 in order to guarantee I wasn't introducing source that was
> incompatible with JDK6. Not making older JDKs (even stale ones) available is
> likely to discourage Java developers from using Fedora as a development
> platform.
>

This is a bug -- did you file it with us? If so, what was the
conclusion? If -target 1.6 was specified, it should have been able to
run it on 6 without issues and any problems encountered are certainly
bugs.


There is no issue with -target 1.6; the issue was with strict source compatibility with 1.6. I can't recall the specifics (it had something to do with generic type checking, because 1.7's javac can make better inferences), but that's outside the scope of this issue. The main point, as it relates here, is that there may not be strict compatibility between javac provided by different JDKs, even if javac makes a best effort attempt to parse older source. A more obvious problem is the lack of bootstrap classpaths for older -source/-target, which is known to be likely to create compiled code that is not capable of running in an older JVM (this doesn't matter if you're developing for the latest Fedora, but it matters if you're using the latest Fedora to develop for other platforms, like RHEL or Android).
 
Deepak

> Personally, unlike the original poster, I don't care which JVM Eclipse is
> running on, itself (OpenJDK 8, or whatever is latest, works for me). But, I do
> care about which JDKs are available on the system that Eclipse can launch to
> build projects, because that affects whether I can use Fedora as my development
> platform on team projects where some team members are using older JDKs (which
> should be fine, until the project bumps its minimum JVM dependency).
>