Unsurprisingly I agree :) Even looking at the code it seems the only
reason this is using AOP is to get a lifecycle callback on install. Why
can't we just expand the already existing incallback to optionally pass
a BeanMetaData instance?
David M. Lloyd wrote:
OK, it seems like I had made a mistake in my test of this.
But there's really no reason to use AOP for this kind of thing. AOP is
no replacement for proper API design. In fact it appears that AOP is
one of the big contributors to our slow MC startup time [1]. The best
way to implement handling of @JMX is with a simple deployment lifecycle
listener which gets an instance of the bean and its metadata, and looks
for a @JMX annotation. Why is AOP needed for this trivial problem?
- DML
[1]
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=155244
which is really what this is all about
On 05/18/2009 12:19 PM, David M. Lloyd wrote:
> As far as I'm aware, MBeans don't normally have lifecycle methods
> outside of the methods on f.e. MBeanRegistration or PersistentMBean or
> whatever (in other words, managed by the MBeanServer and not the MC).
> If the bean's mbean view is being registered to the MBeanServer, what
> else could it be doing that it's not?
>
> The idea that @JMX doesn't work with @DisableAOP was (iirc) the
> primary argument against having AOP disabled by default, but it seems
> to me that this is not true.
>
> - DML
>
> On 05/18/2009 10:51 AM, Kabir Khan wrote:
>> Looks like a user error ;-) Or are you saying it actually invokes the
>> lifecycle callback in this case?
>> On 18 May 2009, at 17:40, David M. Lloyd wrote:
>>
>>> So why should @DisableAOP be the annotation with enabling AOP being
>>> the default?
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>> <deployment xmlns="urn:jboss:bean-deployer:2.0">
>>> <bean name="TestBean"
class="javax.management.monitor.GaugeMonitor">
>>>
<annotation>(a)org.jboss.aop.microcontainer.annotations.DisableAOP()</annotation>
>>>
>>>
<annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(exposedInterface=javax.management.monitor.GaugeMonitorMBean,name="test:name=Banana",registerDirectly=false)</annotation>
>>>
>>> </bean>
>>> </deployment>
>>>
>>> - DML
>>> _______________________________________________
>>> jboss-development mailing list
>>> jboss-development(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/jboss-development
>>
>> _______________________________________________
>> jboss-development mailing list
>> jboss-development(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/jboss-development
>
_______________________________________________
jboss-development mailing list
jboss-development(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-development
--
Jason T. Greene
JBoss, a division of Red Hat