Exemple #1
0
  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;
          }
        }
      }
    }
  }
Exemple #2
0
 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);
     }
   }
 }