public static Function<Endpoint, StorageServerChannel> factory(StorageClientSettings settings) { return new Function<Endpoint, StorageServerChannel>() { private final Optional<MonitoringClientInterceptor> interceptor = settings.statsLogger().map(statsLogger -> MonitoringClientInterceptor.create(statsLogger, true)); @Override public StorageServerChannel apply(Endpoint endpoint) { StorageServerChannel channel = new StorageServerChannel( endpoint, Optional.empty(), settings.usePlaintext(), settings.endpointResolver()); return interceptor .map(interceptor -> channel.intercept(interceptor)) .orElse(channel); } }; }
/** Sets all property values using the given {@code StorageClientSettings} as a template. */ public StorageClientSettings.Builder mergeFrom(StorageClientSettings value) { StorageClientSettings_Builder _defaults = StorageClientSettings.newBuilder(); if (!Objects.equals(value.numWorkerThreads(), _defaults.numWorkerThreads())) { numWorkerThreads(value.numWorkerThreads()); } if (_defaults._unsetProperties.contains(StorageClientSettings_Builder.Property.SERVICE_URI) || !Objects.equals(value.serviceUri(), _defaults.serviceUri())) { serviceUri(value.serviceUri()); } if (!Objects.equals(value.endpointResolver(), _defaults.endpointResolver())) { endpointResolver(value.endpointResolver()); } if (!Objects.equals(value.usePlaintext(), _defaults.usePlaintext())) { usePlaintext(value.usePlaintext()); } value.clientName().ifPresent(this::clientName); value.statsLogger().ifPresent(this::statsLogger); if (!Objects.equals(value.backoffPolicy(), _defaults.backoffPolicy())) { backoffPolicy(value.backoffPolicy()); } if (!Objects.equals(value.enableServerSideRouting(), _defaults.enableServerSideRouting())) { enableServerSideRouting(value.enableServerSideRouting()); } return (StorageClientSettings.Builder) this; }