protected void adjustConfigurationMetadata() throws Exception {
        if (!inputSpringConfigurationMetadata.exists()) {
            throw new RuntimeException("Could not locate file " + inputSpringConfigurationMetadata.getCanonicalPath());
        }
        LOGGER.info("Project directory [{}]", projectDirectory);
        final Map<String, Object> jsonMap = MAPPER.readValue(inputSpringConfigurationMetadata, new TypeReference<>() {});
        final List<ConfigurationMetadataProperty> properties = MAPPER.convertValue(jsonMap.get("properties"), new TypeReference<>() {});
        Objects.requireNonNull(properties);
        final List<ConfigurationMetadataProperty> groups = MAPPER.convertValue(jsonMap.get("groups"), new TypeReference<>() {});
        Objects.requireNonNull(groups);
        
        processMappableProperties(properties, groups);
        processNestedTypes(properties, groups);

        val hints = processHints(properties, groups);
        processNestedEnumProperties(properties, groups);
        processDeprecatedProperties(properties);
        processTopLevelEnumTypes(properties);

        removeNestedConfigurationPropertyGroups(properties, groups);

        jsonMap.put("properties", properties.parallelStream().sorted(Comparator.comparing(ConfigurationMetadataProperty::getName)).collect(Collectors.toCollection(LinkedHashSet::new)));
        jsonMap.put("groups", groups.parallelStream().sorted(Comparator.comparing(ConfigurationMetadataProperty::getName)).collect(Collectors.toCollection(LinkedHashSet::new)));
        jsonMap.put("hints", hints.parallelStream().sorted(Comparator.comparing(ConfigurationMetadataHint::getName)).collect(Collectors.toCollection(LinkedHashSet::new)));
        MAPPER.writerWithDefaultPrettyPrinter().writeValue(outputSpringConfigurationMetadata, jsonMap);
    }
Main.

@param args the args
@throws Exception the exception
api/cas-server-core-api-configuration-model/src/main/java/org/apereo/cas/configuration/metadata/ConfigurationMetadataGenerator.java