Coroutine Model Processor
Jersey ModelProcessor that finds resource methods that are implemented with a suspend function, and redefines them with a dynamically created non-suspend function. That dynamically created implementation will then use the CoroutineInvocationHandler to invoke the suspend function.
Constructors
Functions
Replace any suspend function (ie, function whose last param is a Continuation) with a dynamically created non-suspend implementation
Extract the type parameter from the continuation Type to be used as the return value for the generated function. Special case Unit->void conversion to correctly generate a void method instead of an Object/Unit returning method
Go though every child resource in the resourceModel and replace any coroutine resource methods found
Go though every child resource in the subResourceModel and replace any coroutine resource methods found