private void initializeInvocationChainFactory()

in src/main/java/com/microsoft/azure/functions/worker/broker/JavaFunctionBroker.java [141:157]


	private void initializeInvocationChainFactory() {
		ArrayList<Middleware> middlewares = new ArrayList<>();
		ClassLoader prevContextClassLoader = Thread.currentThread().getContextClassLoader();
		ClassLoader newContextClassLoader = classLoaderProvider.createClassLoader();
		try {
			//ServiceLoader will use thread context classloader to verify loaded class
			Thread.currentThread().setContextClassLoader(newContextClassLoader);
			for (Middleware middleware : ServiceLoader.load(Middleware.class)) {
				middlewares.add(middleware);
				WorkerLogManager.getSystemLogger().info("Load middleware " + middleware.getClass().getSimpleName());
			}
		} finally {
			Thread.currentThread().setContextClassLoader(prevContextClassLoader);
		}
		middlewares.add(getFunctionExecutionMiddleWare(newContextClassLoader));
		this.invocationChainFactory = new InvocationChainFactory(middlewares);
	}