8186932: Fix accessibility issues in the java.management module
Reviewed-by: mchung
--- a/jdk/src/java.management/share/classes/java/lang/management/LockInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/LockInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -104,23 +104,25 @@
* Returns a {@code LockInfo} object represented by the
* given {@code CompositeData}.
* The given {@code CompositeData} must contain the following attributes:
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em;">
* <caption style="display:none">The attributes and the types the given CompositeData contains</caption>
+ * <thead style="text-align:left">
* <tr>
- * <th style="text-align:left">Attribute Name</th>
- * <th style="text-align:left">Type</th>
+ * <th scope="col">Attribute Name</th>
+ * <th scope="col">Type</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td>className</td>
+ * <th scope="row">className</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>identityHashCode</td>
+ * <th scope="row">identityHashCode</th>
* <td>{@code java.lang.Integer}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @param cd {@code CompositeData} representing a {@code LockInfo}
*
--- a/jdk/src/java.management/share/classes/java/lang/management/ManagementFactory.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/ManagementFactory.java Wed Aug 30 12:45:43 2017 -0700
@@ -140,96 +140,102 @@
* A Java virtual machine has a single instance of the following management
* interfaces:
*
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The list of Management Interfaces and their single instances</caption>
+ * <thead>
* <tr>
- * <th>Management Interface</th>
- * <th>ObjectName</th>
+ * <th scope="col">Management Interface</th>
+ * <th scope="col">ObjectName</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left;">
* <tr>
- * <td> {@link ClassLoadingMXBean} </td>
+ * <th scope="row"> {@link ClassLoadingMXBean} </th>
* <td> {@link #CLASS_LOADING_MXBEAN_NAME
* java.lang:type=ClassLoading}</td>
* </tr>
* <tr>
- * <td> {@link MemoryMXBean} </td>
+ * <th scope="row"> {@link MemoryMXBean} </th>
* <td> {@link #MEMORY_MXBEAN_NAME
* java.lang:type=Memory}</td>
* </tr>
* <tr>
- * <td> {@link ThreadMXBean} </td>
+ * <th scope="row"> {@link ThreadMXBean} </th>
* <td> {@link #THREAD_MXBEAN_NAME
* java.lang:type=Threading}</td>
* </tr>
* <tr>
- * <td> {@link RuntimeMXBean} </td>
+ * <th scope="row"> {@link RuntimeMXBean} </th>
* <td> {@link #RUNTIME_MXBEAN_NAME
* java.lang:type=Runtime}</td>
* </tr>
* <tr>
- * <td> {@link OperatingSystemMXBean} </td>
+ * <th scope="row"> {@link OperatingSystemMXBean} </th>
* <td> {@link #OPERATING_SYSTEM_MXBEAN_NAME
* java.lang:type=OperatingSystem}</td>
* </tr>
* <tr>
- * <td> {@link PlatformLoggingMXBean} </td>
+ * <th scope="row"> {@link PlatformLoggingMXBean} </th>
* <td> {@link java.util.logging.LogManager#LOGGING_MXBEAN_NAME
* java.util.logging:type=Logging}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* <p>
* A Java virtual machine has zero or a single instance of
* the following management interfaces.
*
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The list of Management Interfaces and their single instances</caption>
+ * <thead>
* <tr>
- * <th>Management Interface</th>
- * <th>ObjectName</th>
+ * <th scope="col">Management Interface</th>
+ * <th scope="col">ObjectName</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left;">
* <tr>
- * <td> {@link CompilationMXBean} </td>
+ * <th scope="row"> {@link CompilationMXBean} </th>
* <td> {@link #COMPILATION_MXBEAN_NAME
* java.lang:type=Compilation}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* <p>
* A Java virtual machine may have one or more instances of the following
* management interfaces.
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The list of Management Interfaces and their single instances</caption>
+ * <thead>
* <tr>
- * <th>Management Interface</th>
- * <th>ObjectName</th>
+ * <th scope="col">Management Interface</th>
+ * <th scope="col">ObjectName</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left;">
* <tr>
- * <td> {@link GarbageCollectorMXBean} </td>
+ * <th scope="row"> {@link GarbageCollectorMXBean} </th>
* <td> {@link #GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
* java.lang:type=GarbageCollector}{@code ,name=}<i>collector's name</i></td>
* </tr>
* <tr>
- * <td> {@link MemoryManagerMXBean} </td>
+ * <th scope="row"> {@link MemoryManagerMXBean} </th>
* <td> {@link #MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
* java.lang:type=MemoryManager}{@code ,name=}<i>manager's name</i></td>
* </tr>
* <tr>
- * <td> {@link MemoryPoolMXBean} </td>
+ * <th scope="row"> {@link MemoryPoolMXBean} </th>
* <td> {@link #MEMORY_POOL_MXBEAN_DOMAIN_TYPE
* java.lang:type=MemoryPool}{@code ,name=}<i>pool's name</i></td>
* </tr>
* <tr>
- * <td> {@link BufferPoolMXBean} </td>
+ * <th scope="row"> {@link BufferPoolMXBean} </th>
* <td> {@code java.nio:type=BufferPool,name=}<i>pool name</i></td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @see <a href="../../../javax/management/package-summary.html">
* JMX Specification</a>
--- a/jdk/src/java.management/share/classes/java/lang/management/ManagementPermission.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/ManagementPermission.java Wed Aug 30 12:45:43 2017 -0700
@@ -36,14 +36,17 @@
*
* <table class="striped">
* <caption style="display:none">Table shows permission target name, what the permission allows, and associated risks</caption>
+ * <thead>
* <tr>
- * <th>Permission Target Name</th>
- * <th>What the Permission Allows</th>
- * <th>Risks of Allowing this Permission</th>
+ * <th scope="col">Permission Target Name</th>
+ * <th scope="col">What the Permission Allows</th>
+ * <th scope="col">Risks of Allowing this Permission</th>
* </tr>
+ * </thead>
+ * <tbody style="text=align:left">
*
* <tr>
- * <td>control</td>
+ * <th scope="row">control</th>
* <td>Ability to control the runtime characteristics of the Java virtual
* machine, for example, enabling and disabling the verbose output for
* the class loading or memory system, setting the threshold of a memory
@@ -59,7 +62,7 @@
* </td>
* </tr>
* <tr>
- * <td>monitor</td>
+ * <th scope="row">monitor</th>
* <td>Ability to retrieve runtime information about
* the Java virtual machine such as thread
* stack trace, a list of all loaded class names, and input arguments
@@ -68,6 +71,7 @@
* uncover vulnerabilities.</td>
* </tr>
*
+ * </tbody>
* </table>
*
* <p>
--- a/jdk/src/java.management/share/classes/java/lang/management/MemoryNotificationInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/MemoryNotificationInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -211,27 +211,29 @@
* given {@code CompositeData}.
* The given {@code CompositeData} must contain
* the following attributes:
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The attributes and the types the given CompositeData contains</caption>
+ * <thead>
* <tr>
- * <th style="text-align:left">Attribute Name</th>
- * <th style="text-align:left">Type</th>
+ * <th scope="col">Attribute Name</th>
+ * <th scope="col">Type</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td>poolName</td>
+ * <th scope="row">poolName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>usage</td>
+ * <th scope="row">usage</th>
* <td>{@code javax.management.openmbean.CompositeData}</td>
* </tr>
* <tr>
- * <td>count</td>
+ * <th scope="row">count</th>
* <td>{@code java.lang.Long}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @param cd {@code CompositeData} representing a
* {@code MemoryNotificationInfo}
--- a/jdk/src/java.management/share/classes/java/lang/management/MemoryUsage.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/MemoryUsage.java Wed Aug 30 12:45:43 2017 -0700
@@ -36,10 +36,14 @@
* the heap or non-heap memory of the Java virtual machine as a whole.
*
* <p> A {@code MemoryUsage} object contains four values:
- * <table>
+ * <table class="striped">
* <caption style="display:none">Describes the MemoryUsage object content</caption>
+ * <thead>
+ * <tr><th scope="col">Value</th><th scope="col">Description</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td style="vertical-align:top"> {@code init} </td>
+ * <th scope="row" style="vertical-align:top"> {@code init} </th>
* <td style="vertical-align:top"> represents the initial amount of memory (in bytes) that
* the Java virtual machine requests from the operating system
* for memory management during startup. The Java virtual machine
@@ -49,12 +53,12 @@
* </td>
* </tr>
* <tr>
- * <td style="vertical-align:top"> {@code used} </td>
+ * <th scope="row" style="vertical-align:top"> {@code used} </th>
* <td style="vertical-align:top"> represents the amount of memory currently used (in bytes).
* </td>
* </tr>
* <tr>
- * <td style="vertical-align:top"> {@code committed} </td>
+ * <th scope="row" style="vertical-align:top"> {@code committed} </th>
* <td style="vertical-align:top"> represents the amount of memory (in bytes) that is
* guaranteed to be available for use by the Java virtual machine.
* The amount of committed memory may change over time (increase
@@ -65,7 +69,7 @@
* </td>
* </tr>
* <tr>
- * <td style="vertical-align:top"> {@code max} </td>
+ * <th scope="row" style="vertical-align:top"> {@code max} </th>
* <td style="vertical-align:top"> represents the maximum amount of memory (in bytes)
* that can be used for memory management. Its value may be undefined.
* The maximum amount of memory may change over time if defined.
@@ -77,6 +81,7 @@
* when the system is low on virtual memory).
* </td>
* </tr>
+ * </tbody>
* </table>
*
* Below is a picture showing an example of a memory pool:
@@ -252,31 +257,33 @@
* given {@code CompositeData}. The given {@code CompositeData}
* must contain the following attributes:
*
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em;">
* <caption style="display:none">The attributes and the types the given CompositeData contains</caption>
+ * <thead>
* <tr>
- * <th style="text-align:left">Attribute Name</th>
- * <th style="text-align:left">Type</th>
+ * <th scope="col">Attribute Name</th>
+ * <th scope="col">Type</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td>init</td>
+ * <th scope="row">init</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>used</td>
+ * <th scope="row">used</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>committed</td>
+ * <th scope="row">committed</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>max</td>
+ * <th scope="row">max</th>
* <td>{@code java.lang.Long}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @param cd {@code CompositeData} representing a {@code MemoryUsage}
*
--- a/jdk/src/java.management/share/classes/java/lang/management/MonitorInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/MonitorInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -105,15 +105,17 @@
* as well as the attributes specified in the
* <a href="LockInfo.html#MappedType">
* mapped type</a> for the {@link LockInfo} class:
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The attributes and their types the given CompositeData contains</caption>
+ * <thead>
* <tr>
- * <th style="text-align:left">Attribute Name</th>
- * <th style="text-align:left">Type</th>
+ * <th scope="col">Attribute Name</th>
+ * <th scope="col">Type</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td>lockedStackFrame</td>
+ * <th scope="row">lockedStackFrame</th>
* <td><code>CompositeData as specified in the
* <a href="ThreadInfo.html#StackTrace">stackTrace</a>
* attribute defined in the {@link ThreadInfo#from
@@ -121,11 +123,11 @@
* </code></td>
* </tr>
* <tr>
- * <td>lockedStackDepth</td>
+ * <th scope="row">lockedStackDepth</th>
* <td>{@code java.lang.Integer}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @param cd {@code CompositeData} representing a {@code MonitorInfo}
*
--- a/jdk/src/java.management/share/classes/java/lang/management/RuntimeMXBean.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/RuntimeMXBean.java Wed Aug 30 12:45:43 2017 -0700
@@ -311,23 +311,25 @@
* The mapped type of {@code Map<String,String>} is
* {@link javax.management.openmbean.TabularData TabularData}
* with two items in each row as follows:
- * <blockquote>
- * <table border="1">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">Name and Type for each item</caption>
+ * <thead>
* <tr>
- * <th>Item Name</th>
- * <th>Item Type</th>
+ * <th scope="col">Item Name</th>
+ * <th scope="col">Item Type</th>
* </tr>
- * <tr>
- * <td>{@code key}</td>
+ * </thead>
+ * <tbody>
+ * <tr style="text-align:left">
+ * <th scope="row">{@code key}</th>
* <td>{@code String}</td>
* </tr>
* <tr>
- * <td>{@code value}</td>
+ * <th scope="row">{@code value}</th>
* <td>{@code String}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @return a map of names and values of all system properties.
*
--- a/jdk/src/java.management/share/classes/java/lang/management/ThreadInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/java/lang/management/ThreadInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -694,51 +694,53 @@
* given {@code CompositeData}.
* The given {@code CompositeData} must contain the following attributes
* unless otherwise specified below:
- * <blockquote>
- * <table class="plain">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The attributes and their types the given CompositeData contains</caption>
+ * <thead>
* <tr>
- * <th style="text-align:left">Attribute Name</th>
- * <th style="text-align:left">Type</th>
+ * <th scope="col">Attribute Name</th>
+ * <th scope="col">Type</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td>threadId</td>
+ * <th scope="row">threadId</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>threadName</td>
+ * <th scope="row">threadName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>threadState</td>
+ * <th scope="row">threadState</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>suspended</td>
+ * <th scope="row">suspended</th>
* <td>{@code java.lang.Boolean}</td>
* </tr>
* <tr>
- * <td>inNative</td>
+ * <th scope="row">inNative</th>
* <td>{@code java.lang.Boolean}</td>
* </tr>
* <tr>
- * <td>blockedCount</td>
+ * <th scope="row">blockedCount</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>blockedTime</td>
+ * <th scope="row">blockedTime</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>waitedCount</td>
+ * <th scope="row">waitedCount</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>waitedTime</td>
+ * <th scope="row">waitedTime</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>lockInfo</td>
+ * <th scope="row">lockInfo</th>
* <td>{@code javax.management.openmbean.CompositeData}
* - the mapped type for {@link LockInfo} as specified in the
* {@link LockInfo#from} method.
@@ -748,64 +750,66 @@
* the value of the {@code lockName} attribute. </td>
* </tr>
* <tr>
- * <td>lockName</td>
+ * <th scope="row">lockName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>lockOwnerId</td>
+ * <th scope="row">lockOwnerId</th>
* <td>{@code java.lang.Long}</td>
* </tr>
* <tr>
- * <td>lockOwnerName</td>
+ * <th scope="row">lockOwnerName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td><a id="StackTrace">stackTrace</a></td>
+ * <th scope="row"><a id="StackTrace">stackTrace</a></th>
* <td>{@code javax.management.openmbean.CompositeData[]}
* <p>
* Each element is a {@code CompositeData} representing
* StackTraceElement containing the following attributes:
- * <blockquote>
- * <table class="borderless">
+ * <table class="striped" style="margin-left:2em">
* <caption style="display:none">The attributes and their types the given CompositeData contains</caption>
+ * <thead style="text-align:center">
* <tr>
- * <th style="text-align:left">Attribute Name</th>
- * <th style="text-align:left">Type</th>
+ * <th scope="col">Attribute Name</th>
+ * <th scope="col">Type</th>
* </tr>
+ * </thead>
+ * <tbody style="text-align:left">
* <tr>
- * <td>moduleName</td>
+ * <th scope="row">moduleName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>moduleVersion</td>
+ * <th scope="row">moduleVersion</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>className</td>
+ * <th scope="row">className</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>methodName</td>
+ * <th scope="row">methodName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>fileName</td>
+ * <th scope="row">fileName</th>
* <td>{@code java.lang.String}</td>
* </tr>
* <tr>
- * <td>lineNumber</td>
+ * <th scope="row">lineNumber</th>
* <td>{@code java.lang.Integer}</td>
* </tr>
* <tr>
- * <td>nativeMethod</td>
+ * <th scope="row">nativeMethod</th>
* <td>{@code java.lang.Boolean}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
* </td>
* </tr>
* <tr>
- * <td>lockedMonitors</td>
+ * <th scope="row">lockedMonitors</th>
* <td>{@code javax.management.openmbean.CompositeData[]}
* whose element type is the mapped type for
* {@link MonitorInfo} as specified in the
@@ -815,7 +819,7 @@
* this attribute will be set to an empty array. </td>
* </tr>
* <tr>
- * <td>lockedSynchronizers</td>
+ * <th scope="row">lockedSynchronizers</th>
* <td>{@code javax.management.openmbean.CompositeData[]}
* whose element type is the mapped type for
* {@link LockInfo} as specified in the {@link LockInfo#from} method.
@@ -824,15 +828,15 @@
* this attribute will be set to an empty array. </td>
* </tr>
* <tr>
- * <td>daemon</td>
+ * <th scope="row">daemon</th>
* <td>{@code java.lang.Boolean}</td>
* </tr>
* <tr>
- * <td>priority</td>
+ * <th scope="row">priority</th>
* <td>{@code java.lang.Integer}</td>
* </tr>
+ * </tbody>
* </table>
- * </blockquote>
*
* @param cd {@code CompositeData} representing a {@code ThreadInfo}
*
--- a/jdk/src/java.management/share/classes/javax/management/Descriptor.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/Descriptor.java Wed Aug 30 12:45:43 2017 -0700
@@ -98,16 +98,21 @@
*
* <table class="striped">
* <caption style="display:none">Descriptor Fields</caption>
+ * <thead>
+ * <tr><th scope="col">Name</th>
+ * <th scope="col">Type</th>
+ * <th scope="col">Used in</th>
+ * <th scope="col">Meaning</th></tr>
+ * </thead>
*
- * <tr><th>Name</th><th>Type</th><th>Used in</th><th>Meaning</th></tr>
- *
- * <tr id="defaultValue"><td><i>defaultValue</i><td>Object</td>
+ * <tbody style="text-align:left">
+ * <tr id="defaultValue"><th scope="row"><i>defaultValue</i><td>Object</td>
* <td>MBeanAttributeInfo<br>MBeanParameterInfo</td>
*
* <td>Default value for an attribute or parameter. See
* {@link javax.management.openmbean}.</td>
*
- * <tr><td>deprecated</td><td>String</td><td>Any</td>
+ * <tr><th scope="row">deprecated</th><td>String</td><td>Any</td>
*
* <td>An indication that this element of the information model is no
* longer recommended for use. A set of MBeans defined by an
@@ -118,8 +123,8 @@
* deprecation, for example {@code "1.3 Replaced by the Capacity
* attribute"}.</td>
*
- * <tr><td id="descriptionResourceBundleBaseName">descriptionResource<br>
- * BundleBaseName</td><td>String</td><td>Any</td>
+ * <tr><th scope="row" id="descriptionResourceBundleBaseName">descriptionResource<br>
+ * BundleBaseName</th><td>String</td><td>Any</td>
*
* <td>The base name for the {@link ResourceBundle} in which the key given in
* the {@code descriptionResourceKey} field can be found, for example
@@ -127,7 +132,7 @@
* field is defined by this specification but the field is not set or
* used by the JMX API itself.</td>
*
- * <tr><td id="descriptionResourceKey">descriptionResourceKey</td>
+ * <tr><th scope="row" id="descriptionResourceKey">descriptionResourceKey</th>
* <td>String</td><td>Any</td>
*
* <td>A resource key for the description of this element. In
@@ -136,7 +141,7 @@
* The meaning of this field is defined by this specification but the
* field is not set or used by the JMX API itself.</td>
*
- * <tr><td>enabled</td><td>String</td>
+ * <tr><th scope="row">enabled</th><td>String</td>
* <td>MBeanAttributeInfo<br>MBeanNotificationInfo<br>MBeanOperationInfo</td>
*
* <td>The string {@code "true"} or {@code "false"} according as this
@@ -148,7 +153,7 @@
* might be disabled if it cannot currently be emitted but could be in
* other circumstances.</td>
*
- * <tr id="exceptions"><td>exceptions<td>String[]</td>
+ * <tr id="exceptions"><th scope="row">exceptions<td>String[]</td>
* <td>MBeanAttributeInfo, MBeanConstructorInfo, MBeanOperationInfo</td>
*
* <td>The class names of the exceptions that can be thrown when invoking a
@@ -158,7 +163,7 @@
* setting an attribute are specified by the field
* <a href="#setExceptions">{@code setExceptions}</a>.
*
- * <tr id="immutableInfo"><td><i>immutableInfo</i><td>String</td>
+ * <tr id="immutableInfo"><th scope="row"><i>immutableInfo</i><td>String</td>
* <td>MBeanInfo</td>
*
* <td>The string {@code "true"} or {@code "false"} according as this
@@ -171,7 +176,7 @@
* href="MBeanInfo.html#info-changed">{@code "jmx.mbean.info.changed"}</a>
* notification.</td>
*
- * <tr id="infoTimeout"><td>infoTimeout</td><td>String<br>Long</td><td>MBeanInfo</td>
+ * <tr id="infoTimeout"><th scope="row">infoTimeout</th><td>String<br>Long</td><td>MBeanInfo</td>
*
* <td>The time in milli-seconds that the MBeanInfo can reasonably be
* expected to be unchanged. The value can be a {@code Long} or a
@@ -184,7 +189,7 @@
* href="MBeanInfo.html#info-changed">{@code "jmx.mbean.info.changed"}</a> in
* its {@link MBeanNotificationInfo} array.</td></tr>
*
- * <tr id="interfaceClassName"><td><i>interfaceClassName</i></td>
+ * <tr id="interfaceClassName"><th scope="row"><i>interfaceClassName</i></th>
* <td>String</td><td>MBeanInfo</td>
*
* <td>The Java interface name for a Standard MBean or MXBean, as
@@ -193,26 +198,26 @@
* StandardMBean} class will have this field in its MBeanInfo
* Descriptor.</td>
*
- * <tr id="legalValues"><td><i>legalValues</i></td>
+ * <tr id="legalValues"><th scope="row"><i>legalValues</i></th>
* <td>{@literal Set<?>}</td><td>MBeanAttributeInfo<br>MBeanParameterInfo</td>
*
* <td>Legal values for an attribute or parameter. See
* {@link javax.management.openmbean}.</td>
*
- * <tr id="locale"><td>locale</td>
+ * <tr id="locale"><th scope="row">locale</th>
* <td>String</td><td>Any</td>
*
* <td>The {@linkplain Locale locale} of the description in this
* {@code MBeanInfo}, {@code MBeanAttributeInfo}, etc, as returned
* by {@link Locale#toString()}.</td>
*
- * <tr id="maxValue"><td><i>maxValue</i><td>Object</td>
+ * <tr id="maxValue"><th scope="row"><i>maxValue</i><td>Object</td>
* <td>MBeanAttributeInfo<br>MBeanParameterInfo</td>
*
* <td>Maximum legal value for an attribute or parameter. See
* {@link javax.management.openmbean}.</td>
*
- * <tr id="metricType"><td>metricType</td><td>String</td>
+ * <tr id="metricType"><th scope="row">metricType</th><td>String</td>
* <td>MBeanAttributeInfo<br>MBeanOperationInfo</td>
*
* <td>The type of a metric, one of the strings "counter" or "gauge".
@@ -225,13 +230,13 @@
* that can increase or decrease. Examples might be the number of
* open connections or a cache hit rate or a temperature reading.
*
- * <tr id="minValue"><td><i>minValue</i><td>Object</td>
+ * <tr id="minValue"><th scope="row"><i>minValue</i><td>Object</td>
* <td>MBeanAttributeInfo<br>MBeanParameterInfo</td>
*
* <td>Minimum legal value for an attribute or parameter. See
* {@link javax.management.openmbean}.</td>
*
- * <tr id="mxbean"><td><i>mxbean</i><td>String</td>
+ * <tr id="mxbean"><th scope="row"><i>mxbean</i><td>String</td>
* <td>MBeanInfo</td>
*
* <td>The string {@code "true"} or {@code "false"} according as this
@@ -240,7 +245,7 @@
* StandardMBean} class will have this field in its MBeanInfo
* Descriptor.</td>
*
- * <tr id="openType"><td><i>openType</i><td>{@link OpenType}</td>
+ * <tr id="openType"><th scope="row"><i>openType</i><td>{@link OpenType}</td>
* <td>MBeanAttributeInfo<br>MBeanOperationInfo<br>MBeanParameterInfo</td>
*
* <td><p>The Open Type of this element. In the case of {@code
@@ -257,7 +262,7 @@
* which case it indicates the Open Type that the {@link
* Notification#getUserData() user data} will have.</td>
*
- * <tr id="originalType"><td><i>originalType</i><td>String</td>
+ * <tr id="originalType"><th scope="row"><i>originalType</i><td>String</td>
* <td>MBeanAttributeInfo<br>MBeanOperationInfo<br>MBeanParameterInfo</td>
*
* <td><p>The original Java type of this element as it appeared in the
@@ -273,7 +278,7 @@
* href="MXBean.html#type-names">Type Names</a> of the MXBean
* specification.</p>
*
- * <tr id="setExceptions"><td><i>setExceptions</i><td>String[]</td>
+ * <tr id="setExceptions"><th scope="row"><i>setExceptions</i><td>String[]</td>
* <td>MBeanAttributeInfo</td>
*
* <td>The class names of the exceptions that can be thrown when setting
@@ -282,7 +287,7 @@
* JMX API itself. Exceptions thrown when getting an attribute are specified
* by the field <a href="#exceptions">{@code exceptions}</a>.
*
- * <tr><td>severity</td><td>String<br>Integer</td>
+ * <tr><th scope="row">severity</th><td>String<br>Integer</td>
* <td>MBeanNotificationInfo</td>
*
* <td>The severity of this notification. It can be 0 to mean
@@ -290,7 +295,7 @@
* levels of severity. It can be represented as a decimal string or
* an {@code Integer}.</td>
*
- * <tr><td>since</td><td>String</td><td>Any</td>
+ * <tr><th scope="row">since</th><td>String</td><td>Any</td>
*
* <td>The version of the information model in which this element
* was introduced. A set of MBeans defined by an application is
@@ -299,13 +304,14 @@
* {@code "since"} field to record the version in which an element
* first appeared.</td>
*
- * <tr><td>units</td><td>String</td>
+ * <tr><th scope="row">units</th><td>String</td>
* <td>MBeanAttributeInfo<br>MBeanParameterInfo<br>MBeanOperationInfo</td>
*
* <td>The units in which an attribute, parameter, or operation return
* value is measured, for example {@code "bytes"} or {@code
* "seconds"}.</td>
*
+ * </tbody>
* </table>
*
* <p>Some additional fields are defined by Model MBeans. See the
@@ -334,106 +340,113 @@
* <table class="striped">
* <caption style="display:none">ModelMBean Fields</caption>
*
- * <tr><th>Name</th><th>Type</th><th>Used in</th><th>Meaning</th></tr>
+ * <thead>
+ * <tr><th scope="col">Name</th>
+ * <th scope="col">Type</th>
+ * <th scope="col">Used in</th>
+ * <th scope="col">Meaning</th></tr>
+ * </thead>
*
- * <tr><td>class</td><td>String</td><td>ModelMBeanOperationInfo</td>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">class</th><td>String</td><td>ModelMBeanOperationInfo</td>
* <td>Class where method is defined (fully qualified).</td></tr>
*
- * <tr><td>currencyTimeLimit</td><td>Number</td>
+ * <tr><th scope="row">currencyTimeLimit</th><td>Number</td>
* <td>ModelMBeanInfo<br>ModelMBeanAttributeInfo<br>ModelMBeanOperationInfo</td>
* <td>How long cached value is valid: <0 never, =0 always,
* >0 seconds.</td></tr>
*
- * <tr><td>default</td><td>Object</td><td>ModelMBeanAttributeInfo</td>
+ * <tr><th scope="row">default</th><td>Object</td><td>ModelMBeanAttributeInfo</td>
* <td>Default value for attribute.</td></tr>
*
- * <tr><td>descriptorType</td><td>String</td><td>Any</td>
+ * <tr><th scope="row">descriptorType</th><td>String</td><td>Any</td>
* <td>Type of descriptor, "mbean", "attribute", "constructor", "operation",
* or "notification".</td></tr>
*
- * <tr id="displayName"><td>displayName</td><td>String</td><td>Any</td>
+ * <tr id="displayName"><th scope="row">displayName</th><td>String</td><td>Any</td>
* <td>Human readable name of this item.</td></tr>
*
- * <tr><td>export</td><td>String</td><td>ModelMBeanInfo</td>
+ * <tr><th scope="row">export</th><td>String</td><td>ModelMBeanInfo</td>
* <td>Name to be used to export/expose this MBean so that it is
* findable by other JMX Agents.</td></tr>
*
- * <tr><td>getMethod</td><td>String</td><td>ModelMBeanAttributeInfo</td>
+ * <tr><th scope="row">getMethod</th><td>String</td><td>ModelMBeanAttributeInfo</td>
* <td>Name of operation descriptor for get method.</td></tr>
*
- * <tr><td>lastUpdatedTimeStamp</td><td>Number</td>
+ * <tr><th scope="row">lastUpdatedTimeStamp</th><td>Number</td>
* <td>ModelMBeanAttributeInfo<br>ModelMBeanOperationInfo</td>
* <td>When <a href="#value-field">value</a> was set.</td></tr>
*
- * <tr><td>log</td><td>String</td><td>ModelMBeanInfo<br>ModelMBeanNotificationInfo</td>
+ * <tr><th scope="row">log</th><td>String</td><td>ModelMBeanInfo<br>ModelMBeanNotificationInfo</td>
* <td>t or T: log all notifications, f or F: log no notifications.</td></tr>
*
- * <tr><td>logFile</td><td>String</td><td>ModelMBeanInfo<br>ModelMBeanNotificationInfo</td>
+ * <tr><th scope="row">logFile</th><td>String</td><td>ModelMBeanInfo<br>ModelMBeanNotificationInfo</td>
* <td>Fully qualified filename to log events to.</td></tr>
*
- * <tr><td>messageID</td><td>String</td><td>ModelMBeanNotificationInfo</td>
+ * <tr><th scope="row">messageID</th><td>String</td><td>ModelMBeanNotificationInfo</td>
* <td>Unique key for message text (to allow translation, analysis).</td></tr>
*
- * <tr><td>messageText</td><td>String</td><td>ModelMBeanNotificationInfo</td>
+ * <tr><th scope="row">messageText</th><td>String</td><td>ModelMBeanNotificationInfo</td>
* <td>Text of notification.</td></tr>
*
- * <tr><td>name</td><td>String</td><td>Any</td>
+ * <tr><th scope="row">name</th><td>String</td><td>Any</td>
* <td>Name of this item.</td></tr>
*
- * <tr><td>persistFile</td><td>String</td><td>ModelMBeanInfo</td>
+ * <tr><th scope="row">persistFile</th><td>String</td><td>ModelMBeanInfo</td>
* <td>File name into which the MBean should be persisted.</td></tr>
*
- * <tr><td>persistLocation</td><td>String</td><td>ModelMBeanInfo</td>
+ * <tr><th scope="row">persistLocation</th><td>String</td><td>ModelMBeanInfo</td>
* <td>The fully qualified directory name where the MBean should be
* persisted (if appropriate).</td></tr>
*
- * <tr><td>persistPeriod</td><td>Number</td>
+ * <tr><th scope="row">persistPeriod</th><td>Number</td>
* <td>ModelMBeanInfo<br>ModelMBeanAttributeInfo</td>
* <td>Frequency of persist cycle in seconds. Used when persistPolicy is
* "OnTimer" or "NoMoreOftenThan".</td></tr>
*
- * <tr><td>persistPolicy</td><td>String</td>
+ * <tr><th scope="row">persistPolicy</th><td>String</td>
* <td>ModelMBeanInfo<br>ModelMBeanAttributeInfo</td>
* <td>One of: OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never.
* See the section "MBean Descriptor Fields" in the JMX specification
* document.</td></tr>
*
- * <tr><td>presentationString</td><td>String</td><td>Any</td>
+ * <tr><th scope="row">presentationString</th><td>String</td><td>Any</td>
* <td>XML formatted string to allow presentation of data.</td></tr>
*
- * <tr><td>protocolMap</td><td>Descriptor</td><td>ModelMBeanAttributeInfo</td>
+ * <tr><th scope="row">protocolMap</th><td>Descriptor</td><td>ModelMBeanAttributeInfo</td>
* <td>See the section "Protocol Map Support" in the JMX specification
* document. Mappings must be appropriate for the attribute and entries
* can be updated or augmented at runtime.</td></tr>
*
- * <tr><td>role</td><td>String</td>
+ * <tr><th scope="row">role</th><td>String</td>
* <td>ModelMBeanConstructorInfo<br>ModelMBeanOperationInfo</td>
* <td>One of "constructor", "operation", "getter", or "setter".</td></tr>
*
- * <tr><td>setMethod</td><td>String</td><td>ModelMBeanAttributeInfo</td>
+ * <tr><th scope="row">setMethod</th><td>String</td><td>ModelMBeanAttributeInfo</td>
* <td>Name of operation descriptor for set method.</td></tr>
*
- * <tr id="severity"><td>severity</td><td>Number</td>
+ * <tr id="severity"><th scope="row">severity</th><td>Number</td>
* <td>ModelMBeanNotificationInfo</td>
* <td>0-6 where 0: unknown; 1: non-recoverable;
* 2: critical, failure; 3: major, severe;
* 4: minor, marginal, error; 5: warning;
* 6: normal, cleared, informative</td></tr>
*
- * <tr><td>targetObject</td><td>Object</td><td>ModelMBeanOperationInfo</td>
+ * <tr><th scope="row">targetObject</th><td>Object</td><td>ModelMBeanOperationInfo</td>
* <td>Object on which to execute this method.</td></tr>
*
- * <tr><td>targetType</td><td>String</td><td>ModelMBeanOperationInfo</td>
+ * <tr><th scope="row">targetType</th><td>String</td><td>ModelMBeanOperationInfo</td>
* <td>type of object reference for targetObject. Can be:
* ObjectReference | Handle | EJBHandle | IOR | RMIReference.</td></tr>
*
- * <tr id="value-field"><td>value</td><td>Object</td>
+ * <tr id="value-field"><th scope="row">value</th><td>Object</td>
* <td>ModelMBeanAttributeInfo<br>ModelMBeanOperationInfo</td>
* <td>Current (cached) value for attribute or operation.</td></tr>
*
- * <tr id="visibility"><td>visibility</td><td>Number</td><td>Any</td>
+ * <tr id="visibility"><th scope="row">visibility</th><td>Number</td><td>Any</td>
* <td>1-4 where 1: always visible, 4: rarely visible.</td></tr>
*
+ * </tbody>
* </table>
*
* @since 1.5
--- a/jdk/src/java.management/share/classes/javax/management/DescriptorKey.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/DescriptorKey.java Wed Aug 30 12:45:43 2017 -0700
@@ -94,13 +94,17 @@
* <p>then the resulting {@code Descriptor} will contain the following
* fields:</p>
*
- * <table border="1">
+ * <table class="striped">
* <caption style="display:none">Descriptor Fields</caption>
- * <tr><th>Name</th><th>Value</th></tr>
- * <tr><td>units</td><td>"bytes"</td></tr>
- * <tr><td>descriptionResourceKey</td><td>"bytes.key"</td></tr>
- * <tr><td>descriptionResourceBundleBaseName</td>
+ * <thead>
+ * <tr><th scope="col">Name</th><th scope="col">Value</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">units</th><td>"bytes"</td></tr>
+ * <tr><th scope="row">descriptionResourceKey</th><td>"bytes.key"</td></tr>
+ * <tr><th scope="row">descriptionResourceBundleBaseName</th>
* <td>"com.example.foo.MBeanResources"</td></tr>
+ * </tbody>
* </table>
*
* <p>An annotation such as {@code @Units} can be applied to:</p>
@@ -144,24 +148,28 @@
* or an array of annotations. The value of the field is derived from
* the value of the annotation element as follows:</p>
*
- * <table border="1">
+ * <table class="striped">
* <caption style="display:none">Descriptor Field Types</caption>
- * <tr><th>Annotation element</th><th>Descriptor field</th></tr>
- * <tr><td>Primitive value ({@code 5}, {@code false}, etc)</td>
+ * <thead>
+ * <tr><th scope="col">Annotation element</th><th scope="col">Descriptor field</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">Primitive value ({@code 5}, {@code false}, etc)</th>
* <td>Wrapped value ({@code Integer.valueOf(5)},
* {@code Boolean.FALSE}, etc)</td></tr>
- * <tr><td>Class constant (e.g. {@code Thread.class})</td>
+ * <tr><th scope="row">Class constant (e.g. {@code Thread.class})</th>
* <td>Class name from {@link Class#getName()}
* (e.g. {@code "java.lang.Thread"})</td></tr>
- * <tr><td>Enum constant (e.g. {@link ElementType#FIELD})</td>
+ * <tr><th scope="row">Enum constant (e.g. {@link ElementType#FIELD})</th>
* <td>Constant name from {@link Enum#name()}
* (e.g. {@code "FIELD"})</td></tr>
- * <tr><td>Array of class constants or enum constants</td>
+ * <tr><th scope="row">Array of class constants or enum constants</th>
* <td>String array derived by applying these rules to each
* element</td></tr>
- * <tr><td>Value of any other type<br>
- * ({@code String}, {@code String[]}, {@code int[]}, etc)</td>
+ * <tr><th scope="row">Value of any other type<br>
+ * ({@code String}, {@code String[]}, {@code int[]}, etc)</th>
* <td>The same value</td></tr>
+ * </tbody>
* </table>
*
* @since 1.6
--- a/jdk/src/java.management/share/classes/javax/management/MXBean.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/MXBean.java Wed Aug 30 12:45:43 2017 -0700
@@ -93,28 +93,26 @@
Standard MBean concept. Here is how a managed object might be
represented as a Standard MBean, and as an MXBean:</p>
- <table class="plain">
- <caption style="display:none">Standard Bean vs. MXBean</caption>
- <tr>
- <th>Standard MBean</th><th>MXBean</th>
- </tr>
- <tr>
- <td><pre>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>Standard MBean</h4>
+ <pre>
public interface MemoryPool<b>MBean</b> {
String getName();
MemoryUsage getUsage();
// ...
}
- </pre></td>
- <td><pre>
+ </pre>
+ </div>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>MXBean</h4>
+ <pre>
public interface MemoryPool<b>MXBean</b> {
String getName();
MemoryUsage getUsage();
// ...
}
- </pre></td>
- </tr>
- </table>
+ </pre>
+ </div>
<p>As you can see, the definitions are very similar. The only
difference is that the convention for naming the interface is to use
@@ -134,13 +132,9 @@
<p>So, we might define <code>MemoryUsage</code> like this:</p>
- <table class="plain">
- <caption style="display:none">Standard Bean vs. MXBean</caption>
- <tr>
- <th>Standard MBean</th><th>MXBean</th>
- </tr>
- <tr>
- <td><pre>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>Standard MBean</h4>
+ <pre>
public class MemoryUsage <b>implements Serializable</b> {
// standard JavaBean conventions with getters
@@ -151,8 +145,11 @@
long getCommitted() {...}
long getMax() {...}
}
- </pre></td>
- <td><pre>
+ </pre>
+ </div>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>MXBean</h4>
+ <pre>
public class MemoryUsage {
// standard JavaBean conventions with getters
<b>@ConstructorParameters({"init", "used", "committed", "max"})</b>
@@ -163,9 +160,8 @@
long getCommitted() {...}
long getMax() {...}
}
- </pre></td>
- </tr>
- </table>
+ </pre>
+ </div>
<p>The definitions are the same in the two cases, except
that with the MXBean, <code>MemoryUsage</code> no longer needs to
@@ -197,29 +193,28 @@
<p>This becomes clearer if we compare what the clients of the two
models might look like:</p>
- <table class="plain">
- <caption style="display:none">Standard Bean vs. MXBean</caption>
- <tr>
- <th>Standard MBean</th><th>MXBean</th>
- </tr>
- <tr>
- <td><pre>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>Standard MBean</h4>
+ <pre>
String name = (String)
mbeanServer.{@link MBeanServer#getAttribute
getAttribute}(objectName, "Name");
<b>MemoryUsage</b> usage = (<b>MemoryUsage</b>)
mbeanServer.getAttribute(objectName, "Usage");
<b>long used = usage.getUsed();</b>
- </pre></td>
- <td><pre>
+ </pre>
+ </div>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>MXBean</h4>
+ <pre>
String name = (String)
mbeanServer.{@link MBeanServer#getAttribute
getAttribute}(objectName, "Name");
<b>{@link CompositeData}</b> usage = (<b>CompositeData</b>)
mbeanServer.getAttribute(objectName, "Usage");
<b>long used = (Long) usage.{@link CompositeData#get get}("used");</b>
- </pre></td>
- </table>
+ </pre>
+ </div>
<p>For attributes with simple types like <code>String</code>, the
code is the same. But for attributes with complex types, the
@@ -235,13 +230,9 @@
managed objects when you know the model beforehand, regardless
of whether you are using Standard MBeans or MXBeans:</p>
- <table class="plain">
- <caption style="display:none">Standard Bean vs. MXBean</caption>
- <tr>
- <th>Standard MBean</th><th>MXBean</th>
- </tr>
- <tr>
- <td><pre>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>Standard MBean</h4>
+ <pre>
MemoryPool<b>MBean</b> proxy =
JMX.<b>{@link JMX#newMBeanProxy(MBeanServerConnection, ObjectName,
Class) newMBeanProxy}</b>(
@@ -251,8 +242,11 @@
String name = proxy.getName();
MemoryUsage usage = proxy.getUsage();
long used = usage.getUsed();
- </pre></td>
- <td><pre>
+ </pre>
+ </div>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>MXBean</h4>
+ <pre>
MemoryPool<b>MXBean</b> proxy =
JMX.<b>{@link JMX#newMXBeanProxy(MBeanServerConnection, ObjectName,
Class) newMXBeanProxy}</b>(
@@ -262,63 +256,58 @@
String name = proxy.getName();
MemoryUsage usage = proxy.getUsage();
long used = usage.getUsed();
- </pre></td>
- </tr>
- </table>
+ </pre>
+ </div>
<p>Implementing the MemoryPool object works similarly for both
Standard MBeans and MXBeans.</p>
- <table class="plain">
- <caption style="display:none">Standard Bean vs. MXBean</caption>
- <tr>
- <th>Standard MBean</th><th>MXBean</th>
- </tr>
- <tr>
- <td><pre>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>Standard MBean</h4>
+ <pre>
public class MemoryPool
implements MemoryPool<b>MBean</b> {
public String getName() {...}
public MemoryUsage getUsage() {...}
// ...
}
- </pre></td>
- <td><pre>
+ </pre>
+ </div>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>MXBean</h4>
+ <pre>
public class MemoryPool
implements MemoryPool<b>MXBean</b> {
public String getName() {...}
public MemoryUsage getUsage() {...}
// ...
}
- </pre></td>
- </tr>
- </table>
+ </pre>
+ </div>
<p>Registering the MBean in the MBean Server works in the same way
in both cases:</p>
- <table class="plain">
- <caption style="display:none">Standard Bean vs. MXBean</caption>
- <tr>
- <th>Standard MBean</th><th>MXBean</th>
- </tr>
- <tr>
- <td><pre>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>Standard MBean</h4>
+ <pre>
{
MemoryPool<b>MBean</b> pool = new MemoryPool();
mbeanServer.{@link MBeanServer#registerMBean
registerMBean}(pool, objectName);
}
- </pre></td>
- <td><pre>
+ </pre>
+ </div>
+ <div style="display:inline-block; margin: 0 3em">
+ <h4>MXBean</h4>
+ <pre>
{
MemoryPool<b>MXBean</b> pool = new MemoryPool();
mbeanServer.{@link MBeanServer#registerMBean
registerMBean}(pool, objectName);
}
- </pre></td>
- </tr>
- </table>
+ </pre>
+ </div>
<h2 id="mxbean-def">Definition of an MXBean</h2>
@@ -486,70 +475,71 @@
<table class="striped">
<caption style="display:none">Type Mapping Rules</caption>
+ <thead>
<tr>
- <th>Java type <em>J</em></th>
- <th><em>opentype(J)</em></th>
- <th><em>opendata(J)</em></th>
+ <th scope="col">Java type <em>J</em></th>
+ <th scope="col"><em>opentype(J)</em></th>
+ <th scope="col"><em>opendata(J)</em></th>
</tr>
- <tbody style="vertical-align:top">
+ </thead>
+ <tbody style="text-align:left; vertical-align:top">
<tr>
- <td>{@code int}, {@code boolean}, etc<br>
- (the 8 primitive Java types)</td>
+ <th scope="row">{@code int}, {@code boolean}, etc<br>
+ (the 8 primitive Java types)</th>
<td>{@code SimpleType.INTEGER},<br>
{@code SimpleType.BOOLEAN}, etc</td>
<td>{@code Integer}, {@code Boolean}, etc<br>
(the corresponding boxed types)</td>
</tr>
<tr>
- <td>{@code Integer}, {@code ObjectName}, etc<br>
- (the types covered by {@link SimpleType})</td>
+ <th scope="row">{@code Integer}, {@code ObjectName}, etc<br>
+ (the types covered by {@link SimpleType})</th>
<td>the corresponding {@code SimpleType}</td>
<td><em>J</em>, the same type</td>
</tr>
<tr>
- <td>{@code int[]} etc<br>
- (a one-dimensional array with<br>
- primitive element type)</td>
+ <th scope="row">{@code int[]} etc<br>
+ (a one-dimensional array with primitive element type)</th>
<td>{@code ArrayType.getPrimitiveArrayType(int[].class)} etc</td>
<td><em>J</em>, the same type</td>
<tr>
- <td><em>E</em>{@code []}<br>
+ <th scope="row"><em>E</em>{@code []}<br>
(an array with non-primitive element type <em>E</em>;
- this includes {@code int[][]}, where <em>E</em> is {@code int[]})</td>
+ this includes {@code int[][]}, where <em>E</em> is {@code int[]})</th>
<td>{@code ArrayType.getArrayType(}<em>opentype(E)</em>{@code )}</td>
<td><em>opendata(E)</em>{@code []}</td>
</tr>
<tr>
- <td>{@code List<}<em>E</em>{@code >}<br>
+ <th scope="row">{@code List<}<em>E</em>{@code >}<br>
{@code Set<}<em>E</em>{@code >}<br>
- {@code SortedSet<}<em>E</em>{@code >} (see below)</td>
+ {@code SortedSet<}<em>E</em>{@code >} (see below)</th>
<td>same as for <em>E</em>{@code []}</td>
<td>same as for <em>E</em>{@code []}</td>
</tr>
<tr>
- <td>An enumeration <em>E</em><br>
+ <th scope="row">An enumeration <em>E</em><br>
(declared in Java as {@code enum }<em>E</em>
- {@code {...}})</td>
+ {@code {...}})</th>
<td>{@code SimpleType.STRING}</td>
<td>{@code String}</td>
</tr>
<tr>
- <td>{@code Map<}<em>K</em>,<em>V</em>{@code >}<br>
- {@code SortedMap<}<em>K</em>,<em>V</em>{@code >}</td>
+ <th scope="row">{@code Map<}<em>K</em>,<em>V</em>{@code >}<br>
+ {@code SortedMap<}<em>K</em>,<em>V</em>{@code >}</th>
<td>{@link TabularType}<br>
(see below)</td>
<td>{@link TabularData}<br>
(see below)</td>
</tr>
<tr>
- <td>An MXBean interface</td>
+ <th scope="row">An MXBean interface</th>
<td>{@code SimpleType.OBJECTNAME}<br>
(see below)</td>
<td>{@link ObjectName}<br>
(see below)</td>
</tr>
<tr>
- <td>Any other type</td>
+ <th scope="row">Any other type</th>
<td>{@link CompositeType},
if possible<br>
(see below)</td>
--- a/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -59,41 +59,45 @@
*
* <table class="striped">
* <caption style="display:none">ModelMBeanAttributeInfo Fields</caption>
- * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr>
- * <tr><td>name</td><td>String</td>
+ * <thead>
+ * <tr><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Meaning</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">name</th><td>String</td>
* <td>Attribute name.</td></tr>
- * <tr><td>descriptorType</td><td>String</td>
+ * <tr><th scope="row">descriptorType</th><td>String</td>
* <td>Must be "attribute".</td></tr>
- * <tr id="value-field"><td>value</td><td>Object</td>
+ * <tr id="value-field"><th scope="row">value</th><td>Object</td>
* <td>Current (cached) value for attribute.</td></tr>
- * <tr><td>default</td><td>Object</td>
+ * <tr><th scope="row">default</th><td>Object</td>
* <td>Default value for attribute.</td></tr>
- * <tr><td>displayName</td><td>String</td>
+ * <tr><th scope="row">displayName</th><td>String</td>
* <td>Name of attribute to be used in displays.</td></tr>
- * <tr><td>getMethod</td><td>String</td>
+ * <tr><th scope="row">getMethod</th><td>String</td>
* <td>Name of operation descriptor for get method.</td></tr>
- * <tr><td>setMethod</td><td>String</td>
+ * <tr><th scope="row">setMethod</th><td>String</td>
* <td>Name of operation descriptor for set method.</td></tr>
- * <tr><td>protocolMap</td><td>Descriptor</td>
+ * <tr><th scope="row">protocolMap</th><td>Descriptor</td>
* <td>See the section "Protocol Map Support" in the JMX specification
* document. Mappings must be appropriate for the attribute and entries
* can be updated or augmented at runtime.</td></tr>
- * <tr><td>persistPolicy</td><td>String</td>
+ * <tr><th scope="row">persistPolicy</th><td>String</td>
* <td>One of: OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never.
* See the section "MBean Descriptor Fields" in the JMX specification
* document.</td></tr>
- * <tr><td>persistPeriod</td><td>Number</td>
+ * <tr><th scope="row">persistPeriod</th><td>Number</td>
* <td>Frequency of persist cycle in seconds. Used when persistPolicy is
* "OnTimer" or "NoMoreOftenThan".</td></tr>
- * <tr><td>currencyTimeLimit</td><td>Number</td>
- * <td>How long <a href="#value=field">value</a> is valid: <0 never,
+ * <tr><th scope="row">currencyTimeLimit</th><td>Number</td>
+ * <td>How long <a href="#value-field">value</a> is valid: <0 never,
* =0 always, >0 seconds.</td></tr>
- * <tr><td>lastUpdatedTimeStamp</td><td>Number</td>
+ * <tr><th scope="row">lastUpdatedTimeStamp</th><td>Number</td>
* <td>When <a href="#value-field">value</a> was set.</td></tr>
- * <tr><td>visibility</td><td>Number</td>
+ * <tr><th scope="row">visibility</th><td>Number</td>
* <td>1-4 where 1: always visible, 4: rarely visible.</td></tr>
- * <tr><td>presentationString</td><td>String</td>
+ * <tr><th scope="row">presentationString</th><td>String</td>
* <td>XML formatted string to allow presentation of data.</td></tr>
+ * </tbody>
* </table>
*
* <p>The default descriptor contains the name, descriptorType and displayName
--- a/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -60,19 +60,23 @@
*
* <table class="striped">
* <caption style="display:none">ModelMBeanConstructorInfo Fields</caption>
- * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr>
- * <tr><td>name</td><td>String</td>
+ * <thead>
+ * <tr><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Meaning</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">name</th><td>String</td>
* <td>Constructor name.</td></tr>
- * <tr><td>descriptorType</td><td>String</td>
+ * <tr><th scope="row">descriptorType</th><td>String</td>
* <td>Must be "operation".</td></tr>
- * <tr><td>role</td><td>String</td>
+ * <tr><th scope="row">role</th><td>String</td>
* <td>Must be "constructor".</td></tr>
- * <tr><td>displayName</td><td>String</td>
+ * <tr><th scope="row">displayName</th><td>String</td>
* <td>Human readable name of constructor.</td></tr>
- * <tr><td>visibility</td><td>Number</td>
+ * <tr><th scope="row">visibility</th><td>Number</td>
* <td>1-4 where 1: always visible 4: rarely visible.</td></tr>
- * <tr><td>presentationString</td><td>String</td>
+ * <tr><th scope="row">presentationString</th><td>String</td>
* <td>XML formatted string to describe how to present operation</td></tr>
+ * </tbody>
* </table>
*
* <p>The {@code persistPolicy} and {@code currencyTimeLimit} fields
--- a/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -167,40 +167,44 @@
*
* <table class="striped">
* <caption style="display:none">ModelMBean Fields</caption>
- * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr>
- * <tr><td>name</td><td>String</td>
+ * <thead>
+ * <tr><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Meaning</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">name</th><td>String</td>
* <td>MBean name.</td></tr>
- * <tr><td>descriptorType</td><td>String</td>
+ * <tr><th scope="row">descriptorType</th><td>String</td>
* <td>Must be "mbean".</td></tr>
- * <tr><td>displayName</td><td>String</td>
+ * <tr><th scope="row">displayName</th><td>String</td>
* <td>Name of MBean to be used in displays.</td></tr>
- * <tr><td>persistPolicy</td><td>String</td>
+ * <tr><th scope="row">persistPolicy</th><td>String</td>
* <td>One of: OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never.
* See the section "MBean Descriptor Fields" in the JMX specification
* document.</td></tr>
- * <tr><td>persistLocation</td><td>String</td>
+ * <tr><th scope="row">persistLocation</th><td>String</td>
* <td>The fully qualified directory name where the MBean should be
* persisted (if appropriate).</td></tr>
- * <tr><td>persistFile</td><td>String</td>
+ * <tr><th scope="row">persistFile</th><td>String</td>
* <td>File name into which the MBean should be persisted.</td></tr>
- * <tr><td>persistPeriod</td><td>Number</td>
+ * <tr><th scope="row">persistPeriod</th><td>Number</td>
* <td>Frequency of persist cycle in seconds, for OnTime and
* NoMoreOftenThan PersistPolicy</td></tr>
- * <tr><td>currencyTimeLimit</td><td>Number</td>
+ * <tr><th scope="row">currencyTimeLimit</th><td>Number</td>
* <td>How long cached value is valid: <0 never, =0 always,
* >0 seconds.</td></tr>
- * <tr><td>log</td><td>String</td>
+ * <tr><th scope="row">log</th><td>String</td>
* <td>t: log all notifications, f: log no notifications.</td></tr>
- * <tr><td>logfile</td><td>String</td>
+ * <tr><th scope="row">logfile</th><td>String</td>
* <td>Fully qualified filename to log events to.</td></tr>
- * <tr><td>visibility</td><td>Number</td>
+ * <tr><th scope="row">visibility</th><td>Number</td>
* <td>1-4 where 1: always visible 4: rarely visible.</td></tr>
- * <tr><td>export</td><td>String</td>
+ * <tr><th scope="row">export</th><td>String</td>
* <td>Name to be used to export/expose this MBean so that it is
* findable by other JMX Agents.</td></tr>
- * <tr><td>presentationString</td><td>String</td>
+ * <tr><th scope="row">presentationString</th><td>String</td>
* <td>XML formatted string to allow presentation of data to be
* associated with the MBean.</td></tr>
+ * </tbody>
* </table>
*
* <P>
--- a/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -58,28 +58,32 @@
*
* <table class="striped">
* <caption style="display:none">ModelMBeanNotificationInfo Fields</caption>
- * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr>
- * <tr><td>name</td><td>String</td>
+ * <thead>
+ * <tr><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Meaning</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">name</th><td>String</td>
* <td>Notification name.</td></tr>
- * <tr><td>descriptorType</td><td>String</td>
+ * <tr><th scope="row">descriptorType</th><td>String</td>
* <td>Must be "notification".</td></tr>
- * <tr><td>severity</td><td>Number</td>
+ * <tr><th scope="row">severity</th><td>Number</td>
* <td>0-6 where 0: unknown; 1: non-recoverable;
* 2: critical, failure; 3: major, severe;
* 4: minor, marginal, error; 5: warning;
* 6: normal, cleared, informative</td></tr>
- * <tr><td>messageID</td><td>String</td>
+ * <tr><th scope="row">messageID</th><td>String</td>
* <td>Unique key for message text (to allow translation, analysis).</td></tr>
- * <tr><td>messageText</td><td>String</td>
+ * <tr><th scope="row">messageText</th><td>String</td>
* <td>Text of notification.</td></tr>
- * <tr><td>log</td><td>String</td>
+ * <tr><th scope="row">log</th><td>String</td>
* <td>T - log message, F - do not log message.</td></tr>
- * <tr><td>logfile</td><td>String</td>
+ * <tr><th scope="row">logfile</th><td>String</td>
* <td>fully qualified file name appropriate for operating system.</td></tr>
- * <tr><td>visibility</td><td>Number</td>
+ * <tr><th scope="row">visibility</th><td>Number</td>
* <td>1-4 where 1: always visible 4: rarely visible.</td></tr>
- * <tr><td>presentationString</td><td>String</td>
+ * <tr><th scope="row">presentationString</th><td>String</td>
* <td>XML formatted string to allow presentation of data.</td></tr>
+ * </tbody>
* </table>
*
* <p>The default descriptor contains the name, descriptorType,
--- a/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java Wed Aug 30 12:45:43 2017 -0700
@@ -61,32 +61,36 @@
*
* <table class="striped">
* <caption style="display:none">ModelMBeanOperationInfo Fields</caption>
- * <tr><th>Name</th><th>Type</th><th>Meaning</th></tr>
- * <tr><td>name</td><td>String</td>
+ * <thead>
+ * <tr><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Meaning</th></tr>
+ * </thead>
+ * <tbody style="text-align:left">
+ * <tr><th scope="row">name</th><td>String</td>
* <td>Operation name.</td></tr>
- * <tr><td>descriptorType</td><td>String</td>
+ * <tr><th scope="row">descriptorType</th><td>String</td>
* <td>Must be "operation".</td></tr>
- * <tr><td>class</td><td>String</td>
+ * <tr><th scope="row">class</th><td>String</td>
* <td>Class where method is defined (fully qualified).</td></tr>
- * <tr><td>role</td><td>String</td>
+ * <tr><th scope="row">role</th><td>String</td>
* <td>Must be "operation", "getter", or "setter".</td></tr>
- * <tr><td>targetObject</td><td>Object</td>
+ * <tr><th scope="row">targetObject</th><td>Object</td>
* <td>Object on which to execute this method.</td></tr>
- * <tr><td>targetType</td><td>String</td>
+ * <tr><th scope="row">targetType</th><td>String</td>
* <td>type of object reference for targetObject. Can be:
* ObjectReference | Handle | EJBHandle | IOR | RMIReference.</td></tr>
- * <tr><td>value</td><td>Object</td>
+ * <tr><th scope="row">value</th><td>Object</td>
* <td>Cached value for operation.</td></tr>
- * <tr><td>displayName</td><td>String</td>
+ * <tr><th scope="row">displayName</th><td>String</td>
* <td>Human readable display name of the operation.</td>
- * <tr><td>currencyTimeLimit</td><td>Number</td>
+ * <tr><th scope="row">currencyTimeLimit</th><td>Number</td>
* <td>How long cached value is valid.</td></tr>
- * <tr><td>lastUpdatedTimeStamp</td><td>Number</td>
+ * <tr><th scope="row">lastUpdatedTimeStamp</th><td>Number</td>
* <td>When cached value was set.</td></tr>
- * <tr><td>visibility</td><td>Number</td>
+ * <tr><th scope="row">visibility</th><td>Number</td>
* <td>1-4 where 1: always visible 4: rarely visible.</td></tr>
- * <tr><td>presentationString</td><td>String</td>
+ * <tr><th scope="row">presentationString</th><td>String</td>
* <td>XML formatted string to describe how to present operation</td></tr>
+ * </tbody>
* </table>
*
* <p>The default descriptor will have name, descriptorType, displayName and
--- a/jdk/src/java.management/share/classes/javax/management/remote/JMXConnectionNotification.java Wed Aug 30 11:37:48 2017 -0700
+++ b/jdk/src/java.management/share/classes/javax/management/remote/JMXConnectionNotification.java Wed Aug 30 12:45:43 2017 -0700
@@ -40,34 +40,38 @@
*
* <p>The notification type is one of the following:</p>
*
- * <table>
+ * <table class="striped">
* <caption style="display:none">JMXConnectionNotification Types</caption>
*
+ * <thead style="text-align:left">
* <tr>
- * <th style="text-align:left">Type</th>
- * <th style="text-align:left">Meaning</th>
+ * <th scope="col">Type</th>
+ * <th scope="col">Meaning</th>
* </tr>
+ * </thead>
*
+ * <tbody style="text-align:left">
* <tr>
- * <td><code>jmx.remote.connection.opened</code></td>
+ * <th scope="row"><code>jmx.remote.connection.opened</code></th>
* <td>A new client connection has been opened.</td>
* </tr>
*
* <tr>
- * <td><code>jmx.remote.connection.closed</code></td>
+ * <th scope="row"><code>jmx.remote.connection.closed</code></th>
* <td>A client connection has been closed.</td>
* </tr>
*
* <tr>
- * <td><code>jmx.remote.connection.failed</code></td>
+ * <th scope="row"><code>jmx.remote.connection.failed</code></th>
* <td>A client connection has failed unexpectedly.</td>
* </tr>
*
* <tr>
- * <td><code>jmx.remote.connection.notifs.lost</code></td>
+ * <th scope="row"><code>jmx.remote.connection.notifs.lost</code></th>
* <td>A client connection has potentially lost notifications. This
* notification only appears on the client side.</td>
* </tr>
+ * </tbody>
* </table>
*
* <p>The <code>timeStamp</code> of the notification is a time value