public static ClassLoader createModuleRuntimeClassLoader(SimpleModuleDefinition definition, ModuleOptions moduleOptions, ClassLoader parent) {
		Resource moduleLocation = simpleResourceResolver.getResource(definition.getLocation());

		Properties moduleProperties = loadModuleProperties(definition);
		moduleProperties = moduleProperties == null ? new Properties() : moduleProperties;
		String extraLibsCSV = moduleProperties.getProperty(MODULE_CLASSPATH_KEY, StringUtils.collectionToCommaDelimitedString(DEFAULT_EXTRA_LIBS));
		List<String> extraLibs = new ArrayList<>();
		String[] paths = extraLibsCSV.split("\\s*,\\s*");
		MutablePropertySources propertySources = new MutablePropertySources();
		propertySources.addFirst(moduleOptions.asPropertySource());
		PropertyResolver placeHolderResolver = new PropertySourcesPropertyResolver(propertySources);
		for (String path : paths) {
			try {
				extraLibs.add(placeHolderResolver.resolveRequiredPlaceholders(path));
			}
			catch (IllegalArgumentException ignored) {
			}
		}

		return createModuleClassLoader(moduleLocation, parent, extraLibs);
	}
Create a ClassLoader suitable for running a module. Extra libraries can come from paths that are derived from
module options. Any path that starts with a slash will be assumed to be an in-Archive entry, whereas any other
path (including those starting with a protocol) will be dealt with by a classical resource pattern resolver.
spring-xd-module/src/main/java/org/springframework/xd/module/options/ModuleUtils.java