This behavior also simplifies any repeated loading of the classes after they have been loaded from an m-let file. Because the m-let loader has already used the code-base of the MBean, it is available to be used again. All you need to do is specify the object name of the m-let loader as the class loader when creating the MBean.
You can also load other MBeans in the same code-base, once the code-base has been accessed by a call to the getMBeansFromURL method. In our example we will just download another MBean of the EquilateralTriangle class.
// Create another EquilateralTriangle MBean from its class // in the EquilateralTriangle.jar file. String triangleClass = "EquilateralTriangle"; ObjectName triangleName = new ObjectName( "MLetExample:name=" + triangleClass + ",id=3"); Object triangleParams[] = {new Integer(20)}; String triangleSignature[] = {"java.lang.Integer"}; server.createMBean(triangleClass, triangleName, mletName, triangleParams, triangleSignature); |
Again, loading classes from known code-bases or reloading a class directly from its JAR file implies that the agent or MBean programmer has some knowledge of the code-bases and JAR file contents at runtime.