@Before public void setUp() { when(event.getError()).thenReturn(empty()); when(event.getAuthentication()).thenReturn(empty()); Message msg = of(null); when(event.getMessage()).thenReturn(msg); when(event.asBindingContext()).thenReturn(getTargetBindingContext(msg)); when(event.getItemSequenceInfo()).thenReturn(empty()); }
@Benchmark public Object fromEvent() { return addEventBindings(event, NULL_BINDING_CONTEXT); }
private BindingContext.Builder bindingContextBuilderFor(ComponentLocation componentLocation, CoreEvent event, BindingContext context) { Builder contextBuilder; if (event != null) { contextBuilder = addEventBuindingsToBuilder(event, context); } else { contextBuilder = BindingContext.builder(context); } if (componentLocation != null) { contextBuilder.addBinding(FLOW, () -> new TypedValue<>(new FlowVariablesAccessor(componentLocation.getRootContainerName()), fromType(FlowVariablesAccessor.class))); } return contextBuilder; }
@Override public CoreEvent asReturnValue(Object value, ExecutionContextAdapter operationContext) { TypedValue result = expressionManager .evaluate(targetValue, getTargetBindingContext(toMessage(value, operationContext))); return CoreEvent.builder(operationContext.getEvent()) .securityContext(operationContext.getSecurityContext()) .addVariable(this.target, result.getValue(), result.getDataType()) .build(); } }
@Override public BindingContext asBindingContext() { return addEventBindings(this, NULL_BINDING_CONTEXT); } }
private CoreEvent createNewEventFromJustMessage(CoreEvent request, CoreEvent response) { final CoreEvent.Builder builder = CoreEvent.builder(request); if (target.isPresent()) { TypedValue result = expressionManager.evaluate(targetValue, getTargetBindingContext(response.getMessage())); builder.addVariable(target.get(), result.getValue(), result.getDataType()); } else { builder.message(builder(response.getMessage()).build()); } return builder.build(); }
@Override public BindingContext asBindingContext() { return addEventBindings(resolve(), NULL_BINDING_CONTEXT); }
public static Function<CoreEvent, CoreEvent> outputToTarget(CoreEvent originalEvent, String target, String targetValueExpression, ExpressionLanguage expressionManager) { return result -> { if (target != null) { TypedValue targetValue = expressionManager.evaluate(targetValueExpression, getTargetBindingContext(result.getMessage())); return builder(originalEvent).addVariable(target, targetValue.getValue(), targetValue.getDataType()).build(); } else { return result; } }; }
@Override public CoreEvent asReturnValue(Object value, ExecutionContextAdapter operationContext) { TypedValue result = operationContext.getMuleContext().getExpressionManager() .evaluate(targetValue, getTargetBindingContext(toMessage(value, operationContext))); return CoreEvent.builder(operationContext.getEvent()) .securityContext(operationContext.getSecurityContext()) .addVariable(this.target, result.getValue(), result.getDataType()) .build(); } }