Java News from Thursday, May 26, 2005

It's been a while since I checked in with the Java Community Process so I thought I'd catch up with the various Java Specification requests, Early Draft reviews, Proposed Specs, and so forth today.


Patrick Niemeyer has submitted JSR 274, The BeanShell Scripting Language, to the JCP. According to the submission:

This specification will standardize BeanShell, a Java syntax compatible scripting language for the Java platform.

The BeanShell language bridges Java into the scripting domain in a natural way, allowing developers to mix static Java syntax with scripting conventions such as optional typing, simple closures, dynamic commands, and other conveniences.

BeanShell is a VM hosted language, supporting dynamic execution of the full Java grammar and semantics as well as transparent access to Java objects and APIs. Additional scripting and convenience features are brought into the language as a strict superset of the the Java language syntax. In this way BeanShell attempts to minimize both the syntactic and runtime barriers between Java application code and scripts, easing development and facilitating migration between scripts and static Java.

This specification will standardize the BeanShell language syntax and a minimal set of core commands and environmental components.

Personally I don't see any particular reason this has to go through the JCP. Comments are due by June 6.


Sun has posted the early draft review of JSR 268, Java Smart Card I/O API. Comments are due by June 23.


Nokia has posted the early draft review of JSR 257, Contactless Communication API. This is basically an API for tracking RFID devices attached to products, pets, people, and anything else a corporation or government cares to know about.

Mobile Telephony API (MTA) defines a set of functions for controlling calls and using network services suitable for Java applications written for J2ME devices. An example of Java application that uses MTA can be conference application, scheduled calls, or voice services. The MTA must be suited to small devices in terms of functionality and processing. Existing APIs such as JTAPI and JAIN JCC do not suit these requirements.

It is not intended to model the whole telephony network, nor is it necessarily intended to expose every telephony feature available in every wireless network. The goal is to define a portable API basis that exposes common telephony features available in most wireless handsets. The design targets extensibility such that unique features available in some networks can be made available as option packages.


Siemens and Motorola have posted the early draft review of JSR 253, Mobile Telephony API (MTA)for Java 2 Micro Edition. According to the JSR,

Mobile Telephony API (MTA) defines a set of functions for controlling calls and using network services suitable for Java applications written for J2ME devices. An example of Java application that uses MTA can be conference application, scheduled calls, or voice services. The MTA must be suited to small devices in terms of functionality and processing. Existing APIs such as JTAPI and JAIN JCC do not suit these requirements.

It is not intended to model the whole telephony network, nor is it necessarily intended to expose every telephony feature available in every wireless network. The goal is to define a portable API basis that exposes common telephony features available in most wireless handsets. The design targets extensibility such that unique features available in some networks can be made available as option packages.


Sun has posted the proposed final draft of JSR 208, Java Business Integration (JBI).


Nokia has posted the early draft review specification for JSR-256 Mobile Sensor API to the JCP.

This specification defines Mobile Sensor API, that allows J2ME application developers to fetch data easily and in a uniform way from sensors. Sensor is any measurement data source. Sensors vary from physical sensors like magnetometers and accelerometers to virtual sensors, which combain [sic] and manipulate the data they have received. Examples of virtual sensors could be e.g battery level or field intensity indicator. Sensor connection type can also vary - current types are embedded, short range wireless, wired and remote type.

API also provides means to monitor retrieved data values; limits and ranges can be set and if value meets any of defined conditions the listener is notified.

Mobile Sensor API is intended to be used with any profile running over both the Connected, Limited Device Configuration (CLDC) and Connected Device Configuration (CDC). For more information, see the System requirements section.

Classes and interfaces are in one package: javax.microedition.sensor

Comments are due by May 22.


Siemens and Nokia have posted the proposed final draft of JSR 228, Information Module Profile - Next Generation (IMP-NG). The IMP-NG requirements are additional requirements beyond the requirements of the Connected, Limited Device Configuration, version 1.0 (JSR-30) and version 1.1 (JSR-139). These requirements are:

Examples of IMs include, but are not restricted to, network cards, routers, tracking devices, and vending machines.


Panasonic has posted the proposed final draft specification for JSR-164, JAIN SIMPLE Presence and JSR-165, SIMPLE Instant Messaging. JAIN stands for Java Advanced Intelligent Networking. Apoparently it's two JSRs, but one spec. According to this spec,

The SIMPLE Presence and Instant Messaging API provides application control of standard instant messaging and presence using the SIP/SIMPLE protocol....The API is intended to make frequently used operations convenient, while minimizing SIP header and SIP message manipulation by the application. Thus the API does not permit the application to specify directly the SIP method in a message, and while it does permit the application control over SIP headers, certain headers are handled only by the implementation (see UserAgent for more information), and there are a number of default mechanisms in place so that the application does not typically need to process SIP headers. It is expected that the API can co-exist with SIP APIs such as JSR 32 JAIN™ SIP and JSR 180 SIP for J2ME™, as well as provide full SIMPLE application control without such APIs.

SIMPLE supports two types of messaging: page-mode and session-mode. During the development of this specification, session-mode was under consideration in the IETF. Consequently, this version of the API only provides page-mode instant messaging.

The API is structured along the SIP concept of a User Agent which provides a set of related functions on behave of the user. The presence-related user agents are:

  1. PresenceAgent
  2. PresenceUserAgent
  3. Watcher

The instant messaging related user agent is: PageModeClient.


Sun has posted a maintenance draft review of JSR 925 JavaBeans Activation Framework 1.1. The changes are fairly substantial for a maintenance draft review. Check it out if you use this API. Comments are due by June 20.


Oracle has posted a maintenance draft review of JSR-73 Data Mining API. The changes focus on improving MIME type mappings and providing fallbacks for these. Comments are due by June 27.


Martin Auer has released UMLet 5, "an open-source lightweight Java tool for rapidly drawing UML diagrams, with a focus on a sound and pop-up-free user interface." It can export diagrams to SVG, JPEG, EPS, and PDF formats and can be used as an Eclipse plugin. This release adds text-based creation of sequence diagrams. UMLet is published under the GPL. Java 1.5 is required.