package com.test;
import org.apache.commons.httpclient.ContentLengthInputStream;
import org.mule.api.MuleMessage;
import org.mule.api.transformer.DiscoverableTransformer;
import org.mule.api.transformer.TransformerException;
import org.mule.transformer.AbstractMessageTransformer;
import org.mule.transformer.types.DataTypeFactory;
public class CustomTransformer extends AbstractMessageTransformer implements DiscoverableTransformer {
private int weighting = DiscoverableTransformer. DEFAULT_PRIORITY_WEIGHTING + 1;
public CustomTransformer() {
registerSourceType(DataTypeFactory.create(ContentLengthInputStream.class));
setReturnDataType(DataTypeFactory.create(ReadBody.class));
setName("ObjectToReadBody");
}
@Override
public int getPriorityWeighting() {
return weighting;
}
@Override
public void setPriorityWeighting(int weighting) {
this.weighting = weighting;
}
@Override
public Object transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {
System.out.println("\n\n\nCALLED");
ContentLengthInputStream is = message.getPayload(ContentLengthInputStream.class);
return new ReadBody("subhash");
}
}
package com.test;
public class ReadBodyComponent {
public String readBody(ReadBody body) {
return body.toString();
}
}
<custom-transformer class="com.test.CustomTransformer" name="custom-tr" doc:name="Java"/>
<flow name="subhashFlow1" doc:name="subhashFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" transformer-refs="custom-tr" doc:name="HTTP"/>
<component class="com.test.ReadBodyComponent" doc:name="Java"/>
</flow>
|