Java 7 Update 40 Arrives with Mission Control for HotSpot and Rule Sets for Applets
Oracle has released Java 7 update 40, with some major new features for a minor release. They include the JVM monitoring tool Mission Control, Rule Sets for Java applets and Web Start applications, and a huge number of bug fixes.
Java Mission Control (JMC) is a production time tool suite that has its roots in the JRockit JVM tooling. The tools are intended to provide unobtrusive Java monitoring and management, suitable for use both in development and production environments. JMC is available under the Oracle Binary Code License for Java. The license allows you to use JMC for free during development and testing, though a different (paid for) licence is required for production use.
The tool suite comprises three major components: The Java Process Browser, JMX Console, and Java Flight Recorder.
The Java Process Browser allows users to list and connect to both locally and remotely running Java applications. It automatically detects locally running Java processes, as well as remote Java processes using the Java Discovery Protocol (JDP).
The JMX Console is used for managing and monitoring the JDK through the JMX interface. It provides information such as the live set, heap usage, CPU load, and other attributes exposed via MBeans and registered with the MBean server.
Java Flight Recorder provides a way to collect events from a Java application from the OS layer, the JVM, and the Java application. Collected events include thread latency events such as sleep, wait, lock contention, I/O, GC, and method profiling. Oracle estimates the performance overhead for running Flight Recorder at around 2% for most applications.
The inclusion of Mission Control with the HotSpot JDK for the first time represents the convergence of JRockit and HotSpot - a long running initiative that was first announced soon after Oracle acquired Sun Microsystems. What this means is that with the 7u40 release of the HotSpot JDK the information available from HotSpot is equivalent to that from JRockit.
This is also the first update to Mission Control for a couple of years and introduces some new features including:
- The JVM Browser now has subnodes for available server side services that show the state of services - for example, the Flight Recorder service will, if expanded, show what recordings are running on the server, if any.
- Eclipse 3.8/4.2 support: The Mission Control client is now built to run on Eclipse 3.8.2/4.2. It doesn't however install on Eclipse 4.3.x or later (this will be fixed in the upcoming 5.3.0 release).
- Improvements to the MBean Browser: It is now possible to edit values for settable attributes directly in the attribute tree. Notifications in the notifications tab can now be expanded to more than one.
Deployment Rule Sets
For enterprises using Java Applets and Web Start applications the growing number of security prompts and permissions required from the user in order to run the application are something of a pain. The Deployment Rule Set feature enables an enterprise to establish a whitelist of known applications. Applications on the whitelist can be run without most security prompts, though the following prompts are not suppressed:
- HTTPS security warnings
- Authentication dialogs that require the user to provide credentials to connect
- Security warnings from unsigned Java Web Start applications that want to perform such actions as creating a shortcut or an association
Rules for deployment are defined in an XML file and packaged in a signed JAR file.
The Deployment Rule Set feature requires the new Java Plug-in (available since Java SE 6 Update 10). If a deployment rule set is installed, usage of the old plug-in is blocked for all RIAs.
Rule Sets could easily be abused for public applications, and the Rule Set Guide states:
The Deployment Rule Set feature is optional and should only be used internally in an organization with a controlled environment. If a JAR file that contains a rule set is distributed or made available publicly, then the certificate used to sign the rule set will be blacklisted and blocked in Java.
Minor Changes and Bug Fixes
There are a lot of more minor changes including hard-float ABI support on Linux ARM v7, and a vast number of bug fixes - 621 in total. The release notes also explicitly state that Retina screens will now display content correctly.