@@ -35,6 +35,16 @@ public OAuth10aServiceImpl(DefaultApi10a api, OAuthConfig config)
3535 * {@inheritDoc}
3636 */
3737 public Token getRequestToken (int timeout , TimeUnit unit )
38+ {
39+ return getRequestToken (new TimeoutTuner (timeout , unit ));
40+ }
41+
42+ public Token getRequestToken ()
43+ {
44+ return getRequestToken (2 , TimeUnit .SECONDS );
45+ }
46+
47+ public Token getRequestToken (RequestTuner tuner )
3848 {
3949 config .log ("obtaining request token from " + api .getRequestTokenEndpoint ());
4050 OAuthRequest request = new OAuthRequest (api .getRequestTokenVerb (), api .getRequestTokenEndpoint ());
@@ -45,20 +55,14 @@ public Token getRequestToken(int timeout, TimeUnit unit)
4555 appendSignature (request );
4656
4757 config .log ("sending request..." );
48- request .setReadTimeout (timeout , unit );
49- Response response = request .send ();
58+ Response response = request .send (tuner );
5059 String body = response .getBody ();
5160
5261 config .log ("response status code: " + response .getCode ());
5362 config .log ("response body: " + body );
5463 return api .getRequestTokenExtractor ().extract (body );
5564 }
5665
57- public Token getRequestToken ()
58- {
59- return getRequestToken (2 , TimeUnit .SECONDS );
60- }
61-
6266 private void addOAuthParams (OAuthRequest request , Token token )
6367 {
6468 request .addOAuthParameter (OAuthConstants .TIMESTAMP , api .getTimestampService ().getTimestampInSeconds ());
@@ -76,6 +80,16 @@ private void addOAuthParams(OAuthRequest request, Token token)
7680 * {@inheritDoc}
7781 */
7882 public Token getAccessToken (Token requestToken , Verifier verifier , int timeout , TimeUnit unit )
83+ {
84+ return getAccessToken (requestToken , verifier , new TimeoutTuner (timeout , unit ));
85+ }
86+
87+ public Token getAccessToken (Token requestToken , Verifier verifier )
88+ {
89+ return getAccessToken (requestToken , verifier , 2 , TimeUnit .SECONDS );
90+ }
91+
92+ public Token getAccessToken (Token requestToken , Verifier verifier , RequestTuner tuner )
7993 {
8094 config .log ("obtaining access token from " + api .getAccessTokenEndpoint ());
8195 OAuthRequest request = new OAuthRequest (api .getAccessTokenVerb (), api .getAccessTokenEndpoint ());
@@ -85,16 +99,10 @@ public Token getAccessToken(Token requestToken, Verifier verifier, int timeout,
8599 config .log ("setting token to: " + requestToken + " and verifier to: " + verifier );
86100 addOAuthParams (request , requestToken );
87101 appendSignature (request );
88- request .setReadTimeout (timeout , unit );
89- Response response = request .send ();
102+ Response response = request .send (tuner );
90103 return api .getAccessTokenExtractor ().extract (response .getBody ());
91104 }
92105
93- public Token getAccessToken (Token requestToken , Verifier verifier )
94- {
95- return getAccessToken (requestToken , verifier , 2 , TimeUnit .SECONDS );
96- }
97-
98106 /**
99107 * {@inheritDoc}
100108 */
@@ -159,4 +167,22 @@ private void appendSignature(OAuthRequest request)
159167 break ;
160168 }
161169 }
170+
171+ private static class TimeoutTuner extends RequestTuner
172+ {
173+ private final int duration ;
174+ private final TimeUnit unit ;
175+
176+ public TimeoutTuner (int duration , TimeUnit unit )
177+ {
178+ this .duration = duration ;
179+ this .unit = unit ;
180+ }
181+
182+ @ Override
183+ public void tune (Request request )
184+ {
185+ request .setReadTimeout (duration , unit );
186+ }
187+ }
162188}
0 commit comments