@Override protected Object doTransform(Object src, Charset encoding) throws TransformerException { throw new TransformerException(I18nMessageFactory.createStaticMessage("Failure")); } }
@Override protected Object doTransform(Object src, Charset encoding) throws TransformerException { String response = null; if (src instanceof String) { response = (String) src; } else if (src instanceof InputStream) { response = IOUtils.toString((InputStream) src); } if (response != null && response.contains("success")) { return response; } else { throw new TransformerException(createStaticMessage("Invalid response from flow: " + response)); } } }
@Test @Ignore("MULE-10266 review how the transformationService is obtained when building an exception.") public void payloadInfoException() throws Exception { MuleException.verboseExceptions = true; CoreEvent testEvent = mock(CoreEvent.class); Object payload = mock(Object.class); // This has to be done this way since mockito doesn't allow to verify toString() when(payload.toString()).then(new FailAnswer("toString() expected not to be called.")); Message muleMessage = of(payload); when(transformationService.transform(muleMessage, DataType.STRING)) .thenThrow(new TransformerException(createStaticMessage("exception thrown"))); when(testEvent.getMessage()).thenReturn(muleMessage); MessagingException e = new MessagingException(createStaticMessage(message), testEvent); assertThat(e.getInfo().get(PAYLOAD_INFO_KEY), is(TransformerException.class.getName() + " while getting payload: exception thrown")); }
@Override protected Object doTransform(Object src, Charset outputEncoding) throws TransformerException { if (src == null) { return ArrayUtils.EMPTY_BYTE_ARRAY; } try { return StringUtils.hexStringToByteArray((String) src); } catch (Exception ex) { throw new TransformerException(this, ex); } }
@Override protected Object doTransform(Object src, Charset encoding) throws TransformerException { throw new TransformerException(I18nMessageFactory.createStaticMessage("Failure")); } }
@Override public Object doTransform(Object src, Charset enc) throws TransformerException { try { return ((DataHandler) src).getInputStream(); } catch (IOException e) { throw new TransformerException(this, e); } } }
@Override public Object doTransform(Object src, Charset outputEncoding) throws TransformerException { if (src instanceof LocalDateTime) { return Date.from(((LocalDateTime) src).atZone(ZoneId.systemDefault()).toInstant()); } else if (src instanceof LocalDate) { return Date.from(((LocalDate) src).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); } throw new TransformerException(createStaticMessage("Unexpected input type: " + src.getClass().getName())); }
@Override protected Object doTransform(Object src, Charset encoding) throws TransformerException { try { return Enum.valueOf(enumClass, ((String) src)); } catch (Exception e) { throw new TransformerException(createStaticMessage(format("Could not transform value '%s' to an enum of type %s", src, enumClass.getName())), e); } }
protected String createStringFromOutputHandler(OutputHandler handler, Charset outputEncoding) throws TransformerException { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); try { handler.write(getCurrentEvent(), bytes); return bytes.toString(outputEncoding.name()); } catch (IOException e) { throw new TransformerException(this, e); } }
@Override public Object doTransform(Object src, Charset encoding) throws TransformerException { if (src == null) { if (isAllowNullReturn()) { return null; } else { throw new TransformerException(createStaticMessage("Unable to transform null to a primitive")); } } else { String value = ((String) src).toLowerCase().trim(); Boolean transformed = MAPPING.get(value); if (transformed != null) { return transformed; } else { throw new TransformerException(createStaticMessage(format("Cannot transform String '%s' to boolean. Valid types are: [%s]", value, Joiner.on(", ").join(MAPPING.keySet())))); } } }
protected String createStringFromInputStream(InputStream input, Charset outputEncoding) throws TransformerException { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); copyLarge(input, outputStream); return outputStream.toString(outputEncoding.name()); } catch (IOException e) { throw new TransformerException(errorReadingStream(), e); } finally { try { input.close(); } catch (IOException e) { logger.warn("Could not close stream", e); } } }
@Override protected Object doTransform(Object src, Charset encoding) throws TransformerException { String response = null; if (src instanceof String) { response = (String) src; } else if (src instanceof InputStream) { response = IOUtils.toString((InputStream) src); } if (response != null && response.contains("success")) { return response; } else { throw new TransformerException(createStaticMessage("Invalid response from flow: " + response)); } } }
@Override public Object transformMessage(Event event, Charset outputEncoding) throws TransformerException { try { return messageProcessor.process(event).getMessage(); } catch (MuleException e) { throw new TransformerException(this, e); } }
@Override public Object doTransform(Object src, Charset outputEncoding) throws TransformerException { /* * If the Message source type has been registered then we can assume that the whole message is to be serialised, not just the * payload. This can be useful for protocols such as tcp where the protocol does not support headers and the whole message * needs to be serialized. */ try { return muleContext.getObjectSerializer().getExternalProtocol().serialize(src); } catch (Exception e) { throw new TransformerException(this, e); } }
@Override public Object doTransform(Object src, Charset outputEncoding) throws TransformerException { if (src == null) { return null; } else { if (numberFormat != null) { try { return NumberUtils.convertNumberToTargetClass(numberFormat.parse((String) src), getType()); } catch (Exception e) { throw new TransformerException(this, e); } } else { return NumberUtils.parseNumber((String) src, getType()); } } }
@Override public Object doTransform(final Object src, final Charset encoding) throws TransformerException { if (src instanceof String) { return (OutputHandler) (event, out) -> out.write(((String) src).getBytes(encoding)); } else if (src instanceof byte[]) { return (OutputHandler) (event, out) -> out.write((byte[]) src); } else if (src instanceof CursorStreamProvider) { return handleInputStream(((CursorStreamProvider) src).openCursor()); } else if (src instanceof InputStream) { return handleInputStream((InputStream) src); } else if (src instanceof Serializable) { return (OutputHandler) (event, out) -> muleContext.getObjectSerializer().getExternalProtocol().serialize(src, out); } else { throw new TransformerException(I18nMessageFactory .createStaticMessage("Unable to convert " + src.getClass() + " to OutputHandler.")); } }
@Override protected Object doTransform(Object src, Charset enc) throws TransformerException { try { return DataType.builder().charset((String) src).build().getMediaType().getCharset().get(); } catch (Exception e) { throw new TransformerException(createStaticMessage("Exception transforming to Charset."), e); } }
@Override protected Object doTransform(Object src, Charset enc) throws TransformerException { try { return DataType.builder().mediaType((String) src).build().getMediaType(); } catch (Exception e) { throw new TransformerException(createStaticMessage("Exception transforming to MediaType."), e); } }
@Override public Object doTransform(Object src, Charset encoding) throws TransformerException { SerializationProtocol externalProtocol = getSerializationProtocol(); try { final Object result; if (src instanceof byte[]) { result = externalProtocol.deserialize((byte[]) src); } else if (src instanceof CursorStreamProvider) { result = externalProtocol.deserialize(((CursorStreamProvider) src).openCursor()); } else { result = externalProtocol.deserialize((InputStream) src); } return result; } catch (Exception e) { throw new TransformerException(CoreMessages.transformFailed("byte[]", "Object"), this, e); } }
@Test @Ignore("MULE-10266 review how the transformationService is obtained when building an exception.") public void payloadInfoException() throws Exception { MuleException.verboseExceptions = true; CoreEvent testEvent = mock(CoreEvent.class); Object payload = mock(Object.class); // This has to be done this way since mockito doesn't allow to verify toString() when(payload.toString()).then(new FailAnswer("toString() expected not to be called.")); Message muleMessage = of(payload); when(transformationService.transform(muleMessage, DataType.STRING)) .thenThrow(new TransformerException(createStaticMessage("exception thrown"))); when(testEvent.getMessage()).thenReturn(muleMessage); MessagingException e = new MessagingException(createStaticMessage(message), testEvent); assertThat(e.getInfo().get(PAYLOAD_INFO_KEY), is(TransformerException.class.getName() + " while getting payload: exception thrown")); }