jmx-dev RFR: 8318707: Remove the Java Management Extension (JMX) Management Applet (m-let) feature

Kevin Walls kevinw at openjdk.org
Thu Jan 4 10:25:26 UTC 2024


On Thu, 4 Jan 2024 10:02:39 GMT, Kevin Walls <kevinw at openjdk.org> wrote:

>> test/jdk/javax/management/Introspector/ClassLeakTest.java line 53:
>> 
>>> 51: 
>>> 52:         MBeanServer mbs = MBeanServerFactory.createMBeanServer();
>>> 53:         ObjectName testName = new ObjectName("x:name=Test");
>> 
>> Q: I'd just like to understand why it is `x:name=Test` instead of `x:type=Test` as it was before.
>
> These ObjectName patterns (domain:key=value) don't matter very much for these test mbeans.
> We just need an ObjectName to pass when registering the MBean, and also to use when querying, e.g. calling getMBeanInfo.
> 
> The domain part was "x" but could be empty, but it must also define at least one key=value.
> The "type=mlet" might still work (I just tested: it does 8-) ), but I wanted to remove it as it would be misleading.
> So we need to add some key=value and just giving a name is enough.

In ClassLeakTest.java, it was creating two MBeans, but now only creates one.
It was creating a PrivateMLet (which it registers using type=mlet) and comparing classloader with another MBean.  The second MBean is created using the m-let name as the "loader name" parameter to mbs.createMBean().  This doesn't make sense without MLets, which are classloaders.  

The test retains is stated goal of checking a reference to the MBean class is not retained after it is unloaded.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16363#discussion_r1441576425


More information about the jmx-dev mailing list