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