The open source Java community primarily operates at the OpenJDK and AdoptOpenJDK projects.
OpenJDK (http://openjdk.java.net/) is the place to collaborate on an open-source implementation of the Java Platform, Standard Edition (http://www.oracle.com/technetwork/java/javase/overview/index.html), and related projects.
IBM has developed an independent implementation of a Java Virtual Machine, codenamed "J9" which we want to bring to the open source community.
We want to open source this technology with a fully open governance model so that the entire Java community has the freedom to both use and contribute to this technology. IBM will continue its development activities for J9 directly in this open project and welcomes anyone else who wants to participate.
This project implements Java-specific semantics for the technology components provided at the Eclipse OMR project. This project can then be used as an extension to OpenJDK providing an alternative VM solution.
OpenJ9 is a high performance, enterprise calibre, flexibly licensed, openly governed cross platform Java Virtual Machine extending and augmenting the runtime technology components from the Eclipse OMR project (www.eclipse.org/omr) and OpenJDK project (openjdk.java.net).
It is highly optimized for fast startup, low memory footprint, quick ramp-up, and excellent throughput performance, both in dedicated as well as cloud deployments.
We want to open source this technology with a fully open governance model so that the entire Java community has the freedom to both use and contribute to this technology. IBM will continue its development activities for J9 directly in this open project and welcomes anyone else who wants to participate.
This project will be a source code project in that it will not distribute its own binaries. The main reason for this is that fully-fledged Software Developer Kit for Java requires class libraries found at OpenJDK.
We would like to see binaries made available at AdoptOpenJDK. These binaries will also leverage tests and test infrastructure built at AdoptOpenJDK to become fully integrated with the rest of the Java community's activity around building OpenJDK and Java SE Platform technology.
OpenJ9 is an independent implementation from OpenJDK and therefore does not share any code with anything at OpenJDK which is GPL licensed. There are modifications needed at the OpenJDK class library level to interface with the OpenJ9 code. Those modifications, because they are based on OpenJDK classes, are GPL licensed and will not reside in this project. These will instead reside in a separate / independent project and managed separately.
Eclipse OpenJ9 will be dual Licensed:
- Apache License, Version 2.0
- Eclipse Public License 2.0.
Note that the EPLv2 license (at the point of submission of this proposal) is not yet approved.
There are two primary reasons Eclipse represents the best choice to open source the J9 JVM:
1) The core components of J9 are already present at the Eclipse foundation as part of the Eclipse OMR project
2) We want the project to be openly governed with flexible licensing terms.
Licenses:
Apache License, Version 2.0
Eclipse Public License 2.0
Since some refactoring work between Eclipse OMR and OpenJ9 will continue after the creation of this project, we need the ability to move code back and forth freely between these projects. Eclipse OMR is currently dual licensed under EPLv1 and AL2.
Our initial focus will be to open source the J9 virtual machine that IBM uses in its Java compliant products. Following that, our goal is to improve the quality and capabilities of the technology for its users.
Our current plan would be for the code contribution to be made no later than August 2017, so our hope is that the OpenJ9 project can reach the creation milestone ahead of that time.
Many active participants at Eclipse OMR, OpenJDK and AdoptOpenJDK from Java builders, Java developers to JVM developers have expressed interest in this technology since our intention to open source J9 was announced at JavaOne in 2016.
Our initial focus will be to open source the J9 virtual machine that IBM uses in its Java compliant products.
The initial set of committers will be from IBM due to their expertise with the code and because IBM will be moving their currently internal JVM development efforts directly to this project. We welcome additional contributors and hope to expand the list of committers quickly.
- Log in to post comments
Ready for review
Submitted by Jonathan Woodford on Tue, 06/27/2017 - 09:52
This proposal is ready for review.