Sign in using Google or Yahoo! id.  

mule custom transformer

 Comments Share:   Twitter   Reddit   HackerNews   Facebook 
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>
Posted on June 21, 2012 02:30 AM by Subhash Chandran
mule
blog comments powered by Disqus