in src/java/org/apache/fulcrum/yaafi/service/advice/AdviceServiceImpl.java [168:210]
protected Object doAdvice(String name, String[] interceptorList, Object object) {
Validate.notEmpty(name, "name");
Validate.notNull(interceptorList, "interceptorList");
Validate.notNull(object, "object");
Object result = null;
String clazzName = object.getClass().getName();
// do nothing if no interceptor services are requested
if (interceptorList.length == 0) {
if (this.getLogger().isInfoEnabled()) {
String msg = "Skipping creation of dynamic proxy since no interceptors are requested : " + name;
this.getLogger().info(msg);
}
return object;
}
// skip creating a dynamic proxy if it is already advised
if (this.isAdviced(object)) {
if (this.getLogger().isInfoEnabled()) {
String msg = "Skipping creation of dynamic proxy since it is already advised : " + name;
this.getLogger().info(msg);
}
return object;
}
// create the advised object
try {
result = AvalonInterceptorFactory.create(clazzName, name, this.getServiceManager(), interceptorList,
object);
} catch (ServiceException e) {
String msg = "Unable to advice the object : " + name;
this.getLogger().error(msg, e);
throw new IllegalArgumentException(msg);
}
return result;
}