On Thursday, August 14, 2003, at 11:56 am, Alex Blewitt wrote:

Though as soon as I did this something hit me - if you add a component by itself - and a component doesn't have an ObjectName (at least on the Component interface today) then how does the Container know the ObjectNames of the components? i.e. how can we implement the getComponentNames() method?

(a) I don't think the getComponentNames() adds anything that you couldn't get yourself from the getComponents()

Its there for JMX agents & GUIs. Its just 1 helper method. (Should probably return ObjectName[] as its only real purpose is for JMX agents right?)



(b) Is it true that every Component has an ObjectName? I don't think it does (necessarily), and I think this assumption could lead to bad coding ...

Am not sure. Thats why I brought it up. Either it does or we add components to a container with an ObjectName. Though I confess to not knowing enough of jsr 77 & 88 to make that call.




Maybe I've not grokked this code fully yet but either Container needs a getObjectName() or the addComponent() method should take an ObjectName right? This is echo-ing Jan's previous comment that Component should have a method...

The point of having a separate type for Component is that it should be a component, not an ObjectName.


If you were writing

public interface JMXContainer extends Container {
}

then you might want to restrict everything having an ObjectName, but that's not necessarily going to be the case.

Remember that this stuff is internal to the container. Any old POJO or MBean could be used as a component.


James
-------
http://radio.weblogs.com/0112098/



Reply via email to