[fedora-java] Eclipse Luna on Fedora 21 and JDK 8 requirement

Christopher ctubbsii-fedora at apache.org
Fri Oct 31 18:20:31 UTC 2014


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

>
>
> On 31 October 2014 15:37, Christopher <ctubbsii-fedora at apache.org> wrote:
>
>> On Fri, Oct 31, 2014 at 5:35 AM, Mat Booth <fedora at matbooth.co.uk> wrote:
>>
>>> On 31 October 2014 08:18, Max Rydahl Andersen <manderse at 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 at lists.fedoraproject.org
>> https://admin.fedoraproject.org/mailman/listinfo/java-devel
>>
>
>
>
> --
> Mat Booth
> http://fedoraproject.org/get-fedora
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/java-devel/attachments/20141031/cd1eae26/attachment.html>


More information about the java-devel mailing list