JSR 269 Maintenance Review

JSR 269 was bundled as a component of JSR 270, the umbrella JSR for Java SE 6. The APIs defined by JSR 269 need to be updated to model the language changes being made by Project Coin / JSR 334. JSR 334 in turn is a component of JSR 336, the umbrella JSR for Java SE 7, and the maintenance review of JSR 269 is expected to be bundled with JSR 336. In addition to changes to directly support new language features, the JSR 269 API would benefit from a number of corrections and enhancements to improve ease of use.

The JSR 269 language model follows somewhat different evolution rules than most APIs included in Java SE. In particular, while the changes to the API are binary compatible, certain source incompatible changes are made of necessity. In particular, methods can be added to the visitor interfaces to allow operations on newly-added language constructs to be performed. This evolution path was expected during JSR 269's development and for that reason developers were warned to not directly implement the visitor interfaces, but rather to extend one of the visitor utility classes. The utility classes are versioned per release and implement default behavior appropriate for that release.

Change Log

The following are proposed changes for JSR 269: