JSRs: Java Specification Requests
JSR 255: JavaTM Management Extensions (JMXTM) Specification, version 2.0
Reason: JSR 255 specified changes to javax.management.* which were subsequently abandoned due to lack of resources, and were not included in the Java SE 6 or 7 Platforms. (The changes were distinct from other changes to javax.management.* specified by JSRs 3, 160, and 336 for inclusion in the Java SE 6 and 7 Platforms.) It was determined in 2014 that future changes to JMX technology would be specified directly by the umbrella JSR for the Java SE Platform.
JCP version in use: 2.6
Java Specification Participation Agreement version in use: 2.0
This JSR updates the JMX and JMX Remote APIs for version 6.0 of the Java(TM) Platform, Standard Edition. It will improve usability of existing features and add new functionality.
Please direct comments on this JSR to the Spec Lead(s)
This JSR has been Withdrawn
The following information has been updated from the original JSR:
Telephone: +46 8 506 309 00
2006.01.20: This JSR is now scheduled for Dolphin (Java SE 7) and not Mustang.
Original Java Specification Request (JSR)
Section 1. Identification
Submitting Member: Sun Microsystems, Inc.
Name of Contact Person: Eamonn McManus
E-Mail Address: eamonn.mcmanus
Telephone Number: +33 476 188 352
Fax Number: +33 476 188 282
Specification Lead: Eamonn McManus
E-Mail Address: eamonn.mcmanus
Telephone Number: +33 476 188 352
Fax Number: +33 476 188 282
Initial Expert Group Membership:
Supporting this JSR:
Section 2: Request
2.1 Please describe the proposed Specification:
This specification will update the JMX and JMX Remote APIs to improve existing interfaces, notably with respect to ease-of-use, and to add new functionality whose usefulness has become clear since those APIs were completed. Some key changes that are proposed are:
* Use generics in the JMX API, for example have MBeanServer.queryNames return Set<ObjectName> rather than just Set.
It is a key goal of this JSR to be incorporated into version 6.0 of the J2SE platform (Mustang), and this might mean that some of these proposed changes end up being postponed to a later JSR.
2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.
The J2EE platform includes a specification (JSR 77) based on the JMX API, and most if not all implementations of this platform use the JMX API extensively. Changes to improve this API will therefore be useful on the J2EE platform in addition to the J2SE platform. Although some investigations have been done concerning the use of the JMX API on certain configurations of the J2ME platform, there are no current plans to standardize that.
Should this JSR be voted on by both Executive Committees?
2.5 What need of the Java community will be addressed by the proposed specification?
Improved functionality of the existing JMX APIs and better ease-of-use.
2.6 Why isn't this need met by existing specifications?
The version of the JMX API that was incorporated into Tiger was identical to the standalone version 1.2 produced by a Maintenance Review of JSR 3. One important aim of this JSR is to update the API so that it takes advantage of generics and annotations to provide a simpler programming model. Another aim is to incorporate changes and new features whose desirability has become clear since version 1.2 was completed in 2002.
2.7 Please give a short description of the underlying technology or technologies:
JSR 3 (JMX API) defined a way to create named objects called MBeans (managed beans) or managed objects, and to store those objects in a repository called the MBean Server. Access to the objects is then exclusively through the MBean Server. MBeans have attributes (properties), operations (methods), and can emit notifications (events). The API provides services, which are themselves MBeans, that allow MBean attributes (properties) to be monitored periodically; notifications to be sent at a scheduled time or times; new MBeans to be created from dynamically loaded classes; and relations to be defined between MBeans. JSR 160 (JMX Remote API) defined a framework for remote access to an MBean Server, and standardized an access protocol based on RMI. These two JSRs are included in the J2SE platform. The Java Virtual Machine is instrumented using them, and they are also the default way for user applications to define their own instrumentation.
2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)
Existing classes in the javax.management.* namespace will be updated (including javax.management.remote.* but excluding javax.management.j2ee.*). New packages may be added under javax.management.
2.9 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
2.10 Are there any security issues that cannot be addressed by the current security model?
2.11 Are there any internationalization or localization issues?
The JMX API includes the ability for MBeans (managed objects) to publish descriptions about themselves. One aim of this JSR is to make it possible for these descriptions to be localized based on the client locale.
2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
This work will update JSRs 3 (JMX API) and 160 (JMX Remote API). It may allow (but not require) simplifications to later versions of JSRs 77 (J2EE(TM) Management) and 174 (Monitoring and Management Specification for the Java Virtual Machine).
2.13 Please describe the anticipated schedule for the development of this specification.
A key aim of this JSR is to define the version of the JMX and JMX Remote APIs that are incorporated into version 6.0 of the J2SE platform. This implies a hard deadline for completion that is likely to be roughly September 2005. Meeting this deadline may imply omitting some planned parts of this JSR and postponing them until the next version of the J2SE platform.
2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.
The primary form of collaboration will be e-mail. Experience with the JSR 160 (JMX Remote API) Expert Group suggests that conference calls with roughly biweekly frequency will also be helpful.
2.15 It is important to the success of the community and each JSR that the work of the Expert Group be handled in a manner which provides the community and the public with insight into the work the Expert Group is doing, and the decisions that the Expert Group has made. The Executive Committees would like to ensure Spec Leads understand the value of this transparency and ask that each JSR have an operating plan in place for how their JSR will address the involvement of the community and the public. Please provide your plan here, and refer to the Spec Lead Guide for a more detailed description and a set of example questions you may wish to answer in your plan.
Draft specifications will be uploaded to the community page for this JSR with at least monthly frequency. Open issues will be signalled on the observer alias for this JSR.
2.16 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.
The core components of the RI will be delivered as part of the Mustang (J2SE 6.0)Note that this information has been updated from the original JSR. RI. These RI components will not be delivered standalone. Optional components of the RI which are not included in Mustang will be delivered as separate JAR(s).
A standalone TCK will be made available for this JSR.
2.17 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).
There will be a standalone TCK for this JSR.
ADVANCE NOTICE: It is anticipated that in the successor version of this JSR, the TCK will no longer be available standalone, but only as part of the J2SE Platform TCK.
2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.
The RI for this JSR will be made available in binary form at no charge. As noted in 2.16, it is anticipated that the core components of the RI will be delivered as part of the Mustang (J2SE 6.0)Note that this information has been updated from the original JSR. RI, while optional components may be delivered as separate JAR(s).
The TCK for this JSR will be made available at no charge to J2SE TCK licenses. In addition, qualified individuals and not for profit organizations will receive access to the TCK at no charge.
It will not be necessary to license the RI to license the TCK.
Section 3: Contributions
3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.
JSR 3: JMX Specification
3.2 Explanation of how these items might be used as a starting point for the work.
Java DMK includes a cascading service that could be a starting point for standardization.
Section 4: Additional Information (Optional)
4.1 This section contains any additional information that the submitting Member wishes to include in the JSR.
The JMX Remote API (JSR 160) will be updated as part of this JSR. That API includes an optional part (packages javax.management.remote.X where X is generic, jmxmp, and message), which is not included in the J2SE platform but can be run on top of it. It is not planned for this JSR to make any changes to these packages, and it is not planned for this JSR to make any changes to the J2SE platform that would cause an existing implementation of the packages not to work on the updated platform.