in src/main/java/com/microsoft/azure/functions/worker/broker/JavaFunctionBroker.java [85:107]
private void createInvocationChainFactory(FunctionDefinition functionDefinition, Map<String, BindingInfo> bindings) {
SdkParameterAnalysisResult sdkParameterAnalysisResult =
this.sdkParameterAnalyzer.analyze(functionDefinition.getCandidate().getMethod());
ClassLoader classLoader = this.classLoaderProvider.createClassLoader();
List<Middleware> functionMws = new ArrayList<>(this.baseMiddlewares);
boolean hasAnySdkTypes = sdkParameterAnalysisResult.hasAnySdkTypes();
if (hasAnySdkTypes) {
functionMws.add(new SdkTypeMiddleware(classLoader,
sdkParameterAnalysisResult.getSdkTypesMetaData(),
this.sdkParameterAnalyzer.getRegistry()));
}
functionMws.add(getFunctionExecutionMiddleWare(classLoader));
InvocationChainFactory factory = new InvocationChainFactory(functionMws);
String functionId = functionDefinition.getDescriptor().getId();
this.functionFactories.put(functionId, factory);
WorkerLogManager.getSystemLogger().info("Created custom invocationChainFactory for function "
+ functionId + ", supportsDeferredBinding=" + hasAnySdkTypes);
}