On Fri, Oct 31, 2014 at 11:43 AM, Mat Booth <fedora@matbooth.co.uk> wrote:


On 31 October 2014 15:37, Christopher <ctubbsii-fedora@apache.org> wrote:
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.


Doesn't Eclipse's "Execution Environments" solve this in your case? When you select the Java 6 EE for example, then Eclipse should tell you when you attempt to use syntax or features that are not available in Java 6. It's arguably a bug in Eclipse if this is not true.
 

No, that's the problem. I don't think Eclipse can guarantee compatibility for an older version of Java if it can't find a strictly-compatible "Installed JRE" to use as the Execution Environment. It will map a newer, "compatible", version of Java to build projects which specify the older version, but it will complain with loud warnings about not being able to find a "strictly compatible" JRE ("Build path specifies execution environment XXXXXX. There are no JREs installed in the workspace that are strictly compatible with this environment."). From what I understand, this error message is really warning about the lack of a compatible bootstrap classpath (-bootclasspath) when cross-compiling.

That's precisely why it's so important to have other JDKs available.... so Eclipse can use these as strictly compatible execution environments for cross-compiling to an older version.
 
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).


--
java-devel mailing list
java-devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/java-devel



--
Mat Booth
http://fedoraproject.org/get-fedora