Java Objectives for Precise

Registered by James Page

Discussion around Java related objectives for Precise:

 - OpenJDK 7 and when to switch the default-jdk in Ubuntu
 - General Java housekeeping
 - Maven 3 progress and transition

Blueprint information

Status:
Complete
Approver:
Steve Langasek
Priority:
Undefined
Drafter:
James Page
Direction:
Approved
Assignee:
James Page
Definition:
Approved
Series goal:
Accepted for precise
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-12.04-beta-1
Started by
James Page
Completed by
James Page

Related branches

Sprints

Whiteboard

Current Status:

Current rate of progress of resolving FTBFS with Java 7 is slow; upstreams are slowly updating for Java 7; OpenJDK7 on ARM is still incomplete.

openjdk-6 will continue to be the default-java for precise.

Previous Status:

20111125: Further analysis of rebuild bugs (90)

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+encoding
(40)

    error: unmappable character for encoding ASCII either during javac
or javadoc.

    This issue constitutes that largest number of build failures;
something has changed with respect to what OpenJDK 7 considers to be an
encoding error rather than warning.

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+api
(14)

    Package does not implement new public API requirements for Java 7;
normally something JDBC related and relatively easy to fix.

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+lang
(10)

    Some sort of language handling change (typically generics handling)
causes the build failure e.g:

        error: name clash: boxedFor(Class<? extends Boxed>,long) in
org.gnome.gdk.Plumbing and boxedFor(Class<?>,long) in
org.gnome.glib.Plumbing have the same erasure, yet neither hides the other

    Again needs fixing upstream - I suspect that these again will follow
specific patterns with stock fixes.

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+maven
(6)

    Maven 2 not parsing warning error message causing failure:
    could not parse error message: warning: [options] bootstrap class
path not set in conjunction with -source 1.5

    Bug in Maven 2? Might be easily resolvable.

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+priv-api
(4)

    Package makes use of private API no longer present or changed in
Java 7; harder to fix as requires use of different API or significant
refactoring; best worked out with upstream.

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+java-home
(4)

    Problems with JAVA_HOME in rules not matching default-java i.e.
using openjdk6 explicitly, fixable in packaging

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+test
(3)

    Failure in test suite caused build failure.

https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+fop
(3)

    [exec] org.apache.fop.apps.FOPException: Can't load standard
profile: sRGB.pf

    Related to
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641530 in openjdk-6

20111111: Rebuild of packages with default-jdk set to openjdk-7 - bugs reported in launchpad:
  https://bugs.launchpad.net/ubuntu/+bugs?field.tag=java7-ftbfs

Summary of objectives for Precise:

1) OpenJDK 7 as default-java
- This would be the ideal solution as OpenJDK7/Oracle Java 7 are much more closely aligned than OpenJDK6/Oracle Java 6.
- However work does need to be done to ensure compatibility across the archive
- Review will take place in January to assess progress towards this goal and determine default Java version for precise.

Full session notes from UDS-P: http://pad.ubuntu.com/uds-p-foundations-p-java

Work items for precise-alpha-1:
[james-page] Complete rebuild test with precise and file bugs in launchpad: DONE

Work items for precise-alpha-2:
[james-page] Catchup with debian-java team with respect to Java7 plans: DONE
Testing of server workloads (zookeeper,tomcat,jenkins,eucalyptus,hadoop): POSTPONED
Testing of desktop applications (libreoffice): POSTPONED

Work Items:
Review state of testing and compatibility with Java7 at platform rally in January: DONE
Review state of ARM VM's at platform rally in January: DONE
Setup icedtea-web for openjdk-7: DONE
Work on resolving packaging issues: POSTPONED
Report compatibility issues to upstreams for resolution: POSTPONED
Re-introduce thumb2 port for ARM for Java6: DONE
Update Java Ubuntu pages to detail what's happened with Sun/Oracle Java: DONE

(?)

Work Items