Java News from Friday, June 18, 2004

Sun's posted a beta of the Java 2 Micro Edition (J2ME) Wireless Toolkit 2.2. Java 1.4.2 on Windows XP is required. The Toolkit includes build tools, utilities, and a device emulator. Supported APIs include:

Other new features include:

Sun has posted the proposed final draft of Java Specification Request 163, Java Platform Profiling Architecture in the Java Community Process. The JSR proposed a "mechanism and APIs for extracting time and space profiling information from a running Java virtual machine"; but it seems to have experienced severe scope creep. It now includes the Java Virtual Machine Tool Interface (JVMTI). According to the draft spec, JVMTI is

a programming interface used by development and monitoring tools. It provides both a way to inspect the state and to control the execution of applications running in the Java TM virtual machine (VM).

JVMTI is intended to provide a VM interface for the full breadth of tools that need access to VM state, including but not limited to: profiling,debugging, monitoring, thread analysis, and coverage analysis tools.

JVMTI may not be available in all implementations of the Java Virtual Machine.

JVMTI is a two-way interface. A client of the JVMTI, hereafter called an agent, can be notified of interesting occurrences through events. The JVMTI can query and control the application through many functions, either in response to events or independent of them.

Agents run in the same process with and communicate directly with the virtual machine executing the application being examined. This communication is through a native interface (JVMTI). The native in-process interface allows maximal control with minimal intrusion on the part of a tool. Typically, agents are relatively compact. They can be controlled by a separate process which implements the bulk of a tool's function without interfering with the target application's normal execution.

JVMTI is planned to become the new lowest layer of the Java Platform Debugger Architecture (JPDA) and to replace the Java Virtual Machine Profiler Interface (JVMPI) and the   Java Virtual Machine Debug Interface (JVMDI).

Stefan Reich has posted beta 2 of SuperVersion, a single user version control system suitable for small projects, as opposed to multiuser, server-based systems like CVS and subversion.

Novell has posted the third beta release of Mono, an open source implementation of Microsoft's .NET framework that runs on Linux, Unix and Windows. Mono includes "a C# compiler, an implementation of the Common Language Infrastructure and two stacks of APIs: a Unix, Linux, GNOME, Mono stack for APIs that takes the most advantage of your Unix server and desktop and a set of APIs compatible with the Microsoft .NET Framework 1.1 that provides support for ASP.NET (web services and web forms), ADO.NET and many other components." Release notes haven't been posted yet, so it's not clear what's changed since beta 2.