1515 */
1616package feign .example .cli ;
1717
18- import com .google .common .collect .ImmutableMap ;
19- import com .google .common .reflect .TypeToken ;
2018import com .google .gson .Gson ;
2119
2220import java .io .Reader ;
21+ import java .lang .reflect .Type ;
22+ import java .util .LinkedHashMap ;
2323import java .util .List ;
2424import java .util .Map ;
2525
26+ import javax .inject .Named ;
2627import javax .inject .Singleton ;
27- import javax .ws .rs .GET ;
28- import javax .ws .rs .Path ;
29- import javax .ws .rs .PathParam ;
3028
3129import dagger .Module ;
3230import dagger .Provides ;
3331import feign .Feign ;
32+ import feign .RequestLine ;
3433import feign .codec .Decoder ;
3534
3635/**
3938public class GitHubExample {
4039
4140 interface GitHub {
42- @ GET @ Path ( " /repos/{owner}/{repo}/contributors" )
43- List <Contributor > contributors (@ PathParam ("owner" ) String owner , @ PathParam ("repo" ) String repo );
41+ @ RequestLine ( "GET /repos/{owner}/{repo}/contributors" )
42+ List <Contributor > contributors (@ Named ("owner" ) String owner , @ Named ("repo" ) String repo );
4443 }
4544
4645 static class Contributor {
@@ -64,14 +63,16 @@ public static void main(String... args) {
6463 @ Module (overrides = true , library = true )
6564 static class GsonModule {
6665 @ Provides @ Singleton Map <String , Decoder > decoders () {
67- return ImmutableMap .of ("GitHub" , jsonDecoder );
66+ Map <String , Decoder > decoders = new LinkedHashMap <String , Decoder >();
67+ decoders .put ("GitHub" , jsonDecoder );
68+ return decoders ;
6869 }
6970
7071 final Decoder jsonDecoder = new Decoder () {
7172 Gson gson = new Gson ();
7273
73- @ Override public Object decode (String methodKey , Reader reader , TypeToken <?> type ) {
74- return gson .fromJson (reader , type . getType () );
74+ @ Override public Object decode (String methodKey , Reader reader , Type type ) {
75+ return gson .fromJson (reader , type );
7576 }
7677 };
7778 }
0 commit comments