throw new RuntimeException(String.format("Advise method %s must take a parameter of type %s.",
toString(method), MethodAdviceReceiver.class.getName()));
Set<Class> markers = extractMarkers(method, Advise.class);
AdvisorDef def = new AdvisorDefImpl(method, extractPatterns(annotation, advisorId, method), extractConstraints(method),
classFactory, advisorId, serviceInterface, markers);
advisorDefs.put(advisorId, def);
}