In the nick of time
Java 8 gets tougher security and statically-linked JNI libraries
With Java 8 now due for release six months later than originally planned, Chief Architect Mark Reinhold has added a few minor features into the pot.
In his proposal for the delay, Reinhold said that the extra time would permit the addition of a “select few additional features”, mostly security-focused. Today, he announced the additional JEPs - Java Enhancement Proposals, each representing a new language feature - to be included.
Most exciting of these is JEP 178, which introduces statically-linked JNI libraries. As we reported in March, statically-linked libraries may be the key to a full JVM on iOS platforms - by packaging a Java runtime, native application code and Java application code into a single binary. While the JEP does not mention iOS specifically, James Gosling said it was “a big deal” and that he was “willing to wager” that it could be used to comply with the App Store’s rules.
Three security measures will be added: automatic identification of caller-sensitive methods; network permissions based on URLs, not IP addresses; and the use of balanced trees rather than linked lists to store map entries.
The other JEP defines annotations to the Java source code, designed to clarify the stability of JDK types not listed in the Java SE spec.
However, Reinhold giveth and Reinhold taketh away. JEPs 143 and 165, “Improve Contended Locking” and “Compiler Control”, have been dropped since they reportedly “won't be ready” for Java 8. The former would have resulted in increased performance in contented locking, while the latter would have provided “fine-grained” control over JVM compilers and the ability to change said options in run time. Presumably, they will now be added to Java in a future update.
The feature-complete seventh milestone, in which these JEPs will ship, is now due on the 23rd May, with a developer preview following in September.