@VisibleForTesting StringBuilder ua( final RemoteStorageContext ctx, final ProxyRepository repository ) { final StringBuilder buf = new StringBuilder( getUserAgentPlatformInfo() ); if ( repository != null ) { final RemoteRepositoryStorage rrs = repository.getRemoteStorage(); buf.append( " " ).append( rrs.getProviderId() ).append( "/" ).append( rrs.getVersion() ); } // user customization RemoteConnectionSettings remoteConnectionSettings = ctx.getRemoteConnectionSettings(); if ( !StringUtils.isEmpty( remoteConnectionSettings.getUserAgentCustomizationString() ) ) { buf.append( " " ).append( remoteConnectionSettings.getUserAgentCustomizationString() ); } // plugin customization for ( UserAgentContributor contributor : contributors ) { final String contribution = contributor.getUserAgent( ctx, repository ); if ( !StringUtils.isEmpty( contribution ) ) { buf.append( " " ).append( contribution ); } } return buf; }