| ///* |
| // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
| // * |
| // * Copyright (c) 2013-2015 Oracle and/or its affiliates. All rights reserved. |
| // * |
| // * The contents of this file are subject to the terms of either the GNU |
| // * General Public License Version 2 only ("GPL") or the Common Development |
| // * and Distribution License("CDDL") (collectively, the "License"). You |
| // * may not use this file except in compliance with the License. You can |
| // * obtain a copy of the License at |
| // * http://glassfish.java.net/public/CDDL+GPL_1_1.html |
| // * or packager/legal/LICENSE.txt. See the License for the specific |
| // * language governing permissions and limitations under the License. |
| // * |
| // * When distributing the software, include this License Header Notice in each |
| // * file and include the License file at packager/legal/LICENSE.txt. |
| // * |
| // * GPL Classpath Exception: |
| // * Oracle designates this particular file as subject to the "Classpath" |
| // * exception as provided by Oracle in the GPL Version 2 section of the License |
| // * file that accompanied this code. |
| // * |
| // * Modifications: |
| // * If applicable, add the following below the License Header, with the fields |
| // * enclosed by brackets [] replaced by your own identifying information: |
| // * "Portions Copyright [year] [name of copyright owner]" |
| // * |
| // * Contributor(s): |
| // * If you wish your version of this file to be governed by only the CDDL or |
| // * only the GPL Version 2, indicate your decision by adding "[Contributor] |
| // * elects to include this software in this distribution under the [CDDL or GPL |
| // * Version 2] license." If you don't indicate a single choice of license, a |
| // * recipient has the option to distribute your version of this file under |
| // * either the CDDL, the GPL Version 2 or to extend the choice of license to |
| // * its licensees as provided above. However, if you add GPL Version 2 code |
| // * and therefore, elected the GPL Version 2 license, then the option applies |
| // * only if the new code is made subject to such option by the copyright |
| // * holder. |
| // */ |
| //package org.eclipse.scout.rt.rest.jersey.client.connector_old; |
| // |
| //import javax.ws.rs.client.Client; |
| //import javax.ws.rs.core.Configuration; |
| // |
| //import org.glassfish.jersey.client.spi.Connector; |
| //import org.glassfish.jersey.client.spi.ConnectorProvider; |
| // |
| /////** |
| //// * Connector provider for Jersey {@link Connector connectors} that utilize Apache HTTP Client to send and receive HTTP |
| //// * request and responses. |
| //// * <p> |
| //// * The following connector configuration properties are supported: |
| //// * <ul> |
| //// * <li>{@link ApacheClientProperties#CONNECTION_MANAGER}</li> |
| //// * <li>{@link ApacheClientProperties#REQUEST_CONFIG}</li> |
| //// * <li>{@link ApacheClientProperties#CREDENTIALS_PROVIDER}</li> |
| //// * <li>{@link ApacheClientProperties#DISABLE_COOKIES}</li> |
| //// * <li>{@link org.glassfish.jersey.client.ClientProperties#PROXY_URI}</li> |
| //// * <li>{@link org.glassfish.jersey.client.ClientProperties#PROXY_USERNAME}</li> |
| //// * <li>{@link org.glassfish.jersey.client.ClientProperties#PROXY_PASSWORD}</li> |
| //// * <li>{@link org.glassfish.jersey.client.ClientProperties#REQUEST_ENTITY_PROCESSING} - default value is |
| //// * {@link org.glassfish.jersey.client.RequestEntityProcessing#CHUNKED}</li> |
| //// * <li>{@link ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION}</li> |
| //// * </ul> |
| //// * </p> |
| //// * <p> |
| //// * Connector instances created via this connector provider use |
| //// * {@link org.glassfish.jersey.client.RequestEntityProcessing#CHUNKED chunked encoding} as a default setting. This can |
| //// * be overridden by the {@link org.glassfish.jersey.client.ClientProperties#REQUEST_ENTITY_PROCESSING}. By default the |
| //// * {@link org.glassfish.jersey.client.ClientProperties#CHUNKED_ENCODING_SIZE} property is only supported when using the |
| //// * default {@code org.apache.http.conn.HttpClientConnectionManager} instance. If custom connection manager is used, then |
| //// * chunked encoding size can be set by providing a custom {@code org.apache.http.HttpClientConnection} (via custom |
| //// * {@code org.apache.http.impl.conn.ManagedHttpClientConnectionFactory}) and overriding it's {@code createOutputStream} |
| //// * method. |
| //// * </p> |
| //// * <p> |
| //// * Use of authorization by the AHC-based connectors is dependent on the chunk encoding setting. If the entity buffering |
| //// * is enabled, the entity is buffered and authorization can be performed automatically in response to a 401 by sending |
| //// * the request again. When entity buffering is disabled (chunked encoding is used) then the property |
| //// * {@link org.glassfish.jersey.apache.connector.ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION} must be set to |
| //// * {@code true}. |
| //// * </p> |
| //// * <p> |
| //// * If a {@link org.glassfish.jersey.client.ClientResponse} is obtained and an entity is not read from the response then |
| //// * {@link org.glassfish.jersey.client.ClientResponse#close()} MUST be called after processing the response to release |
| //// * connection-based resources. |
| //// * </p> |
| //// * <p> |
| //// * If a response entity is obtained that is an instance of {@link java.io.Closeable} then the instance MUST be closed |
| //// * after processing the entity to release connection-based resources. |
| //// * <p/> |
| //// * <p> |
| //// * The following methods are currently supported: HEAD, GET, POST, PUT, DELETE, OPTIONS, PATCH and TRACE. |
| //// * <p/> |
| //// * |
| //// * @author Pavel Bucek (pavel.bucek at oracle.com) |
| //// * @author Arul Dhesiaseelan (aruld at acm.org) |
| //// * @author jorgeluisw at mac.com |
| //// * @author Marek Potociar (marek.potociar at oracle.com) |
| //// * @author Paul Sandoz |
| //// * @author Maksim Mukosey (mmukosey at gmail.com) |
| //// * @since 2.5 |
| //// */ |
| //public class ScoutApacheConnectorProvider implements ConnectorProvider { |
| // |
| // @Override |
| // public Connector getConnector(final Client client, final Configuration runtimeConfig) { |
| //// return new ApacheConnector(client, runtimeConfig); |
| // return new ScoutApacheConnector(client, runtimeConfig); |
| // } |
| // |
| //// /** |
| //// * Retrieve the underlying Apache {@link HttpClient} instance from {@link org.glassfish.jersey.client.JerseyClient} or |
| //// * {@link org.glassfish.jersey.client.JerseyWebTarget} configured to use {@code ApacheConnectorProvider}. |
| //// * |
| //// * @param component |
| //// * {@code JerseyClient} or {@code JerseyWebTarget} instance that is configured to use |
| //// * {@code ApacheConnectorProvider}. |
| //// * @return underlying Apache {@code HttpClient} instance. |
| //// * @throws java.lang.IllegalArgumentException |
| //// * in case the {@code component} is neither {@code JerseyClient} nor {@code JerseyWebTarget} instance or in |
| //// * case the component is not configured to use a {@code ApacheConnectorProvider}. |
| //// * @since 2.8 |
| //// */ |
| //// public static HttpClient getHttpClient(final Configurable<?> component) { |
| //// return getConnector(component).getHttpClient(); |
| //// } |
| // |
| //// /** |
| //// * Retrieve the underlying Apache {@link CookieStore} instance from {@link org.glassfish.jersey.client.JerseyClient} |
| //// * or {@link org.glassfish.jersey.client.JerseyWebTarget} configured to use {@code ApacheConnectorProvider}. |
| //// * |
| //// * @param component |
| //// * {@code JerseyClient} or {@code JerseyWebTarget} instance that is configured to use |
| //// * {@code ApacheConnectorProvider}. |
| //// * @return underlying Apache {@code CookieStore} instance. |
| //// * @throws java.lang.IllegalArgumentException |
| //// * in case the {@code component} is neither {@code JerseyClient} nor {@code JerseyWebTarget} instance or in |
| //// * case the component is not configured to use a {@code ApacheConnectorProvider}. |
| //// * @since 2.16 |
| //// */ |
| //// public static CookieStore getCookieStore(final Configurable<?> component) { |
| //// return getConnector(component).getCookieStore(); |
| //// } |
| // |
| //// private static ApacheConnector getConnector(final Configurable<?> component) { |
| //// if (!(component instanceof Initializable)) { |
| //// throw new IllegalArgumentException( |
| //// LocalizationMessages.INVALID_CONFIGURABLE_COMPONENT_TYPE(component.getClass().getName())); |
| //// } |
| //// |
| //// final Initializable<?> initializable = (Initializable<?>) component; |
| //// Connector connector = initializable.getConfiguration().getConnector(); |
| //// if (connector == null) { |
| //// initializable.preInitialize(); |
| //// connector = initializable.getConfiguration().getConnector(); |
| //// } |
| //// |
| //// if (connector instanceof ApacheConnector) { |
| //// return (ApacheConnector) connector; |
| //// } |
| //// else { |
| //// throw new IllegalArgumentException(LocalizationMessages.EXPECTED_CONNECTOR_PROVIDER_NOT_USED()); |
| //// } |
| //// } |
| //} |