private void configureWith(Mapping entries, ConfigurationContext context) throws ConfiguratorException {
        // Initialize secret sources
        SecretSource.all().forEach(SecretSource::init);

        // Check input before actually applying changes, so we don't let controller in a
        // weird state after some ConfiguratorException has been thrown
        final Mapping clone = entries.clone();
        checkWith(clone, context);

        final ObsoleteConfigurationMonitor monitor = ObsoleteConfigurationMonitor.get();
        monitor.reset();
        context.clearListeners();
        context.addListener(monitor::record);
        try (ACLContext acl = ACL.as2(ACL.SYSTEM2)) {
            invokeWith(entries, (configurator, config) -> configurator.configure(config, context));
        }
    }
Configuration with help of {@link RootElementConfigurator}s.
Corresponding configurator is searched by entry key, passing entry value as object with all required properties.

@param entries key-value pairs, where key should match to root configurator and value have all required properties
@throws ConfiguratorException configuration error
plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java