private void createInvocationChainFactory()

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);
	}