Feature/issue 4698 rxjava2 support (#4743)

* rx2 support

* NO_NOT_USE_RX is for internal use only; plus sanity check if both v1 and v2 are specified

* minor fixes

* one more small fix
This commit is contained in:
Gábor Berényi
2017-03-03 01:00:20 -08:00
committed by wing328
parent dbe99c3af9
commit 39a42d014b
7 changed files with 57 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ import java.time.format.DateTimeFormatter;
import retrofit2.Converter;
import retrofit2.Retrofit;
{{#useRxJava}}import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;{{/useRxJava}}
{{#useRxJava2}}import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;{{/useRxJava2}}
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;
@@ -150,6 +151,7 @@ public class ApiClient {
.Builder()
.baseUrl(baseUrl)
{{#useRxJava}}.addCallAdapterFactory(RxJavaCallAdapterFactory.create()){{/useRxJava}}
{{#useRxJava2}}.addCallAdapterFactory(RxJava2CallAdapterFactory.create()){{/useRxJava2}}
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonCustomConverterFactory.create(gson));
}

View File

@@ -3,7 +3,8 @@ package {{package}};
import {{invokerPackage}}.CollectionFormats.*;
{{#useRxJava}}import rx.Observable;{{/useRxJava}}
{{^useRxJava}}import retrofit2.Call;{{/useRxJava}}
{{#useRxJava2}}import io.reactivex.Observable;{{/useRxJava2}}
{{#doNotUseRx}}import retrofit2.Call;{{/doNotUseRx}}
import retrofit2.http.*;
import okhttp3.RequestBody;
@@ -46,7 +47,7 @@ public interface {{classname}} {
{{/prioritizedContentTypes}}
{{/formParams}}
@{{httpMethod}}("{{path}}")
{{^usePlay24WS}}{{#useRxJava}}Observable{{/useRxJava}}{{^useRxJava}}Call{{/useRxJava}}{{/usePlay24WS}}{{#usePlay24WS}}F.Promise<Response{{/usePlay24WS}}<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}>{{#usePlay24WS}}>{{/usePlay24WS}} {{operationId}}({{^allParams}});{{/allParams}}
{{^usePlay24WS}}{{^doNotUseRx}}Observable{{/doNotUseRx}}{{#doNotUseRx}}Call{{/doNotUseRx}}{{/usePlay24WS}}{{#usePlay24WS}}F.Promise<Response{{/usePlay24WS}}<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}>{{#usePlay24WS}}>{{/usePlay24WS}} {{operationId}}({{^allParams}});{{/allParams}}
{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{#hasMore}}, {{/hasMore}}{{^hasMore}}
);{{/hasMore}}{{/allParams}}

View File

@@ -101,6 +101,9 @@ ext {
{{#useRxJava}}
rx_java_version = "1.1.3"
{{/useRxJava}}
{{#useRxJava2}}
rx_java_version = "2.0.5"
{{/useRxJava2}}
{{^java8}}
jodatime_version = "2.9.3"
{{/java8}}
@@ -114,6 +117,10 @@ dependencies {
compile "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
compile "io.reactivex:rxjava:$rx_java_version"
{{/useRxJava}}
{{#useRxJava2}}
compile "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0"
compile "io.reactivex.rxjava2:rxjava:$rx_java_version"
{{/useRxJava2}}
compile "io.swagger:swagger-annotations:$swagger_annotations_version"
compile "org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"
{{^java8}}

View File

@@ -16,6 +16,10 @@ lazy val root = (project in file(".")).
"com.squareup.retrofit2" % "adapter-rxjava" % "2.0.2" % "compile",
"io.reactivex" % "rxjava" % "1.1.3" % "compile",
{{/useRxJava}}
{{#useRxJava2}}
"com.jakewharton.retrofit" % "retrofit2-rxjava2-adapter" % "1.0.0" % "compile",
"io.reactivex.rxjava2" % "rxjava" % "2.0.5" % "compile",
{{/useRxJava2}}
"io.swagger" % "swagger-annotations" % "1.5.8" % "compile",
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.1" % "compile",
{{^java8}}

View File

@@ -213,6 +213,18 @@
<version>${retrofit-version}</version>
</dependency>
{{/useRxJava}}
{{#useRxJava2}}
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>${rxjava-version}</version>
</dependency>
<dependency>
<groupId>com.jakewharton.retrofit</groupId>
<artifactId>retrofit2-rxjava2-adapter</artifactId>
<version>1.0.0</version>
</dependency>
{{/useRxJava2}}
{{#usePlay24WS}}
<!-- JSON processing: jackson -->
@@ -269,6 +281,9 @@
{{#useRxJava}}
<rxjava-version>1.1.6</rxjava-version>
{{/useRxJava}}
{{#useRxJava2}}
<rxjava-version>2.0.5</rxjava-version>
{{/useRxJava2}}
{{^java8}}
<jodatime-version>2.9.4</jodatime-version>
{{/java8}}