I've looked in the code more and looks like we have couple of options here
as if you return an object that is not a Response, then the new Response
gets created (i.e what ever you have set in the HttpContext is removed)
1. return a Response from your resource method (this changes my method
signatures though)
2. Use ContainerResponse filters (This may preserve method signature)
But, I'm still not sure the exact usage of HttpContext in respect to setting
headers and where it should be applied.