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
This section is inspired by, and derived from, the Eclipseâ„¢ package naming convention documentation.
The Harmony class library code is organized into Java packages comprising the
public API (packages such as java.lang
, org.omg.CORBA
and so on) and internal implementation packages that all begin
org.apache.harmony
.
The public APIs are defined by the JSE specification, and as such as managed beyond the direct control of the Apache Harmony project. The other packages are managed by the project development team, and as such the project attributes the following meaning to package names.
Each Java package is owned by a specific module of the Harmony class library.
The module name immediately follows the org.apache.harmony
prefix.
org.apache.harmony.<module>
Example
org.apache.harmony.luni org.apache.harmony.security
Modules are free to use whatever package names they choose with the
prefix
org.apache.harmony.<modulename>
.
The following package name segments are reserved to indicate the meanings defined below:
org.apache.harmony.<modulename>.internal
org.apache.harmony.<modulename>.tests
org.apache.harmony.<modulename>.examples
org.apache.harmony.<modulename>.<anything_else>
In practice, this means that module developers are free to change the code within an
internal
package without expecting any consequences beyond the module
itself. However, module developers who modify code that is not in an
internal
package must do so in a manner that ensures
Java binary compatibility
.