@@ -49,13 +49,10 @@ public OAuthService(OAuthConfig config) {
4949 }
5050
5151 if (ahcConfig == null ) {
52- final String ningAsyncHttpProviderClassName = config .getNingAsyncHttpProviderClassName ();
53- ningAsyncHttpClient = ningAsyncHttpProviderClassName == null
54- ? new com .ning .http .client .AsyncHttpClient (ningConfig )
55- : new com .ning .http .client .AsyncHttpClient (ningAsyncHttpProviderClassName , ningConfig );
52+ ningAsyncHttpClient = NingProvider .createClient (config .getNingAsyncHttpProviderClassName (), ningConfig );
5653 ahcAsyncHttpClient = null ;
5754 } else {
58- ahcAsyncHttpClient = new org . asynchttpclient . DefaultAsyncHttpClient (ahcConfig );
55+ ahcAsyncHttpClient = AHCProvider . createClient (ahcConfig );
5956 ningAsyncHttpClient = null ;
6057 }
6158 }
@@ -84,72 +81,93 @@ public <T> Future<T> executeAsync(Map<String, String> headers, Verb httpVerb, St
8481 String bodyContents , OAuthAsyncRequestCallback <T > callback ,
8582 OAuthRequestAsync .ResponseConverter <T > converter ) {
8683 if (ahcAsyncHttpClient == null ) {
87- return ningExecuteAsync (headers , httpVerb , completeUrl , bodyContents , callback , converter );
84+ return NingProvider .ningExecuteAsync (ningAsyncHttpClient , config .getUserAgent (), headers , httpVerb ,
85+ completeUrl , bodyContents , callback , converter );
8886 } else {
89- return ahcExecuteAsync (headers , httpVerb , completeUrl , bodyContents , callback , converter );
87+ return AHCProvider .ahcExecuteAsync (ahcAsyncHttpClient , config .getUserAgent (), headers , httpVerb ,
88+ completeUrl , bodyContents , callback , converter );
9089 }
9190 }
9291
93- private <T > Future <T > ningExecuteAsync (Map <String , String > headers , Verb httpVerb , String completeUrl ,
94- String bodyContents , OAuthAsyncRequestCallback <T > callback ,
95- OAuthRequestAsync .ResponseConverter <T > converter ) {
96- final com .ning .http .client .AsyncHttpClient .BoundRequestBuilder boundRequestBuilder ;
97- switch (httpVerb ) {
98- case GET :
99- boundRequestBuilder = ningAsyncHttpClient .prepareGet (completeUrl );
100- break ;
101- case POST :
102- com .ning .http .client .AsyncHttpClient .BoundRequestBuilder requestBuilder
103- = ningAsyncHttpClient .preparePost (completeUrl );
104- if (!headers .containsKey (AbstractRequest .CONTENT_TYPE )) {
105- requestBuilder = requestBuilder .addHeader (AbstractRequest .CONTENT_TYPE , DEFAULT_CONTENT_TYPE );
106- }
107- boundRequestBuilder = requestBuilder .setBody (bodyContents );
108- break ;
109- default :
110- throw new IllegalArgumentException ("message build error: unknown verb type" );
111- }
92+ private static class NingProvider {
11293
113- for (Map .Entry <String , String > header : headers .entrySet ()) {
114- boundRequestBuilder .addHeader (header .getKey (), header .getValue ());
115- }
116- final String userAgent = config .getUserAgent ();
117- if (userAgent != null ) {
118- boundRequestBuilder .setHeader (OAuthConstants .USER_AGENT_HEADER_NAME , userAgent );
94+ private static com .ning .http .client .AsyncHttpClient createClient (String ningAsyncHttpProviderClassName ,
95+ com .ning .http .client .AsyncHttpClientConfig ningConfig ) {
96+ return ningAsyncHttpProviderClassName == null
97+ ? new com .ning .http .client .AsyncHttpClient (ningConfig )
98+ : new com .ning .http .client .AsyncHttpClient (ningAsyncHttpProviderClassName , ningConfig );
11999 }
120100
121- return boundRequestBuilder
122- .execute (new com .github .scribejava .core .async .ning .OAuthAsyncCompletionHandler <>(callback , converter ));
123- }
101+ private static <T > Future <T > ningExecuteAsync (com .ning .http .client .AsyncHttpClient ningAsyncHttpClient ,
102+ String userAgent , Map <String , String > headers , Verb httpVerb , String completeUrl , String bodyContents ,
103+ OAuthAsyncRequestCallback <T > callback , OAuthRequestAsync .ResponseConverter <T > converter ) {
104+ final com .ning .http .client .AsyncHttpClient .BoundRequestBuilder boundRequestBuilder ;
105+ switch (httpVerb ) {
106+ case GET :
107+ boundRequestBuilder = ningAsyncHttpClient .prepareGet (completeUrl );
108+ break ;
109+ case POST :
110+ com .ning .http .client .AsyncHttpClient .BoundRequestBuilder requestBuilder
111+ = ningAsyncHttpClient .preparePost (completeUrl );
112+ if (!headers .containsKey (AbstractRequest .CONTENT_TYPE )) {
113+ requestBuilder = requestBuilder .addHeader (AbstractRequest .CONTENT_TYPE , DEFAULT_CONTENT_TYPE );
114+ }
115+ boundRequestBuilder = requestBuilder .setBody (bodyContents );
116+ break ;
117+ default :
118+ throw new IllegalArgumentException ("message build error: unknown verb type" );
119+ }
124120
125- private <T > Future <T > ahcExecuteAsync (Map <String , String > headers , Verb httpVerb , String completeUrl ,
126- String bodyContents , OAuthAsyncRequestCallback <T > callback ,
127- OAuthRequestAsync .ResponseConverter <T > converter ) {
128- final org .asynchttpclient .BoundRequestBuilder boundRequestBuilder ;
129- switch (httpVerb ) {
130- case GET :
131- boundRequestBuilder = ahcAsyncHttpClient .prepareGet (completeUrl );
132- break ;
133- case POST :
134- org .asynchttpclient .BoundRequestBuilder requestBuilder = ahcAsyncHttpClient .preparePost (completeUrl );
135- if (!headers .containsKey (AbstractRequest .CONTENT_TYPE )) {
136- requestBuilder = requestBuilder .addHeader (AbstractRequest .CONTENT_TYPE , DEFAULT_CONTENT_TYPE );
137- }
138- boundRequestBuilder = requestBuilder .setBody (bodyContents );
139- break ;
140- default :
141- throw new IllegalArgumentException ("message build error: unknown verb type" );
142- }
121+ for (Map .Entry <String , String > header : headers .entrySet ()) {
122+ boundRequestBuilder .addHeader (header .getKey (), header .getValue ());
123+ }
124+ if (userAgent != null ) {
125+ boundRequestBuilder .setHeader (OAuthConstants .USER_AGENT_HEADER_NAME , userAgent );
126+ }
143127
144- for (Map .Entry <String , String > header : headers .entrySet ()) {
145- boundRequestBuilder .addHeader (header .getKey (), header .getValue ());
128+ return boundRequestBuilder
129+ .execute (new com .github .scribejava .core .async .ning .OAuthAsyncCompletionHandler <>(
130+ callback , converter ));
146131 }
147- final String userAgent = config .getUserAgent ();
148- if (userAgent != null ) {
149- boundRequestBuilder .setHeader (OAuthConstants .USER_AGENT_HEADER_NAME , userAgent );
132+ }
133+
134+ private static class AHCProvider {
135+
136+ private static org .asynchttpclient .AsyncHttpClient createClient (
137+ org .asynchttpclient .AsyncHttpClientConfig ahcConfig ) {
138+ return new org .asynchttpclient .DefaultAsyncHttpClient (ahcConfig );
150139 }
151140
152- return boundRequestBuilder
153- .execute (new com .github .scribejava .core .async .ahc .OAuthAsyncCompletionHandler <>(callback , converter ));
141+ private static <T > Future <T > ahcExecuteAsync (org .asynchttpclient .AsyncHttpClient ahcAsyncHttpClient ,
142+ String userAgent , Map <String , String > headers , Verb httpVerb , String completeUrl , String bodyContents ,
143+ OAuthAsyncRequestCallback <T > callback , OAuthRequestAsync .ResponseConverter <T > converter ) {
144+ final org .asynchttpclient .BoundRequestBuilder boundRequestBuilder ;
145+ switch (httpVerb ) {
146+ case GET :
147+ boundRequestBuilder = ahcAsyncHttpClient .prepareGet (completeUrl );
148+ break ;
149+ case POST :
150+ org .asynchttpclient .BoundRequestBuilder requestBuilder
151+ = ahcAsyncHttpClient .preparePost (completeUrl );
152+ if (!headers .containsKey (AbstractRequest .CONTENT_TYPE )) {
153+ requestBuilder = requestBuilder .addHeader (AbstractRequest .CONTENT_TYPE , DEFAULT_CONTENT_TYPE );
154+ }
155+ boundRequestBuilder = requestBuilder .setBody (bodyContents );
156+ break ;
157+ default :
158+ throw new IllegalArgumentException ("message build error: unknown verb type" );
159+ }
160+
161+ for (Map .Entry <String , String > header : headers .entrySet ()) {
162+ boundRequestBuilder .addHeader (header .getKey (), header .getValue ());
163+ }
164+ if (userAgent != null ) {
165+ boundRequestBuilder .setHeader (OAuthConstants .USER_AGENT_HEADER_NAME , userAgent );
166+ }
167+
168+ return boundRequestBuilder
169+ .execute (new com .github .scribejava .core .async .ahc .OAuthAsyncCompletionHandler <>(
170+ callback , converter ));
171+ }
154172 }
155173}
0 commit comments