[jboss-dev] MBeanConfigurator service in varia

Brian Stansberry brian.stansberry at redhat.com
Wed Aug 13 14:19:48 EDT 2008


Adrian Brock wrote:
>>From the WIKI page:
> 
> "Make sure you know what you are doing when you use this service, as
> should only be used in rare cases."
> 
> My guess is Tom wrote it because something he had was exposing
> a port but it wasn't deployed through a -service.xml,
> i.e. it was doing registerMBean() directly and then the config
> was hardwired within the MBean?
> 

Yes, that must be it.  Included in the package in varia is a 
"SampleService" class that does just that.

> It would certainly be wrong to apply service binding config
> at JMX registeration for -service.xml since the attributes
> aren't set until the later configuration stage
> and would therefore overwrite the SBM settings.
> 
> Since this is a rare case, it doesn't seem worth
> having a generic solution. All you need is a simple
> example of how to use Dimitris's Listener MBean
> to respond to a jmx registration event by doing:
> 
> Object value = serviceBindingManager.getXXXBinding(...);
> mbeanServer.setAttribute(objectName, attributeName, value);
> 
> with the SBM injected.
> 

Think I'll take the existing class, rename it MBeanConfiguratorSupport, 
add a property for the ServiceBindingManager and make the class 
abstract.  Take the old

public void mbeanRegistered(ObjectName objectName)
          throws ReflectionException, InstanceNotFoundException, 
MBeanException, MalformedObjectNameException

and make it abstract. People can extend it as they wish to make the 
desired serviceBindingManager.getXXXBinding(...) and 
mbeanServer.setAttribute(...) calls. The support class just handles the 
boilerplate NotificationListener stuff.

There's an existing example that can be reworked to show this.

That will take about 15 minutes to do.

> Or for a POJO, I guess it would be an AOP Constructor
> interceptor? Since the bean would not be managed by the MC.
> 

I'll leave thinking about that as an exercise for the community. :-)

> On Wed, 2008-08-13 at 10:58 -0500, Brian Stansberry wrote:
>> I found this service buried in the guts of varia:
>>
>> http://wiki.jboss.org/wiki/MbeanConfigurator
>>
>> Basically listens for JMX notifications of bean registrations and calls 
>> the legacy ServiceBindingManager mbean. Which, due to my work on 
>> JBAS-5192 no longer exists; a new version exists that doesn't expose the 
>> functionality this MBeanConfigurator wants [1].
>>
>> I can't see any point to this service; AFAICT all it does is use a 
>> listener to invoke the same operation that the regular mbean service 
>> deployment logic would have called anyway.
>>
>> If anyone sees any point to this that I'm missing, please let me know. 
>> Otherwise I plan to get rid of it. To continue to support this, I'll 
>> have to repackage the new SBM implementation and restore the legacy SBM 
>> as an optional service that we don't include in any standard config. 
>> Waste of a day.
>>
>> [1] http://wiki.jboss.org/wiki/AS5ServiceBindingManager
>>


-- 
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry at redhat.com



More information about the jboss-development mailing list