﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
11390	Switch to Java 8	Don-vip	Don-vip	"This ticket is the successor of #8465 :)

Like for Java 7 two years ago, Oracle released their final versions of Java 7 ('''7u79 and 7u80'''), and the same auto-update feature for Windows and OSX users. We already have a significant majority of users who run JOSM with Java 8:

All users:
{{{
Java Main Version --> 6 (598,  4.3%) 7 (5128, 37.3%) 8 (8009, 58.2%) 9 (22,  0.2%)
}}}

Recent versions (>=7001):
{{{
Java Main Version --> 6 (37,  0.3%) 7 (4370, 35.7%) 8 (7818, 63.8%) 9 (22,  0.2%)
OS:  FreeBSD (2,  0.0%) Linux (2749, 22.6%) Mac (911,  7.5%) OpenBSD (1,  0.0%) SunOS (3,  0.0%) Windows (8500, 69.9%)
}}}

Java 7 users:
{{{
OS:  FreeBSD (2,  0.0%) Linux (2394, 49.5%) Mac (129,  2.7%) OpenBSD (3,  0.1%) SunOS (3,  0.1%) Windows (2310, 47.7%)
}}}

Java 8 users:
{{{
OS:  Linux (567,  7.1%) Mac (786,  9.9%) Windows (6613, 83.0%)
}}}

Linux is clearly behind. Main distributions of Java 7 users are:

{{{
O        251 ( 5.2%) Linux Debian GNU/Linux 8.0 (jessie)
O        157 ( 3.2%) Linux Mint 17.1 Rebecca
O        102 ( 2.1%) Linux Ubuntu 14.04.1 LTS
O        809 (16.7%) Linux Ubuntu 14.04.2 LTS
O        154 ( 3.2%) Linux Ubuntu 14.10
O        222 ( 4.6%) Linux Ubuntu 15.04
}}}

Java 8 is not yet available in Debian Jessie or Ubuntu LTS, but it will be [https://lists.debian.org/debian-java/2015/04/msg00082.html released soon] in [http://backports.debian.org/changes/jessie-backports.html Jessie backports] then [https://bugs.launchpad.net/trusty-backports/+bug/1368094 Trusty backports].

The transition will be easier than Java 7:
- Java 8 is available and stable on all platforms
- There's no need this time to build a new package for OSX
- JOSM is [/jenkins/job/JOSM-Java8/ built and tested daily] with Java 8 for quite some time. It works fine and there's even a large performance gain in rendering: see [/jenkins/job/JOSM/jdk=JDK7/lastCompletedBuild/testReport/org.openstreetmap.josm.data.osm.visitor.paint/StyledMapRendererPerformanceTest/history/ Java 7 results] vs [/jenkins/job/JOSM/jdk=JDK8/lastCompletedBuild/testReport/org.openstreetmap.josm.data.osm.visitor.paint/StyledMapRendererPerformanceTest/history/ Java 8 results]

So, what's new?
* [http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html What's New in JDK 8]
* [http://openjdk.java.net/projects/jdk8/features JDK8 features]
* [http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html#A999198 Incompatibilities between Java SE 8 and Java SE 7]
* [http://www.oracle.com/technetwork/java/javase/8-known-issues-2157115.html Known Issues for JDK 8]

Other useful links:
* https://leanpub.com/whatsnewinjava8/read
* https://www.techempower.com/blog/2013/03/26/everything-about-java-8/

'''Proposed plan:'''
1. ~~Restore informative message ""''JOSM will soon no longer work with this version of Java...''"" on server side~~
1. ~~Ask OSX and Windows users to switch (revert/update [https://josm.openstreetmap.de/changeset/7001/josm/trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java this] and [https://josm.openstreetmap.de/changeset/7001/josm/trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java this])~~: done in r8923
1. ~~Wait for Debian Jessie backport~~: [https://twitter.com/smanux/status/600255297995853824 done]
1. ~~Wait for Ubuntu Trusty backport~~ It seems it will never happen
1. ~~Ask Linux users to switch (revert/update of [https://josm.openstreetmap.de/changeset/7001/josm/trunk/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java this])~~: done in r10166
1. Switch about one month after that"	enhancement	closed	major	16.07	Core		fixed	java8	stoecker bastiK simon04 skyper Klumbumbus
