Subcategories under OpenJDK

The HotSpot code base has been worked on by dozens of people, over the course of 10 years, so far. (That's good and bad.) It's big. There are nearly 1500 C/C++ header and source files, comprising almost 250,000 lines of code. In addition to the expected class loader, bytecode interpreter, and supporting runtime routines, you get two runtime compilers from bytecode to native instructions, 3 (or so) garbage collectors, and a set of high-performance runtime libraries for synchronization, etc.

Java SE contains several technologies that allow Java programs to be debugged, profiled, monitored and managed. These technologies allow a tool written in the Java programming language to obtain information from the Java Virtual Machine(JVM) in a different process. These technologies typically:

* Contain Java code in the J2SE repository
* Contain native code in the J2SE repository
* Contain native code in the HotSpot repository. This code implements interfaces that are used by the code in the J2SE repository. This typically involves some form of inter-process communication.

The term "Security" has broad meanings and interpretations. It spans a wide range of areas, including cryptography, public key infrastructure, secure communication, authentication, and access control. The security component thus comprises a large set of APIs, tools, and implementations of commonly-used security algorithms and protocols.

As security concepts such as permissions are tightly interwoven throughout the entire Java source code, these component pages do not address issues in the other primary component areas (language features and virtual machine implementations, core libraries, graphics subsystems, hotspot, serviceability, etc). For a more detailed treatment, please see the corresponding component pages.

The primary emphasis of these pages is to explore the core security components source bases, and hopefully, get developers up to speed quickly.

The Sound API is a low-level API for creating, modifying, and controlling the input and output of sound media, including both audio and MIDI (Musical Instrument Digital Interface) data. The JavaSound API provides explicit control over the capabilities normally required for sound input and output, in a framework that promotes extensibility and flexibility.

Swing is a Graphical User Interface (GUI) API, offering a set of components that can be used to build rich desktop interfaces. This includes basic elements such as windows, buttons, scrollbars, etc., as well as more complex compound objects such as file choosers, color choosers and combo boxes.

The source code for the networking part of the the core libraries is spread over a few hundreds files making for a total of, approximately, 70,000 lines of code. 50,000 of these are java code, while the rest is native (i.e. C) code. While this is not massive, due to the tricky nature of cross-platform support, some guidance is needed before you take upon the the task of tinkering with that beast.

We all want the Java platform to be robust, performant, stable, and high quality. You can help contribute to quality development, including review and feedback of test specifications and methodologies, test execution, and in the future development of test suites or test tools.

We all want the Java platform to be robust, performant, stable, and high quality. You can help contribute to quality development, including review and feedback of test specifications and methodologies, test execution, and in the future development of test suites or test tools.

Internationalization (abreviated "i18n") is the process of designing software so that it can be adapted (localized) to various languages and regions easily, cost-effectively, and in particular without engineering changes to the software. Localization is performed by simply adding locale-specific components, such as translated text, data describing locale-specific behavior, fonts and input methods.

The OpenJDK source distribution includes NetBeans projects and accompanying ant build scripts for working on the JDK. Each project focuses on a particular area of the JDK, such as the javac compiler or the Swing user interface components. In general, the projects support the expected kinds of things you'd do in NetBeans with any other body of code: editing, testing, debugging, and so on.

Superpackages are a new language construct for information hiding that is being defined by JSR 294, and it defines the linguistic unit of modularity in the Java programming language. The Java Module System defined by JSR 277 builds on top of that by defining the deployment unit of modularity; it adds the versioning scheme, distribution format, repository and the comprehensive runtime architecture for the deployment of module-based applications and libraries. In addition to the specifications defined by JSR 277 and JSR 294, other parts of the JDK will be updated to take advantage of the new features, for example the Java launcher program (bin/java), the java.util.ResourceBundle API, the java.util.ServiceLoader API, etc.

The Modules project hosts the reference implementation of the new core functionality and serves as an umbrella for other related work items developed by other OpenJDK groups.

Superpackages are a new language construct for information hiding that is being defined by JSR 294, and it defines the linguistic unit of modularity in the Java programming language. The Java Module System defined by JSR 277 builds on top of that by defining the deployment unit of modularity; it adds the versioning scheme, distribution format, repository and the comprehensive runtime architecture for the deployment of module-based applications and libraries. In addition to the specifications defined by JSR 277 and JSR 294, other parts of the JDK will be updated to take advantage of the new features, for example the Java launcher program (bin/java), the java.util.ResourceBundle API, the java.util.ServiceLoader API, etc.

The Modules project hosts the reference implementation of the new core functionality and serves as an umbrella for other related work items developed by other OpenJDK groups.

The specification (JSR277) defines a distribution format and a repository for collections of Java code and related resources. It also defines the discovery, loading, and integrity mechanisms at runtime.