private Client buildNamedClient(final JerseyClientName jerseyClientName) {
        JerseyClientConfiguration jerseyClientConfiguration = configMap.get(jerseyClientName);
        LOGGER.debug("jerseyClientConfiguration for {}: {}",
                jerseyClientName, jerseyClientConfiguration);

        final JerseyClientName defaultClientName = JerseyClientName.DEFAULT;

        if (jerseyClientConfiguration == null) {
            if (defaultClientName.equals(jerseyClientName)) {

                jerseyClientConfiguration = configMap.get(defaultClientName);
                LOGGER.debug("jerseyClientConfiguration for {}: {}",
                        jerseyClientName, jerseyClientConfiguration);
            } else {
                // No config for this name, so recurse to see if we have a client for DEFAULT or create one
                // if we don't
                final Client defaultClient = getNamedClient(defaultClientName);
                Objects.requireNonNull(defaultClient);
                LOGGER.info("Using jersey client '{}' for name '{}'", defaultClientName, jerseyClientName);
                // The existing client will be in the map multiple times
                return defaultClient;
            }
        }

        if (jerseyClientConfiguration == null) {
            LOGGER.debug("Creating new vanilla JerseyClientConfiguration for name {}",
                    jerseyClientName);
            jerseyClientConfiguration = new JerseyClientConfiguration();
        }
        // If jerseyClientConfiguration is null here it will create a vanilla one
        return buildClient(jerseyClientName, jerseyClientConfiguration);
    }
@return The prefix for the user agent name
stroom-dropwizard-common/src/main/java/stroom/dropwizard/common/AbstractJerseyClientFactory.java