Sun has submitted JSR-269, Pluggable Annotation Processing API to the Java Community Process (JCP). According to the JSR, "
J2SE 1.5 added a new Java language mechanism "annotations" that allows annotation types to be used to annotate classes, fields, and methods. These annotations are typically processed either by build-time tools or by run-time libraries to achieve new semantic effects. In order to support annotation processing at build-time, this JSR will define APIs to allow annotation processors to be created using a standard pluggable API. This will simplify the task of creating annotation processors and will also allow automation of the discovery of appropriate annotation processors for a given source file.
The specification will include at least two sections, a section of API modeling the Java programming language and a distinct section for declaring annotation processors and controlling how they are run. Since annotations are placed on program elements, an annotation processing framework needs to reflect program structure. Annotation processors will be able to specify what annotations they process and multiple processors will be able to run cooperatively.
The processors and program structure api can be accessed at build-time; i.e. this functionality supplements core reflection support for reading annotations.
Comments are due by February 14.
Siemens and Nokia have posted the public review draft specification of JSR-228, Information Module Profile - Next Generation (IMP-NG) to the JCP. IMP-NG is a strict subset of the Mobile Information Device Profile (MIDP), version 2.0 for smaller, user-interfaceless devices such as network cards, routers, tracking devices, and vending machines. It is designed to operate on top of the Connected, Limited Device Configuration (CLDC) 1.0 or later. According to the draft, IMP-NG implementations
- MUST support IMP and IMP-NG IMlets and IMlet Suites.
- MUST include all non-optional packages, classes, and interfaces described in this specification.
- MUST implement the OTA User Initiated Provisioning specification.
- MAY incorporate zero or more supported protocols for push.
- MAY provide support for accessing any available serial ports on their devices through the CommConnection interface.
- MUST provide support for accessing HTTP 1.1 servers and services either directly, or by using gateway services.
- MUST provide support for secure HTTP connections either directly, or by using gateway services.
- SHOULD provide support for datagram connections.
- SHOULD provide support for server socket stream connections.
- SHOULD provide support for socket stream connections.
- SHOULD provide support for secure socket stream connections.
- MAY support Tone Generation in the media package.
- MUST support 8-bit, 8 KHz, mono linear PCM wav format IF any sampled sound support is provided.
- MAY include support for additional sampled sound formats.
- MUST support Scalable Polyphony MIDI (SP-MIDI) and SP-MIDI Device 5-to-24 Note Profile IF any synthetic sound support is provided.
- MAY include support for additional MIDI formats.
- MUST implement the mechanisms needed to support “Untrusted IMlet Suites”.
- MUST implement “Trusted IMlet Suite Security” unless the device security policy does not permit or support trusted applications.
- MUST implement “Trusted IMlet Suites Using X.509 PKI” to recognize signed IMlet suites as trusted unless PKI is not used by the device for signing applications.
- MUST implement “MIDP x.509 Certificate Profile” for certificate handling of HTTPS and SecureConnections.
- MUST enforce the same security requirements for I/O access from the Media API as from the Generic Connection framework, as specified in the package documentation for javax.microedition.io.
- MUST support at least the UTF-8 (http://ietf.org/rfc/rfc2279.txt) character encoding for APIs that allow the application to define character encodings.
- MAY support other character encodings.
- SHOULD NOT allow copies to be made of any IMlet suite unless the device implements a copy protection mechanism.
Comments are due by March 7.
Tom Copeland has released PMD 2.3, an open source tool for automatically checking Java code for various classes of bugs. This is a bug fix release that prevents assorted NullPointerExceptions introduced in the 2.2 release a couple of days ago.
JScape has released the Secure FTP Factory 4.2, a $599 payware class library for FTP, SFTP, and FTPS (FTP over SSL) protocols. Java 1.2.2 or later is required.
YourKit, LLC has posted the seventh public beta of YourKit Java Profiler 4.0, a 295€ payware tool for detecting memory leaks and memory consumption bottlenecks. It features Automation of memory leak detection, an object heap browser, JUnit integration, IntelliJ IDEA, Borland JBuilder integration. Version 4.0 adds support for Mac OS X and simplifies analysis of custom class loaders and the classes they load. This release fixes bugs and adds some information to the user interface.