com.palominolabs.crm.sf.rest.TestConnections.java Source code

Java tutorial

Introduction

Here is the source code for com.palominolabs.crm.sf.rest.TestConnections.java

Source

/*
 * Copyright  2013. Palomino Labs (http://palominolabs.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.palominolabs.crm.sf.rest;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Throwables;
import com.palominolabs.crm.sf.soap.ApiException;
import com.palominolabs.crm.sf.soap.BindingConfig;
import com.palominolabs.crm.sf.soap.ConnectionPool;
import com.palominolabs.crm.sf.soap.ConnectionPoolImpl;
import org.apache.http.impl.client.HttpClients;

import java.net.MalformedURLException;
import java.net.URL;

import static com.palominolabs.crm.sf.testutil.TestMetricRegistry.METRIC_REGISTRY;

final class TestConnections {

    static final ObjectMapper MAPPER = new ObjectMapper();

    private TestConnections() {
    }

    static HttpApiClient getHttpApiClient(String user, String password) {
        try {
            BindingConfig bindingConfig = getBindingConfig(user, password);
            String host = new URL(bindingConfig.getPartnerServerUrl()).getHost();
            return new HttpApiClient(host, bindingConfig.getSessionId(), MAPPER, HttpClients.createDefault());
        } catch (ApiException e) {
            throw Throwables.propagate(e);
        } catch (MalformedURLException e) {
            throw Throwables.propagate(e);
        }
    }

    static BindingConfig getBindingConfig(String user, String password) throws ApiException {

        ConnectionPool<Integer> repository = new ConnectionPoolImpl<Integer>("testPartnerKey", METRIC_REGISTRY);
        repository.configureOrg(1, user, password, 1);

        return repository.getConnectionBundle(1).getBindingConfig();
    }

    static RestConnection getRestConnection(String user, String password) {
        return new RestConnectionImpl(MAPPER.reader(),
                new FixedHttpApiClientProvider(getHttpApiClient(user, password)), METRIC_REGISTRY);
    }
}