1
1
package org .openstack4j .connectors .resteasy ;
2
2
3
- import java .util .List ;
4
- import java .util .Map ;
5
-
6
- import javax .ws .rs .client .Entity ;
7
- import javax .ws .rs .client .Invocation ;
8
- import javax .ws .rs .core .Response ;
9
- import javax .ws .rs .core .UriBuilder ;
10
-
11
3
import org .jboss .resteasy .client .jaxrs .ResteasyClientBuilder ;
12
4
import org .jboss .resteasy .client .jaxrs .ResteasyWebTarget ;
13
5
import org .openstack4j .connectors .resteasy .executors .ApacheHttpClientEngine ;
14
6
import org .openstack4j .core .transport .ClientConstants ;
15
7
import org .openstack4j .core .transport .HttpRequest ;
16
8
import org .openstack4j .core .transport .functions .EndpointURIFromRequestFunction ;
17
9
10
+ import javax .ws .rs .client .Entity ;
11
+ import javax .ws .rs .client .Invocation ;
12
+ import javax .ws .rs .core .Response ;
13
+ import javax .ws .rs .core .UriBuilder ;
14
+ import java .util .List ;
15
+ import java .util .Map ;
16
+
18
17
/**
19
18
* HttpCommand is responsible for executing the actual request driven by the HttpExecutor.
20
19
*
@@ -25,6 +24,7 @@ public final class HttpCommand<R> {
25
24
private HttpRequest <R > request ;
26
25
private ResteasyWebTarget resteasyWebTarget ;
27
26
private int retries ;
27
+ private Invocation .Builder resteasyRequest ;
28
28
29
29
private HttpCommand (HttpRequest <R > request ) {
30
30
this .request = request ;
@@ -48,24 +48,24 @@ private void initialize() {
48
48
.target (UriBuilder .fromUri (new EndpointURIFromRequestFunction ().apply (request )));
49
49
50
50
populateQueryParams (request );
51
+ resteasyRequest = resteasyWebTarget .request ();
51
52
populateHeaders (request );
52
53
}
53
54
54
55
/**
55
56
* Executes the command and returns the Response
56
57
*
57
58
* @return the response
58
- * @throws Exception
59
59
*/
60
60
public Response execute (){
61
61
62
62
Invocation webRequest ;
63
63
if (request .getEntity () != null ) {
64
- webRequest = resteasyWebTarget . request () .build (request .getMethod ().name (), Entity .entity (request .getEntity (), request .getContentType ()));
64
+ webRequest = resteasyRequest .build (request .getMethod ().name (), Entity .entity (request .getEntity (), request .getContentType ()));
65
65
} else if (request .hasJson ()) {
66
- webRequest = resteasyWebTarget . request () .build (request .getMethod ().name () , Entity .entity (request .getJson (),ClientConstants .CONTENT_TYPE_JSON ));
66
+ webRequest = resteasyRequest .build (request .getMethod ().name () , Entity .entity (request .getJson (),ClientConstants .CONTENT_TYPE_JSON ));
67
67
}else {
68
- webRequest = resteasyWebTarget . request () .build (request .getMethod ().name ());
68
+ webRequest = resteasyRequest .build (request .getMethod ().name ());
69
69
}
70
70
71
71
return webRequest .invoke ();
@@ -104,7 +104,7 @@ private void populateQueryParams(HttpRequest<R> request) {
104
104
105
105
for (Map .Entry <String , List <Object >> entry : request .getQueryParams ().entrySet ()) {
106
106
for (Object o : entry .getValue ()) {
107
- resteasyWebTarget .queryParam (entry .getKey (), o );
107
+ resteasyWebTarget = resteasyWebTarget .queryParam (entry .getKey (), o );
108
108
}
109
109
}
110
110
}
@@ -114,7 +114,7 @@ private void populateHeaders(HttpRequest<R> request) {
114
114
if (!request .hasHeaders ()) return ;
115
115
116
116
for (Map .Entry <String , Object > h : request .getHeaders ().entrySet ()) {
117
- resteasyWebTarget . request () .header (h .getKey (), h .getValue ());
117
+ resteasyRequest .header (h .getKey (), h .getValue ());
118
118
}
119
119
}
120
120
}
0 commit comments