JDK-6663757 : Define standard MBeanServerForwarders and convenient way to install them
  • Type: Enhancement
  • Component: core-svc
  • Sub-Component: javax.management
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2008-02-15
  • Updated: 2010-07-29
  • Resolved: 2008-09-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Work in the JSR 255 Expert Group has resulted in a proposal for three standard MBeanServerForwarders:

* A "context forwarder" that simulates the existence of a namespace jmx.context// such that an incoming request such as getAttribute("jmx.context//locale=fr//d:k=v", "Foo") gets translated into getAttribute("d:k=v", "Foo") after installing "locale=fr" into the context of the thread handling the request.  See CR 5072267.

* A "description localizer" that intercepts the request getMBeanInfo and localizes the descriptions in the resultant MBeanInfo object into the locale communicated using the context forwarder, using the new method MBeanInfo.localizeDescriptions.  See CR 6635499.

* An "event client delegate" that simulates the existence of the EventClientDelegate MBean with its standard ObjectName.  Requests such as EventClient.subscribe become operations on this MBean, invoke(eventClientDelegate, "subscribe", ...) in this case, and the MBean translates them into other operations such as addNotificationListener.  See CR 5108776.

A connector server can have a chain of MBeanServerForwarders that may include one or more of the above.  The order of these forwarders is important.  The context forwarder must appear before the description localizer so that the locale is already installed when the description is to be localized.  The description localizer should appear before the event client delegate so that the MBeanInfo of the (simulated) EventClientDelegate MBean can be correctly localized.  And finally the event client delegate must appear before any user-installed security-checking MBeanServerForwarder, so that the methods that are checked are ones that reflect what is happening, such as addNotificationListener, rather than a hard-to-decipher "invoke".

The conclusion is that the existing chain of MBeanServerForwarders should be called the "user chain" and a new "system chain" should be introduced.  Standard connector-server options will make it easy to configure the system chain with forwarders in the right order.

EVALUATION I'm closing this CR because the relevant API changes were made when adding the Event Service functionality. The context and localization forwarders have not yet been added but are covered by their own CRs.

EVALUATION Important for functionality and ease of use.