in src/main/java/com/microsoft/azure/functions/worker/broker/JavaFunctionBroker.java [202:230]
private ExecutionContextDataSource buildExecutionContext(String id, InvocationRequest request)
throws NoSuchMethodException {
ImmutablePair<String, FunctionDefinition> methodEntry = this.methods.get(id);
FunctionDefinition functionDefinition = methodEntry.right;
if (functionDefinition == null) {
throw new NoSuchMethodException("Cannot find method with ID \"" + id + "\"");
}
BindingDataStore dataStore = new BindingDataStore();
dataStore.setBindingDefinitions(functionDefinition.getBindingDefinitions());
dataStore.addTriggerMetadataSource(getTriggerMetadataMap(request));
dataStore.addParameterSources(request.getInputDataList());
ExecutionTraceContext traceContext = new ExecutionTraceContext(request.getTraceContext().getTraceParent(),
request.getTraceContext().getTraceState(), request.getTraceContext().getAttributesMap());
ExecutionRetryContext retryContext = new ExecutionRetryContext(request.getRetryContext().getRetryCount(),
request.getRetryContext().getMaxRetryCount(), request.getRetryContext().getException());
ExecutionContextDataSource executionContextDataSource = new ExecutionContextDataSource(
request.getInvocationId(),
traceContext,
retryContext,
methodEntry.left,
dataStore,
functionDefinition.getCandidate(),
functionDefinition.getContainingClass(),
request.getInputDataList(),
this.functionInstanceInjector,
this.workerObjectCache);
dataStore.addExecutionContextSource(executionContextDataSource);
return executionContextDataSource;
}