Package play.libs.ws.ning

Source Code of play.libs.ws.ning.NingWSAPI

/*
* Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com>
*/
package play.libs.ws.ning;

import com.ning.http.client.AsyncHttpClientConfig;
import play.Application;
import play.Environment;
import play.api.libs.ws.DefaultWSConfigParser;
import play.api.libs.ws.WSClientConfig;
import play.api.libs.ws.ning.NingAsyncHttpClientConfigBuilder;
import play.inject.ApplicationLifecycle;
import play.libs.F;
import play.libs.ws.WSAPI;
import play.libs.ws.WSClient;
import play.libs.ws.WSRequestHolder;
import scala.Unit;

import javax.inject.Inject;
import javax.inject.Provider;
import javax.inject.Singleton;
import java.util.concurrent.Callable;
import java.util.concurrent.atomic.AtomicReference;

/**
*
*/
@Singleton
public class NingWSAPI implements WSAPI {

    private final NingWSClient client;

    @Inject
    public NingWSAPI(WSClientConfig clientConfig, ApplicationLifecycle lifecycle) {
        client = new NingWSClient(
                new NingAsyncHttpClientConfigBuilder(clientConfig).build()
        );
        lifecycle.addStopHook(new Callable<F.Promise<Void>>() {
            @Override
            public F.Promise<Void> call() throws Exception {
                client.close();
                return F.Promise.pure(null);
            }
        });
    }

    @Override
    public WSClient client() {
        return client;
    }

    @Override
    public WSRequestHolder url(String url) {
        return client().url(url);
    }
}
TOP

Related Classes of play.libs.ws.ning.NingWSAPI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.