protected void applyAllTransformers(List transformers) throws TransformerException { if (!transformers.isEmpty()) { for (Object transformer1 : transformers) { Transformer transformer = (Transformer) transformer1; if (getPayload() == null) { if (transformer.isAcceptNull()) { setPayload(NullPayload.getInstance()); } else { if (logger.isDebugEnabled()) { logger.debug( "Transformer " + transformer + " doesn't support the null payload, exiting from transformer chain."); } break; } } Class srcCls = getPayload().getClass(); if (transformer.isSourceTypeSupported(srcCls)) { Object result = transformer.transform(this); if (originalAdapter == null && MuleServer.getMuleContext().getConfiguration().isCacheMessageOriginalPayload()) { originalAdapter = adapter; } if (result instanceof MuleMessage) { synchronized (this) { adapter = ((MuleMessage) result).getAdapter(); } } else { setPayload(result); } } else { if (logger.isDebugEnabled()) { logger.debug( "Transformer " + transformer + " doesn't support the source payload: " + srcCls); } if (!transformer.isIgnoreBadInput()) { if (logger.isDebugEnabled()) { logger.debug("Exiting from transformer chain (ignoreBadInput = false)"); } break; } } } } }
public Object read(InputStream in) throws MuleException { if (inboundTransformer == null) { throw new IllegalArgumentException( CoreMessages.objectIsNull("inboundTransformer").getMessage()); } if (inboundTransformer.isSourceTypeSupported(InputStream.class)) { return inboundTransformer.transform(in); } else { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); IOUtils.copy(in, baos); return inboundTransformer.transform(baos.toByteArray()); } catch (IOException e) { throw new DefaultMuleException(CoreMessages.failedToReadPayload(), e); } } }