Name MBean Domains Just Like Packages
The domain name is part of the object name
of an MBean and serves as a namespace mechanism for MBeans. The JMX
specification imposes a few limitations on how you can name the
domain of an MBean. For instance, you can’t use
wildcard characters (? and *) or a comma, colon, or equals sign. You
also cannot use the JMImplementation string as a
domain name because it is reserved for the particular JMX
implementation you’re using.
Other than that, there are no further restrictions on naming the domain of your MBeans. But as I said, with this freedom comes a potential problem: object name collisions. If the domain name you choose for your MBean is the same as an object name that is already registered, the MBean server will not allow you to register your MBean!
It’s necessary, therefore, to take great care when choosing a naming idiom because you want to ensure that your MBeans can coexist with MBeans named by other developers from your team, company, and even the industry. As a developer, I understand the tendency to create new idioms to solve naming problems. For example, I could use my application’s name as the domain name for all of my MBeans. However, this could lead to problems when integrating with other applications. Imagine if you have a great deal of investment in a particular domain naming idiom, only to find out that none of your MBeans can be registered as a result of collisions with MBeans from another vendor!
Java uses packages as its ...