@SuppressWarnings("unchecked")
public static SagaMethodMessageHandler getInstance(MethodMessageHandler methodHandler) {
Method handlerMethod = methodHandler.getMethod();
SagaEventHandler handlerAnnotation = handlerMethod.getAnnotation(SagaEventHandler.class);
String associationPropertyName = handlerAnnotation.associationProperty();
Property associationProperty = PropertyAccessStrategy.getProperty(methodHandler.getPayloadType(),
associationPropertyName);
if (associationProperty == null) {
throw new AxonConfigurationException(format("SagaEventHandler %s.%s defines a property %s that is not "
+ "defined on the Event it declares to handle (%s)",
methodHandler.getMethod().getDeclaringClass().getName(),