private <T> List<PropDiff> listDifferences(final String prefix,
                                               final T vanillaConfig,
                                               final T actualConfig) {
        final Map<String, Prop> defaultProps = PropertyUtil.getProperties(vanillaConfig);

        final List<PropDiff> differences = defaultProps.entrySet()
                .stream()
                .sorted(Entry.comparingByKey())
                .flatMap(entry -> {
                    final String propName = entry.getKey();
                    final Prop prop = entry.getValue();
                    final Object defaultValue = getPropValue(prop, vanillaConfig);
                    final Object actualValue = getPropValue(prop, actualConfig);

                    if (!Objects.equals(defaultValue, actualValue)) {
                        if (propName.equals("tls")) {
                            if (defaultValue == null && actualValue != null) {
                                return listDifferences("tls.", new TlsConfiguration(), actualValue).stream();
                            } else if (defaultValue != null) {
                                return listDifferences("tls.", defaultValue, actualValue).stream();
                            } else {
                                return Stream.empty();
                            }
                        } else if (propName.equals("proxy")) {
                            if (defaultValue == null && actualValue != null) {
                                return listDifferences("proxy.", new ProxyConfiguration(), actualValue).stream();
                            } else if (defaultValue != null) {
                                return listDifferences("proxy.", defaultValue, actualValue).stream();
                            } else {
                                return Stream.empty();
                            }
                        } else {
                            return Stream.of(new PropDiff(prefix + propName, defaultValue, actualValue));
                        }
                    } else {
                        return Stream.empty();
                    }
                })
                .filter(Objects::nonNull)
                .toList();

        return differences;

    }
The config for stroom internode comms
stroom-dropwizard-common/src/main/java/stroom/dropwizard/common/AbstractJerseyClientFactory.java