private ModuleOptionsMetadata resolveNormalMetadata(SimpleModuleDefinition definition) {

		Resource moduleLocation = resourceLoader.getResource(definition.getLocation());
		Properties props = ModuleUtils.loadModuleProperties(definition);
		ClassLoader parentCL = ModuleOptionsMetadataResolver.class.getClassLoader();
		ClassLoader classLoaderToUse = (shouldCreateModuleClassLoader) ?
				ModuleUtils.createModuleDiscoveryClassLoader(moduleLocation, parentCL) : parentCL;
		if (props == null) {
			return inferModuleOptionsMetadata(definition, classLoaderToUse);
		}
		else {
			String pojoClass = props.getProperty(OPTIONS_CLASS);
			if (pojoClass != null) {
				List<ModuleOptionsMetadata> mixins = new ArrayList<ModuleOptionsMetadata>();
				createPojoOptionsMetadata(classLoaderToUse, pojoClass.trim(), mixins);
				return mixins.size() == 1 ? mixins.get(0) : new FlattenedCompositeModuleOptionsMetadata(mixins);
			}
			else {
				return makeSimpleModuleOptions(props);
			}
		}
	}
Set to true to create a new classloader (ParentLastURLClassLoader) when loading
the module options metadata classes.

@param shouldCreateModuleClassLoader
spring-xd-module/src/main/java/org/springframework/xd/module/options/DefaultModuleOptionsMetadataResolver.java