1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.monitoring.spring;
19
20 import org.apache.commons.monitoring.aop.DefaultMonitorNameExtractor;
21 import org.apache.commons.monitoring.aop.MonitorNameExtractor;
22 import org.springframework.aop.TargetSource;
23 import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
24
25 public class BeanNameMonitoringAutoProxyCreator extends BeanNameAutoProxyCreator {
26 private MonitorNameExtractor counterNameExtractor = DefaultMonitorNameExtractor.INSTANCE;
27
28 @Override
29 protected Object[] getAdvicesAndAdvisorsForBean(final Class beanClass, final String beanName, final TargetSource targetSource) {
30 if (super.getAdvicesAndAdvisorsForBean(beanClass, beanName, targetSource) != DO_NOT_PROXY) {
31 final AopaliancePerformanceInterceptor interceptor = new AopaliancePerformanceInterceptor();
32 interceptor.setMonitorNameExtractor(counterNameExtractor);
33 return new Object[] { interceptor };
34 }
35 return DO_NOT_PROXY;
36 }
37
38 public void setCounterNameExtractor(final MonitorNameExtractor counterNameExtractor) {
39 this.counterNameExtractor = counterNameExtractor;
40 }
41
42 public MonitorNameExtractor getCounterNameExtractor() {
43 return counterNameExtractor;
44 }
45 }