Java 8 gets tougher security and statically-linked JNI libraries
Delay allows Chief Architect to squeeze in additional features – one of which may get Java into the iOS App Store.
With Java 8 now due for
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,
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
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.