Apigee javacallout - Difference between MessageContext and ExecutionResult

Q) I can set properties on an ExecutionResult. What are they used for? What is the difference to setting a Variable on the MessageContext? When should I use Properties on the ExecutionResult and when Variables on the MessageContext ??

this is a really old question.

These objects are documented in the api docs.

You should generally use setVariable / getVariable on the MessageContext.