Oracle Blog

Joseph D. Darcy's Oracle Weblog

JDK bug migration: components and subcomponents

One subtask of the JDK migration from the legacy bug tracking system to JIRA was reclassifying bugs from a three-level taxonomy in the legacy system, (product, category, subcategory), to a fundamentally two-level scheme in our customized JIRA instance, (component, subcomponent).
In the JDK JIRA system, there is technically a third project-level
classification, but by design a large majority of JDK-related bugs
were migrated into a single "JDK" project.
In the end, over 450 legacy subcategories were simplified into about
120 subcomponents in JIRA. The 120 subcomponents are distributed among 17
components. A rule of thumb used was that a subcategory had to have at
least 50 bugs in it for it to be retained.

Below is a listing the component / subcomponent classification of the
JDK JIRA project along with some notes and guidance on which OpenJDK
email addresses cover different areas.
Eventually, a separate incidents project to host new issues filed at
bugs.sun.com will use a slightly simplified version of this scheme.

The preponderance of bugs and subcomponents for the JDK are in
library-related areas, with components named foo-libs and
subcomponents primarily named after packages.
While there was an overall condensation of subcomponents in the
migration, in some cases long-standing informal divisions in core
libraries based on naming conventions in the description were promoted
to formal subcomponents. For example, hundreds of bugs in the
java.util subcomponent whose descriptions started with "(coll)" were
moved into java.util:collections. Likewise, java.lang bugs starting
with "(reflect)" and "(proxy)" were moved into java.lang:reflect.

The code for the deploy and install areas is not currently included in OpenJDK.

deploy

deployment_toolkit

plugin

webstart

install

auto_update

install

servicetags

In the JDK, there are a number of cross-cutting concerns whose
organization is essentially orthogonal to other areas. Since these
areas generally have dedicated teams working on them, it is easier to
find bugs of interest if these bugs are grouped first by their
cross-cutting component rather than by the affected technology.

docs

doclet

guides

hotspot

release_notes

tools

tutorial

embedded

build

hotspot

libraries

globalization

locale-data

translation

performance

hotspot

libraries

The list of subcomponents will no doubt grow over time, but my inclination is to resist that growth since the addition of each subcomponent makes the system as a whole more complicated and harder to use.

When the system gets closer to being externalized, I plan to post more blog entries describing recommended use of various custom fields in the JDK project.