jre_emul
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
This package contains the Java and Objective-C source files to build the JRE emulation library for J2ObjC. The Objective-C sources are all in the Classes directory, like most Xcode projects. All Objective-C sources were created for this project. Java source files come from four sources: * Android Open Source: these are in the android directory. We're updating our Android sources to the latest in the Android Git repositories on https://android.googlesource.com/platform/, so all updated code is in android/platform/. Every package in android/platform has an associated repository on https://android.googlesource.com/platform/. The older Android code is in android/frameworks/ and android/libcore, and will gradually move to android/platform as we continue to update. * OpenJDK: these files are in the openjdk directory. They are updated from the OpenJDK mercurial repository at http://hg.openjdk.java.net/. Some of the files have been modified for use by this project and in some cases to increase compatibility with Android's JDK where its functionality differs from the Java RI. * Apache Harmony Project: these files are rooted in the apache_harmony directory, and have the same directory structure as that project. Some of these files have been modified for use by this project, including some that have Objective-C native code. We are migrating these classes and tests to their Android equivalents where available, so this tree will shrink as well. * Apple Public Source: these files are in the apple_apsl directory, and were modified for use by this project. * The remaining sources were created for this project: sources are in the Classes directory, tests are in the misc_tests directory. Classes that are either mapped to Foundation classes or natively implemented have empty Java versions in the stubl_classes directory, so that jre_emul.jar has definitions for them during translation. The icu4c directory contains copies of those ICU4C (International Components or Unicode, for C/C++) header files that aredistributed with the iOS SDK. These headers should only be used when building the jre_emul library, since those headers are not available on macOS. The reason the Android, Apache Harmony, Apple, and ICU files are separated is simple: give credit where it's due. The Android and J2ObjC sources are from Google, while the Apache Harmony, Apple and ICU projects are from other respected teams. We appreciate the hard work that went into all these projects. Finally, there are some files in Classes that look like Java classes, but have Objective-C suffixes. These are drop-in replacements for translated classes; for example, Classes/java/util/HashMap.h (and .m) defines a faster implementation than its translated code equivalent.