@Override
public DataSource invoke(DataSource msg) {
try {
final URL url = new URL(endpoint);
final HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod((String) requestContext.get(MessageContext.HTTP_REQUEST_METHOD));
Map<String, List<String>> header = (Map<String, List<String>>)requestContext.get(MessageContext.HTTP_REQUEST_HEADERS);
for (Map.Entry<String, List<String>> entry : header.entrySet()) {
String value = StringUtil.join(entry.getValue(), ","); //$NON-NLS-1$
httpConn.setRequestProperty(entry.getKey(), value);