/** * Adds informational {@link com.palantir.remoting3.clients.UserAgent.Agent}s to the given {@link UserAgent}, one * for the http-remoting library and one for the given service class. Version strings are extracted from the * packages' {@link Package#getImplementationVersion implementation version}, defaulting to 0.0.0 if no version can * be found. */ private static UserAgent augmentUserAgent(UserAgent agent, Class<?> serviceClass) { UserAgent augmentedAgent = agent; String maybeServiceVersion = serviceClass.getPackage().getImplementationVersion(); augmentedAgent = augmentedAgent.addAgent(UserAgent.Agent.of( serviceClass.getSimpleName(), maybeServiceVersion != null ? maybeServiceVersion : "0.0.0")); String maybeRemotingVersion = OkHttpClients.class.getPackage().getImplementationVersion(); augmentedAgent = augmentedAgent.addAgent(UserAgent.Agent.of( UserAgents.REMOTING_AGENT_NAME, maybeRemotingVersion != null ? maybeRemotingVersion : "0.0.0")); return augmentedAgent; }
builder.primary(UserAgent.Agent.of(name, version)); comments.ifPresent(c -> { Map<String, String> parsedComments = parseComments(c); } else { builder.addInformational(UserAgent.Agent.of(name, version)); log.debug("Invalid user agent, falling back to default/unknown agent", SafeArg.of("userAgent", userAgent)); return builder.primary(UserAgent.Agent.of("unknown", UserAgent.Agent.DEFAULT_VERSION)).build(); } else { throw new IllegalArgumentException("Failed to parse user agent string: " + userAgent);