private boolean validate(Context context, String configId, SearchCluster searchCluster, String schema, File tempDir, boolean isStreaming) {
        Instant start = Instant.now();
        try {
            log.log(Level.FINE, () -> String.format("Validating schema '%s' for cluster %s with config id %s", schema, searchCluster, configId));
            boolean ret = execValidate(context, configId, searchCluster, schema, isStreaming);
            if (!ret) {
                // Give up, don't log same error msg repeatedly
                deleteTempDir(tempDir);
            }
            log.log(Level.FINE, () -> String.format("Validation took %s ms", Duration.between(start, Instant.now()).toMillis()));
            return ret;
        } catch (IllegalArgumentException e) {
            deleteTempDir(tempDir);
            context.illegal("failed validating rank setup", e);
            return false;
        }
    }
Validates rank setup for all content clusters (rank-profiles, index-schema, attributes configs), validation is done
by running the binary 'vespa-verify-ranksetup-bin'

@author vegardh
config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java