Currently, all request Sources are transformed into the required type. For instance, the AbstractDomPayloadEndpoint always transforms the request Source into a DOMResult, and passes that on to invokeInternal(). This is quite expensive, and not required.
Instead, we should inspect the source, and see if it is of the required type. If so, use it directly, otherwise, transform.