@Test
    void verifyMetaData() throws IOException {
        val resource = CasConfigurationProperties.class.getClassLoader().getResource("META-INF/additional-spring-configuration-metadata.json");
        assertNotNull(resource);
        val additionalMetadataJsonFile = resourceLoader.getResource(resource.toString());
        val additionalProps = getProperties(additionalMetadataJsonFile);
        for (val prop : additionalProps) {
            try {
                ConfigurationPropertyName.of(prop.getName());
            } catch (final InvalidConfigurationPropertyNameException e) {
                fail(e::getMessage);
            }
            val deprecation = prop.getDeprecation();
            if (deprecation != null && StringUtils.isNotBlank(deprecation.getReplacement())) {
                ConfigurationPropertyName.of(deprecation.getReplacement());
                if (deprecation.getReplacement().endsWith("[0]")) {
                    /* array references may work, but not at the end. */
                    fail("Deprecation replacement should not end in [0].");
                }
            }
        }
    }
Make sure the property names are canonical (not camel case) otherwise app won't start.
Spring boot will prevent startup if property names aren't valid.
It may be that some replacement properties need array syntax but none should contain [0].

@throws IOException if additional property file is missing
api/cas-server-core-api-configuration-model/src/test/java/org/apereo/cas/configuration/AdditionalMetadataVerificationTests.java