Transition the archive to Java 7
Java 7 was released last year and is now the primary development/support focus for both OpenJDK and Oracle.
Java 6 has limited support lifetime left.
We should transition all Java packages in the archive to OpenJDK 7 and endeavour to drop OpenJDK 6 from the archive.
Blueprint information
- Status:
- Complete
- Approver:
- Steve Langasek
- Priority:
- Medium
- Drafter:
- James Page
- Direction:
- Approved
- Assignee:
- James Page
- Definition:
- Approved
- Series goal:
- Accepted for quantal
- Implementation:
- Implemented
- Milestone target:
- ubuntu-12.10-beta-2
- Started by
- James Page
- Completed by
- James Page
Whiteboard
Updates:
http://
Packages which won't be transitioned for quantal:
shogun: WON'T FIX - incompatible bytecode and very long build.
rjava: WON'T FIX - involved as needs a build system change as well in rcran
scala: WON'T FIX - lots of code failures - may need to stick with 6
uwsgi: Specifically targets and provides java 6 packages - needs a full transition
visualvm: WON'T FIX - specifically targets openjdk-6 and won't build with openjdk-7
wims: BUG RAISED - compiler flags all over the place not compatible with openjdk-7
UDS Discussion:
OpenJDK7 on non x86 architectures
- ARM ASM-interpreter and Thumb2 JIT ported to #OpenJDK 7u3 Hotspot 22, IcedTea 7 2.1.1 branch, by chrisphi, aph & adinn at Red Hat.
- The only problem is that there is no IcedTea 7 2.1.1 release planned by the icedtea team. Ubuntu are currently providing a pre-release build for arm using this 2.1.1 branch.
- The good news: the assembler port and thumb2 jit work https:/
- all in all my, xranby, experience is that the openjdk 7 using the arm port hits no regression in usage compared to the openjdk 6 port.. so its sane to let distributions default to it and keep working on TCK convergence
Testing
- Focus on Java applications - in archive
- tomcat7
- groovy
- scala
- clojure
- activemq
- jetty
- solr
- jenkins
- Other interesting testing:
- eucalyptus
- hadoop
Coordination with Debian
- if there are any arm experts who like to work on raspberry pi, it would be good to get the JIT translated from thumb2 to arm to get a JIT running on ARMv4+ to speedup the jvm on Raspberry PI like hardware.
- Usertags will be used when submitting bugs back to Debian to identify transition bugs.
- Raise awareness of OpenJDK6 support issues with Debian Security Team.
Support for compiling Java 6 source code using OpenJDK7
- This can be done using -source/-target AND the rt.jar from OpenJDK6 - this could be an option during transition for hard packages.
- OpenJDK 6 will be retained in universe for 12.10.
Useful links:
https:/
https:/
http://
User Stories:
Frank is developing an application using Java 7; he is able to both build his application on Ubuntu 12.10 and recommend that his clients use Ubuntu 12.10 to host as this provides a fully supported solution.
Joanna is implementing a application which requires Java 6; she is able to make use of the Java libraries provided in Ubuntu as they provide backwards compatibility with Java 6 despite the fact that OpenJDK7 is the default java implementation.
Curtis is developing a new applications which use the new Java 7 invoke_dynamic features - he also wants to run this on ARM based architectures. Using Ubuntu 12.10 he is able to fullfil both of his requirements.
Brian is the maintainer of a Java based application in Ubuntu. His upstream can't migrate to Java 7 in the 12.10 release cycle but he's able to maintain his package using the deprecated OpenJDK6 packages from Ubuntu universe.
Assumptions:
- All Java packages in main can be migrated to Java7 during the 12.10 development cycle.
- Java classes should be complied to be backwards compatible with previous Java versions
- OpenJDK7 on ARM will support invoke_dynamic pre-release of 12.10.
- OpenJDK6 will remain in Universe for 12.10 and won't get much in the way of updates.
Test Plan:
- Rebuild of all B-D default-jdk packages to pickup any source incompatibilities with OpenJDK7
- Updates to all B-D openjdk-6 package in main to pickup any source incompatibilities
- Call for testing of Java applications mid-cycle.
- Targetted testing of Java applications in main:
- Libreoffice
- Tomcat7
Release Notes:
Ubuntu 12.10 ships OpenJDK7 as the default Java implementation. This brings improved performance, new features and better compatibility with other Java 7 implementations.
Use of the OpenJDK6 is now deprecated and the openjdk-6-* packages in universe will not be provided in future releases of Ubuntu.
Work Items
Work items for quantal-alpha-1:
[james-page] file a bug against lintian to validate backwards compatibility of jar/classes and niels-thykier will handle it: DONE
[james-page] Communication and documentation of patch submission process for fixes back to Debian: DONE
[niels-thykier] Check awareness of OpenJDK6 support lifetime with Debian Security Team: DONE
Work items for quantal-alpha-2:
[james-page] Rebuild every java package in main with the OpenJDK7 default (end of May) using no-change uploads: DONE
[james-page] Test tomcat7 with OpenJDK7: DONE
Work items for quantal-alpha-3:
[james-page] Update icedtea-web to use openjdk-7 as default/preferred: DONE
[doko] Update openjdk-7 to install at higher priority than openjdk-6: DONE
Work items for ubuntu-
[james-page] Call for testing of java applications mid cycle: DONE
[bjoern-michaelsen] Test libreoffice with OpenJDK7 (3.6.0~rc4-0ubuntu3 build with openjdk7 and successfully completes subsequenttests: DONE
Work items for ubuntu-
[james-page] Run bytecode lintian check on all java packages in archive: DONE
[james-page] Transition packages from openjdk-6 to openjdk-7: DONE
Work items:
[james-page] Improve comms between distro and OpenJDK/IcedTea upstream about Ubuntu requirements: POSTPONED
Fix FTBFS and bugs: DONE