From 779bdb23eb6b77cce643ae2bc7421671ad8d9455 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Sat, 14 Feb 2015 17:36:39 -0800 Subject: [PATCH] rebuilt client --- samples/client/wordnik/scala/pom.xml | 7 ++++ .../java/io/swagger/client/ApiInvoker.scala | 39 ++++++++++++++++--- .../io/swagger/client/api/AccountApi.scala | 9 +++-- .../java/io/swagger/client/api/WordApi.scala | 9 +++-- .../io/swagger/client/api/WordListApi.scala | 9 +++-- .../io/swagger/client/api/WordListsApi.scala | 9 +++-- .../java/io/swagger/client/api/WordsApi.scala | 9 +++-- 7 files changed, 66 insertions(+), 25 deletions(-) diff --git a/samples/client/wordnik/scala/pom.xml b/samples/client/wordnik/scala/pom.xml index 92477018adc..0ccbebeb0df 100644 --- a/samples/client/wordnik/scala/pom.xml +++ b/samples/client/wordnik/scala/pom.xml @@ -165,6 +165,12 @@ jersey-multipart ${jersey-version} + + org.jfarcand + jersey-ahc-client + ${jersey-async-version} + compile + org.scala-lang scala-library @@ -204,6 +210,7 @@ 2.2 1.7 1.5.0-M1 + 1.0.5 1.0.0 2.4.2 diff --git a/samples/client/wordnik/scala/src/main/java/io/swagger/client/ApiInvoker.scala b/samples/client/wordnik/scala/src/main/java/io/swagger/client/ApiInvoker.scala index a55b2b83db1..329d69a8ac9 100644 --- a/samples/client/wordnik/scala/src/main/java/io/swagger/client/ApiInvoker.scala +++ b/samples/client/wordnik/scala/src/main/java/io/swagger/client/ApiInvoker.scala @@ -35,10 +35,14 @@ object ScalaJsonUtil { } } -object ApiInvoker { - val mapper = ScalaJsonUtil.getJsonMapper - val defaultHeaders: HashMap[String, String] = HashMap() - val hostMap: HashMap[String, Client] = HashMap() +class ApiInvoker(val mapper: ObjectMapper = ScalaJsonUtil.getJsonMapper, + httpHeaders: HashMap[String, String] = HashMap(), + hostMap: HashMap[String, Client] = HashMap(), + asyncHttpClient: Boolean = false, + authScheme: String = "", + authPreemptive: Boolean = false) { + + var defaultHeaders: HashMap[String, String] = httpHeaders def escape(value: String): String = { URLEncoder.encode(value, "utf-8").replaceAll("\\+", "%20") @@ -151,14 +155,39 @@ object ApiInvoker { hostMap.contains(host) match { case true => hostMap(host) case false => { - val client = Client.create() + val client = newClient(host) // client.addFilter(new LoggingFilter()) hostMap += host -> client client } } } + + def newClient(host: String): Client = asyncHttpClient match { + case true => { + import org.sonatype.spice.jersey.client.ahc.config.DefaultAhcConfig + import org.sonatype.spice.jersey.client.ahc.AhcHttpClient + import com.ning.http.client.Realm + + val config: DefaultAhcConfig = new DefaultAhcConfig() + if (!authScheme.isEmpty) { + val authSchemeEnum = Realm.AuthScheme.valueOf(authScheme) + config.getAsyncHttpClientConfigBuilder + .setRealm(new Realm.RealmBuilder().setScheme(authSchemeEnum) + .setUsePreemptiveAuth(authPreemptive).build) + } + AhcHttpClient.create(config) + } + case _ => Client.create() + } } +object ApiInvoker extends ApiInvoker(mapper = ScalaJsonUtil.getJsonMapper, + httpHeaders = HashMap(), + hostMap = HashMap(), + asyncHttpClient = false, + authScheme = "", + authPreemptive = false) + class ApiException(val code: Int, msg: String) extends RuntimeException(msg) diff --git a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/AccountApi.scala b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/AccountApi.scala index 8c1d15b0643..0ac44dd6ce9 100644 --- a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/AccountApi.scala +++ b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/AccountApi.scala @@ -12,10 +12,11 @@ import java.util.Date import scala.collection.mutable.HashMap -class AccountApi { - var basePath: String = "https://api.wordnik.com/v4" - var apiInvoker = ApiInvoker - +class AccountApi(val defBasePath: String = "https://api.wordnik.com/v4", + defApiInvoker: ApiInvoker = ApiInvoker) { + var basePath = defBasePath + var apiInvoker = defApiInvoker + def addHeader(key: String, value: String) = apiInvoker.defaultHeaders += key -> value diff --git a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordApi.scala b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordApi.scala index be9b082f6d0..390583c69cc 100644 --- a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordApi.scala +++ b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordApi.scala @@ -14,10 +14,11 @@ import java.util.Date import scala.collection.mutable.HashMap -class WordApi { - var basePath: String = "https://api.wordnik.com/v4" - var apiInvoker = ApiInvoker - +class WordApi(val defBasePath: String = "https://api.wordnik.com/v4", + defApiInvoker: ApiInvoker = ApiInvoker) { + var basePath = defBasePath + var apiInvoker = defApiInvoker + def addHeader(key: String, value: String) = apiInvoker.defaultHeaders += key -> value diff --git a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListApi.scala b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListApi.scala index 0f65ec4b0d1..958bc234ab3 100644 --- a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListApi.scala +++ b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListApi.scala @@ -10,10 +10,11 @@ import java.util.Date import scala.collection.mutable.HashMap -class WordListApi { - var basePath: String = "https://api.wordnik.com/v4" - var apiInvoker = ApiInvoker - +class WordListApi(val defBasePath: String = "https://api.wordnik.com/v4", + defApiInvoker: ApiInvoker = ApiInvoker) { + var basePath = defBasePath + var apiInvoker = defApiInvoker + def addHeader(key: String, value: String) = apiInvoker.defaultHeaders += key -> value diff --git a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListsApi.scala b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListsApi.scala index ab438ee39d3..805f62d4be7 100644 --- a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListsApi.scala +++ b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordListsApi.scala @@ -9,10 +9,11 @@ import java.util.Date import scala.collection.mutable.HashMap -class WordListsApi { - var basePath: String = "https://api.wordnik.com/v4" - var apiInvoker = ApiInvoker - +class WordListsApi(val defBasePath: String = "https://api.wordnik.com/v4", + defApiInvoker: ApiInvoker = ApiInvoker) { + var basePath = defBasePath + var apiInvoker = defApiInvoker + def addHeader(key: String, value: String) = apiInvoker.defaultHeaders += key -> value diff --git a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordsApi.scala b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordsApi.scala index 3013a29c986..0135ef1feb9 100644 --- a/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordsApi.scala +++ b/samples/client/wordnik/scala/src/main/java/io/swagger/client/api/WordsApi.scala @@ -12,10 +12,11 @@ import java.util.Date import scala.collection.mutable.HashMap -class WordsApi { - var basePath: String = "https://api.wordnik.com/v4" - var apiInvoker = ApiInvoker - +class WordsApi(val defBasePath: String = "https://api.wordnik.com/v4", + defApiInvoker: ApiInvoker = ApiInvoker) { + var basePath = defBasePath + var apiInvoker = defApiInvoker + def addHeader(key: String, value: String) = apiInvoker.defaultHeaders += key -> value