Apache Harmony is retired at the Apache Software Foundation since Nov 16, 2011.

The information on these pages may be out of date, or may refer to resources that have moved or have been made read-only.
For more information please refer to the Apache Attic

Roadmap and TODO

Our roadmap and goals are always subject to discussion on the developer's list. As new people join with new focuses and interests, the things we do as a project adapt.

If you have an idea, come and join the community and talk about it.

Note

You need to subscribe to the mailing list first.

Back to top

High-Level Roadmap

Our project goal is an open source, compatible implementation of Java SE. It's a major task being done by a community of volunteers. Thus, the following is an approximate roadmap for what the project hopes to achieve in the next year. ASF and Harmony keeps trying to secure TCK license from the Java SE JSR spec lead, and once it's done we will add TCK certification target dates into the roadmap.

Back to top

TODO List

The following is a collection of things that the project community has listed as needing to be done. This list is not exhaustive. If you wish to add an item to this list, or discuss or even volunteer to work on an item, please join us on the Harmony mail list.

The following sections describe the high-level areas of effort, and tasks that have been identified for those areas.

  1. General
  2. Build Engineering
  3. Build-Test Framework
  4. Performance, Stability and Reliability
  5. Class Library
  6. DRLVM
  7. Porting Matrix
  8. Application-Driven Project Advancement

General

1. JDK tools

As part of the JDK that Harmony will distribute, we'll include the full set of tools that Java programmers expect to find in any JDK. For maximum portability, we plan to write all of the tools in Java, using the Harmony launcher as the portable native code that starts the VM and invokes the tool. Currently, we have the following completed:

But we need the following:

Again, we have the portable launcher framework - we just need volunteers.

2. Modularity

From the beginning of our project, we've had a strong interest and focus on modularity. This dedication has paid off in our class library development, as we've been able to evaluate competing implementations of RMI and math, as well as allow developers to isolate development on one module.

The modularity story for the class library is reasonable complete at this point, as we have completed the modularization of the native code as well. However, there is plenty of work to be done with our virtual machines - the goal being able to define a set of standard interfaces to which modular VM components can be written.

Build Engineering

Build engineering in Harmony is a complicated subject, as we are building on multiple platforms in multiple languages. So far, we have support for our Windows and Linux ports, but our porting plans indicate that we'll need to revisit given the different toolchains. There are many things to do in this area, many not listed.

Build-Test Framework

The goal of this part of the Harmony project, the build-test framework, is make it easy for anyone to setup the CI infrastructure for the project and submit automated reports on building and testing of the project codebase on that platform.

There is an implementation in place in SVN and it is continuously being improved. The implementation was installed and is running on a number of different platforms. E-mail alerts are sent to a specially created mailing list. But much more work is needed. Ideas include:

Performance, Stability and Reliability

Our goal is a high-performance, stable and compatible implementation of Java SE 5. While passing the TCK is a measure of compatibility with the standard, performance and stability is something that must be achieved independently. We are looking to:

  1. Define a set of stress, stability and performance tests that are freely available and easy to automate in our build-test framework.
  2. Measure and monitor baseline performance using these tests with our standard builds across our supported platform matrix.
  3. Identify and fix stability and performance problems.

Class Library

The class library is an important (and large!) part of the Java SE platform. While we have made significant progress so far (>99% of Java 5 at last check), there are many, many interesting things remaining to be done.

The work on Java 6 features is underway in a dedicated branch.

DRLVM

VM is a critical part of the Java SE platform. As usual, there are many, many interesting things remaining to be done.

Porting Matrix

Another motivation of the Harmony project is to provide a portable implementation that is available on many platforms and operating systems. See Supported Platforms for a list of operating systems and architectures that HDK runs on.

Application-Driven Project Advancement

As we now have a fairly usable class library and virtual machine, we wish to make it easy for the broad Java user community to help us ensure that the Harmony class library supports the classes necessary for the most popular and used applications out there. While we will complete the class library, tools like this will help us do it in a way that prioritizes the most useful first, enabling even more users to test our software and participate in the project. So far, there have been a few tools donated, but no concerted effort to package for ease of use.

Back to top