private Stream<ChangesRequiringRestart> findConfigChangesForService(Service service,
                                                                        AbstractConfigProducerRoot currentModel,
                                                                        AbstractConfigProducerRoot nextModel,
                                                                        DeployLogger logger) {
        Class<? extends Service> serviceClass = service.getClass();
        if (!currentModel.getService(service.getConfigId()).isPresent()) {
            // Service does not exist in the current model.
            return Stream.empty();
        }
        return getConfigInstancesFromServiceAnnotations(serviceClass)
                .map(configClass -> compareConfigFromCurrentAndNextModel(service, configClass, currentModel, nextModel, logger))
                .filter(Optional::isPresent)
                .map(Optional::get)
                .filter(ChangesRequiringRestart::needsRestart);
    }
Inspects the configuration in the new and old Vespa model to determine which services that require restart
config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidator.java