/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.jembi.openhim.transformers; import java.util.Arrays; import java.util.List; import org.jembi.openhim.RestfulHttpRequest; import org.jembi.openhim.RestfulHttpResponse; import org.mule.api.MuleMessage; import org.mule.api.transformer.TransformerException; import org.mule.api.transport.PropertyScope; import org.mule.transformer.AbstractMessageTransformer; public class RestfulHttpResponseToHttpResponseTransformer extends AbstractMessageTransformer { // http headers not to copy back private List httpHeaderBlackList = Arrays.asList(new String[] { "Authorization", "Host", "User-Agent", "Keep-Alive" }); @Override public Object transformMessage(MuleMessage msg, String enc) throws TransformerException { RestfulHttpResponse restRes = (RestfulHttpResponse) msg.getPayload(); msg.setOutboundProperty("http.status", restRes.getHttpStatus()); msg.setPayload(restRes.getBody()); for (String header : restRes.getHttpHeaders().keySet()) { if (!httpHeaderBlackList.contains(header)) { msg.setProperty(header, restRes.getHttpHeaders().get(header), PropertyScope.OUTBOUND); } } return msg; } }