private AbstractTransformer createDummyTransformer(boolean ignoreBadInput) { AbstractTransformer result = new AbstractTransformer() { @Override protected Object doTransform(Object src, Charset enc) throws TransformerException { return "TRANSFORMED"; } }; result.sourceTypes.add(DataType.BYTE_ARRAY); result.setMuleContext(muleContext); result.setIgnoreBadInput(ignoreBadInput); return result; } }
/** * Configures the common parameters of every transformer. * * @param transformerInstance the transformar instance * @param parameters the set of parameters configured in the component model according to the * {@link org.mule.runtime.dsl.api.component.ComponentBuildingDefinition} */ @Override public void configure(AbstractTransformer transformerInstance, Map<String, Object> parameters) { String returnClass = (String) parameters.get("returnClass"); String mimeType = (String) parameters.get("mimeType"); String name = (String) parameters.get("name"); String encoding = (String) parameters.get("encoding"); Boolean ignoreBadInput = parameters.get("ignoreBadInput") == null ? null : Boolean.valueOf((String) parameters.get("ignoreBadInput")); if (returnClass != null || mimeType != null) { DataTypeParamsBuilder builder = DataType.builder().type(getReturnType(returnClass)); if (isNotEmpty(mimeType)) { builder.mediaType(mimeType); } transformerInstance.setReturnDataType(builder.charset(encoding).build()); } if (ignoreBadInput != null) { transformerInstance.setIgnoreBadInput(ignoreBadInput); } transformerInstance.setName(name); }
@Override public final Transformer doGetObject() throws Exception { AbstractTransformer transformerInstance = createInstance(); if (returnClass != null || mimeType != null) { DataTypeParamsBuilder builder = DataType.builder().type(getReturnType()); if (isNotEmpty(mimeType)) { builder.mediaType(mimeType); } transformerInstance.setReturnDataType(builder.charset(encoding).build()); } transformerInstance.setIgnoreBadInput(ignoreBadInput); transformerInstance.setName(name); postProcessInstance(transformerInstance); return transformerInstance; }
@Test(expected = MessageTransformerException.class) public void testIgnoreBadInputBreaksWithTransformationOrderInvalidValidWhenEnforcedOn() throws Exception { AbstractTransformer invalidTransformer = (AbstractTransformer) this.getInvalidTransformer(); assertNotNull(invalidTransformer); invalidTransformer.setIgnoreBadInput(true); AbstractTransformer validTransformer = (AbstractTransformer) this.getIncreaseByOneTransformer(); assertNotNull(validTransformer); Message message = of(new Integer(0)); Transformer messageTransformer = new TransformerChain(invalidTransformer, validTransformer); transformationService.applyTransformers(message, eventBuilder(muleContext).message(of(0)).build(), messageTransformer); }
@Test public void testIgnoreBadInputBreaksChainWithTransformationOrderInvalidValid() throws Exception { AbstractTransformer invalidTransformer = (AbstractTransformer) this.getInvalidTransformer(); assertNotNull(invalidTransformer); invalidTransformer.setIgnoreBadInput(false); AbstractTransformer validTransformer = (AbstractTransformer) this.getIncreaseByOneTransformer(); assertNotNull(validTransformer); Message message = of(new Integer(0)); Transformer messageTransformer = new TransformerChain(invalidTransformer, validTransformer); try { transformationService.applyTransformers(message, eventBuilder(muleContext).message(of(0)).build(), messageTransformer); fail("Transformer chain is expected to fail because of invalid transformer within chain."); } catch (MuleException tfe) { // ignore } }
@Test public void testIgnoreBadInputBreaksChainWithTransformationOrderValidInvalid() throws Exception { AbstractTransformer invalidTransformer = (AbstractTransformer) this.getInvalidTransformer(); assertNotNull(invalidTransformer); invalidTransformer.setIgnoreBadInput(false); AbstractTransformer validTransformer = (AbstractTransformer) this.getIncreaseByOneTransformer(); assertNotNull(validTransformer); Message message = of(new Integer(0)); Transformer messageTransformer = new TransformerChain(validTransformer, invalidTransformer); try { transformationService.applyTransformers(message, eventBuilder(muleContext).message(of(0)).build(), messageTransformer); fail("Transformer chain is expected to fail because of invalid transformer within chain."); } catch (MuleException tfe) { assertNotNull(tfe); } }
private AbstractTransformer createDummyTransformer(boolean ignoreBadInput) { AbstractTransformer result = new AbstractTransformer() { @Override protected Object doTransform(Object src, Charset enc) throws TransformerException { return "TRANSFORMED"; } }; result.sourceTypes.add(DataType.BYTE_ARRAY); result.setMuleContext(muleContext); result.setIgnoreBadInput(ignoreBadInput); return result; } }
/** * Configures the common parameters of every transformer. * * @param transformerInstance the transformar instance * @param parameters the set of parameters configured in the component model according to the * {@link org.mule.runtime.dsl.api.component.ComponentBuildingDefinition} */ @Override public void configure(AbstractTransformer transformerInstance, Map<String, Object> parameters) { String returnClass = (String) parameters.get("returnClass"); String mimeType = (String) parameters.get("mimeType"); String name = (String) parameters.get("name"); String encoding = (String) parameters.get("encoding"); Boolean ignoreBadInput = parameters.get("ignoreBadInput") == null ? null : Boolean.valueOf((String) parameters.get("ignoreBadInput")); if (returnClass != null || mimeType != null) { DataTypeParamsBuilder builder = DataType.builder().type(getReturnType(returnClass)); if (isNotEmpty(mimeType)) { builder.mediaType(mimeType); } transformerInstance.setReturnDataType(builder.charset(encoding).build()); } if (ignoreBadInput != null) { transformerInstance.setIgnoreBadInput(ignoreBadInput); } transformerInstance.setName(name); }
@Override public final Transformer doGetObject() throws Exception { AbstractTransformer transformerInstance = createInstance(); if (returnClass != null || mimeType != null) { DataTypeParamsBuilder builder = DataType.builder().type(getReturnType()); if (isNotEmpty(mimeType)) { builder.mediaType(mimeType); } transformerInstance.setReturnDataType(builder.charset(encoding).build()); } transformerInstance.setIgnoreBadInput(ignoreBadInput); transformerInstance.setName(name); postProcessInstance(transformerInstance); return transformerInstance; }
@Test(expected = MessageTransformerException.class) public void testIgnoreBadInputBreaksWithTransformationOrderInvalidValidWhenEnforcedOn() throws Exception { AbstractTransformer invalidTransformer = (AbstractTransformer) this.getInvalidTransformer(); assertNotNull(invalidTransformer); invalidTransformer.setIgnoreBadInput(true); AbstractTransformer validTransformer = (AbstractTransformer) this.getIncreaseByOneTransformer(); assertNotNull(validTransformer); Message message = of(new Integer(0)); Transformer messageTransformer = new TransformerChain(invalidTransformer, validTransformer); transformationService.applyTransformers(message, eventBuilder(muleContext).message(of(0)).build(), messageTransformer); }
@Test public void testIgnoreBadInputBreaksChainWithTransformationOrderInvalidValid() throws Exception { AbstractTransformer invalidTransformer = (AbstractTransformer) this.getInvalidTransformer(); assertNotNull(invalidTransformer); invalidTransformer.setIgnoreBadInput(false); AbstractTransformer validTransformer = (AbstractTransformer) this.getIncreaseByOneTransformer(); assertNotNull(validTransformer); Message message = of(new Integer(0)); Transformer messageTransformer = new TransformerChain(invalidTransformer, validTransformer); try { transformationService.applyTransformers(message, eventBuilder(muleContext).message(of(0)).build(), messageTransformer); fail("Transformer chain is expected to fail because of invalid transformer within chain."); } catch (MuleException tfe) { // ignore } }
@Test public void testIgnoreBadInputBreaksChainWithTransformationOrderValidInvalid() throws Exception { AbstractTransformer invalidTransformer = (AbstractTransformer) this.getInvalidTransformer(); assertNotNull(invalidTransformer); invalidTransformer.setIgnoreBadInput(false); AbstractTransformer validTransformer = (AbstractTransformer) this.getIncreaseByOneTransformer(); assertNotNull(validTransformer); Message message = of(new Integer(0)); Transformer messageTransformer = new TransformerChain(validTransformer, invalidTransformer); try { transformationService.applyTransformers(message, eventBuilder(muleContext).message(of(0)).build(), messageTransformer); fail("Transformer chain is expected to fail because of invalid transformer within chain."); } catch (MuleException tfe) { assertNotNull(tfe); } }