Can please anybody explain the detector MBean design of JBoss Remoting 1.2.0 to me?
There is a class AbstractDetector which implements the interface Detector, as well as the MBean interface AbstractDetectorMBean. The classes JNDIDetector and MulticastDetector both extend AbstractDetector. The MBean interfaces implemented by these classes (JNDIDetectorMBean and MulticastDetectorMBean) only extend the Detector interface. This results in a MBean browser only displaying the attributes and operations of JNDIDetector (respectively, MulticastDetector) which are directly declared within JNDIDetectorMBean and the inherited attributes/operations from the Detector interface. The attributes/operations of the AbstractDetectorMBean are not visible.
Now, I would consider this a major design flaw. But maybe, ther is a good reason to do so, that I don't see. Please enlighten me!
IMHO, the JNDIDetectorMBean and the MulticastDetectorMBean interfaces should extend AbstractDetectorMBean; AbstractDetectorMBean should extend Detector.
BTW, there is a spelling error in the ServerInvokerMBean interface: setConfigration(...) vs. getConfiguration(), resulting in two different MBean attributes visible - one read only, the other write only.
Correct on all points. Will be corrected. Thanks.