public GoConfigHolder loadConfigHolder(final String content, Callback callback) throws Exception {
        CruiseConfig configForEdit;
        CruiseConfig config;
        LOGGER.debug("[Config Save] Loading config holder");
        configForEdit = deserializeConfig(content);
        if (callback != null) callback.call(configForEdit);
        config = preprocessAndValidate(configForEdit);

        return new GoConfigHolder(config, configForEdit);
    }
@Test
    void shouldNotAllowParamsToBeUsedInNames() {
        String content = ("""
                <cruise schemaVersion='%d'>
                <server />
                <pipelines>
                <pipeline name='dev'>
                    <params>
                        <param name='command'>ls</param>
                    </params>
                    <materials>
                      <svn url ="svnurl"/>
                    </materials>
                    <stage name='stage#{command}ab'>
                      <jobs>
                        <job name='job1'>
                            <tasks>
                                <exec command='/bin/#{command}##{b}' args='#{dir}'/>
                            </tasks>
                        </job>
                      </jobs>
                    </stage>
                </pipeline>
                </pipelines>
                </cruise>""").formatted(CONFIG_SCHEMA_VERSION);

        assertThatThrownBy(() ->  xmlLoader.loadConfigHolder(content))
            .as("Should not allow params in stage name")
            .hasMessageContaining("\"stage#{command}ab\" should conform to the pattern - [a-zA-Z0-9_\\-]{1}[a-zA-Z0-9_\\-.]*");
    }