1 10 11 package org.mule.extras.spring.remoting; 12 13 import java.io.ObjectOutputStream ; 14 15 import org.apache.commons.io.output.ByteArrayOutputStream; 16 import org.mule.transformers.AbstractTransformer; 17 import org.mule.umo.transformer.TransformerException; 18 import org.springframework.remoting.support.RemoteInvocationResult; 19 20 public class ObjectToRemoteInvocationResultTransformer extends AbstractTransformer 21 { 22 private static final long serialVersionUID = -7067819657247418549L; 23 24 public ObjectToRemoteInvocationResultTransformer() 25 { 26 super(); 27 setReturnClass(byte[].class); 28 } 29 30 protected Object doTransform(Object src, String encoding) throws TransformerException 31 { 32 try 33 { 34 if (logger.isDebugEnabled()) 35 { 36 logger.debug("ObjectToRemoteInvocationResult.doTransform(" + src + ")"); 37 } 38 39 RemoteInvocationResult rval; 40 41 if (src instanceof RemoteInvocationResult) 42 { 43 rval = (RemoteInvocationResult)src; 44 } 45 else 46 { 47 rval = new RemoteInvocationResult(src); 48 } 49 50 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 51 ObjectOutputStream oos = new ObjectOutputStream (baos); 52 oos.writeObject(rval); 53 oos.close(); 54 return baos.toByteArray(); 55 } 56 catch (Exception e) 57 { 58 throw new TransformerException(this, e); 59 } 60 } 61 } 62 | Popular Tags |