public InvocationResult invoke(Object component, MuleEventContext context) throws Exception { if (component instanceof Callable) { Object result = ((Callable) component).onCall(context); return new InvocationResult(this, result, callableMethod); } else { InvocationResult result = new InvocationResult(this, InvocationResult.State.NOT_SUPPORTED); result.setErrorMessage(CoreMessages.objectDoesNotImplementInterface(component, Callable.class).toString()); return result; } }
@Override protected Object invokeComponentInstance(MuleEvent event) throws Exception { Object result = ((Callable) objectFactory.getInstance(muleContext)).onCall(new DefaultMuleEventContext(event)); if (result instanceof VoidResult) { // This will rewire the current message return event.getMessage(); } else if (result != null) { if (result instanceof MuleMessage) { return result; } else { event.getMessage().applyTransformers( event, Collections.singletonList(new TransformerTemplate(new TransformerTemplate.OverwitePayloadCallback( result)))); return event.getMessage(); } } else { return null; } }