@Override public void customizeClientConfig(ClientConfig clientConfig) { Validate.notNull(clientConfig, "ClientConfig must not be null"); final ConnectorProvider provider = clientConfig.getConnectorProvider(); // Only configure HttpUrlConnectorProvider types if (!(provider instanceof HttpUrlConnectorProvider)) { return; } final HttpUrlConnectorProvider httpProvider = (HttpUrlConnectorProvider) provider; LOG.info("Configuring non-buffering for HttpUrlConnectorProvider"); // Use fixed length streaming when possible to allow large uploads without buffering. httpProvider.useFixedLengthStreaming(); } }
@Override public void customizeClientConfig(ClientConfig clientConfig) { Validate.notNull(clientConfig, "ClientConfig must not be null"); // Only configure ApacheConnectorProvider types final ConnectorProvider provider = clientConfig.getConnectorProvider(); Validate.isInstanceOf( ApacheConnectorProvider.class, provider, String.format( "ConnectorProvider of type [%s] is not supported. Expected ApacheConnectorProvider", provider.getClass().getCanonicalName())); LOG.info("ApacheConnectionPoolConfig: {}", config); final Pair<Integer, TimeUnit> ttl = config.getTtl(); final PoolingHttpClientConnectionManager connectionManager = (ttl != null) ? new PoolingHttpClientConnectionManager(ttl.getLeft(), ttl.getRight()) : new PoolingHttpClientConnectionManager(); connectionManager.setMaxTotal(config.getTotalOpenConnections()); connectionManager.setDefaultMaxPerRoute(config.getDefaultMaxConnectionsPerRoute()); clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connectionManager); } }
/** * Customizes the client configuration for specifying a proxy to connect to for client operations. * {@inheritDoc} */ @Override public void customizeClientConfig(final ClientConfig clientConfig) { Validate.notNull(clientConfig, "ClientConfig must not be null"); // Fetch the provider reference from the config final ConnectorProvider provider = clientConfig.getConnectorProvider(); // Only configure ApacheConnectorProvider types Validate.isInstanceOf( ApacheConnectorProvider.class, provider, String.format( "ConnectorProvider of type [%s] is not supported. Expected ApacheConnectorProvider", provider.getClass().getCanonicalName())); if (!proxyConfig.isConfiguredAndValid()) { LOG.info("Invalid proxy configuration. Not configuring a proxy."); return; } LOG.debug("ApacheProxyConfig: {}", proxyConfig); final String proxyUri = proxyConfig.getUri(); LOG.info("Configuring proxy for ApacheConnectorProvider to connect to {}", proxyUri); clientConfig.property(ClientProperties.PROXY_URI, proxyUri); configureAuth(clientConfig, proxyConfig); }