implement annotated content negotiation for java and groovy