JDK-8064530 : JEP 258: HarfBuzz Font-Layout Engine
  • Type: JEP
  • Component: client-libs
  • Sub-Component: 2d
  • Priority: P3
  • Status: Closed
  • Resolution: Delivered
  • Fix Versions: 9
  • Submitted: 2014-11-11
  • Updated: 2019-10-25
  • Resolved: 2016-02-15
Related Reports
Relates :  
Description
Summary
-------

Replace the existing ICU OpenType font-layout engine with HarfBuzz.


Motivation
----------

An [OpenType](http://www.microsoft.com/typography/otspec/) layout engine,
such as [ICU](http://userguide.icu-project.org/layoutengine) or
[HarfBuzz](http://harfbuzz.org), provides script-aware code to process
certain font tables required for the correct rendering of text for
scripts such as Arabic and Indic. Without that support the rendering of
text in those scripts is not just incorrect, but illegible.

The ICU OpenType layout engine is no longer actively developed and IBM,
the project owner, intends to replace it with HarfBuzz in the
[ICU project](http://site.icu-project.org/).  The JDK must follow suit,
or else be left using an unsupported and out-dated library.


Description
-----------

Incorporate into the JDK a copy of the HarfBuzz library in the same
manner as is done for ICU and other open-source libraries in the JDK such
as `libpng`. Integrate that native library to support the Java APIs and
implementation required for the layout of complex text as a replacement
for ICU.


Alternatives
------------

There are no viable open-source alternatives to HarfBuzz. Libraries such
as Pango are now being re-implemented as wrappers around HarfBuzz.


Risks and Assumptions
---------------------

There may be some minor rendering differences between the libraries, as a
result of different implementations and a use of more up-to-date OpenType
specifications.

Comments
I've updated the scope of this JEP from "SE" to "Implementation" since this JEP replaced the underlying implementation of the font-layout engine and there were no changes to the Java SE specification. (Verified with Phil.)
15-04-2016

The JEP is Targeted -- it means you have green light to push reviewed code to JDK 9 repo
01-07-2015

SQE testing due date is August 10
16-06-2015

Steven, Thanks! This is SQE's task to track: JDK-8067134
26-02-2015