20
20
21
21
import com .fasterxml .jackson .databind .DeserializationFeature ;
22
22
import com .fasterxml .jackson .databind .ObjectMapper ;
23
- import okhttp3 .Credentials ;
24
- import okhttp3 .MediaType ;
25
- import okhttp3 .OkHttpClient ;
26
- import okhttp3 .Request ;
27
- import okhttp3 .RequestBody ;
28
- import okhttp3 .Response ;
29
- import okhttp3 .ResponseBody ;
23
+ import org .apache .http .HttpHost ;
24
+ import org .apache .http .auth .AuthScope ;
25
+ import org .apache .http .auth .UsernamePasswordCredentials ;
26
+ import org .apache .http .client .CredentialsProvider ;
27
+ import org .apache .http .impl .client .BasicCredentialsProvider ;
28
+ import org .apache .http .util .EntityUtils ;
29
+ import org .elasticsearch .client .Request ;
30
+ import org .elasticsearch .client .RestClient ;
30
31
import org .junit .jupiter .api .Assertions ;
31
32
32
33
import java .io .IOException ;
@@ -41,10 +42,7 @@ public class ElasticsearchRestClient {
41
42
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper ()
42
43
.configure (DeserializationFeature .FAIL_ON_UNKNOWN_PROPERTIES , false );
43
44
44
- private final String host ;
45
- private final int port ;
46
- private final String username ;
47
- private final String password ;
45
+ private final RestClient restClient ;
48
46
49
47
public ElasticsearchRestClient (ElasticsearchMetadata metadata ) {
50
48
this (metadata .getContainerHost (),
@@ -54,72 +52,48 @@ public ElasticsearchRestClient(ElasticsearchMetadata metadata) {
54
52
}
55
53
56
54
public ElasticsearchRestClient (String host , int port , String username , String password ) {
57
- this .host = host ;
58
- this .port = port ;
59
- this .username = username ;
60
- this .password = password ;
55
+ final CredentialsProvider credentialsProvider = new BasicCredentialsProvider ();
56
+ credentialsProvider .setCredentials (AuthScope .ANY , new UsernamePasswordCredentials (username , password ));
57
+ this .restClient = RestClient .builder (new HttpHost (host , port , "http" ))
58
+ .setHttpClientConfigCallback (builder -> builder .setDefaultCredentialsProvider (credentialsProvider ))
59
+ .build ();
61
60
}
62
61
63
62
public boolean trialEnabled () throws Exception {
64
- Request request = requestWithAuthorization ()
65
- .url (format ("http://%s:%d/_license" , host , port ))
66
- .get ()
67
- .build ();
63
+ Request request = new Request ("GET" , "/_license" );
68
64
ElasticLicenseResponse response = executeRequest (request , ElasticLicenseResponse .class );
69
65
return response != null && response .license .status .equals ("active" ) && response .license .type .equals ("trial" );
70
66
}
71
67
72
68
public void enableTrial () throws Exception {
73
- Request request = requestWithAuthorization ()
74
- .url (format ("http://%s:%d/_license/start_trial?acknowledge=true" , host , port ))
75
- .post (RequestBody .create (new byte []{}))
76
- .build ();
77
- executeRequest (request );
69
+ executeRequest (new Request ("POST" , "/_license/start_trial?acknowledge=true" ));
78
70
}
79
71
80
72
public void createIndex (String indexName , String indexDefinition ) throws Exception {
81
- Request request = requestWithAuthorization ()
82
- .url (format ("http://%s:%d/%s/" , host , port , indexName ))
83
- .put (RequestBody .create (indexDefinition , MediaType .get ("application/json" )))
84
- .build ();
73
+ Request request = new Request ("PUT" , format ("/%s/" , indexName ));
74
+ request .setJsonEntity (indexDefinition );
85
75
executeRequest (request );
86
76
}
87
77
88
78
public void deleteIndex (String indexName ) throws Exception {
89
- Request request = requestWithAuthorization ()
90
- .url (format ("http://%s:%d/%s/" , host , port , indexName ))
91
- .delete ()
92
- .build ();
93
- executeRequest (request );
79
+ executeRequest (new Request ("DELETE" , format ("/%s/" , indexName )));
94
80
}
95
81
96
82
public void addDataBulk (String indexName , String content ) throws Exception {
97
- Request request = requestWithAuthorization ()
98
- .url (format ("http://%s:%d/%s/_bulk?refresh=true" , host , port , indexName ))
99
- .post (RequestBody .create (content , MediaType .get ("application/json" )))
100
- .build ();
83
+ Request request = new Request ("PUT" , format ("/%s/_bulk?refresh=true" , indexName ));
84
+ request .setJsonEntity (content );
101
85
executeRequest (request );
102
86
}
103
87
104
88
private <T > T executeRequest (Request request , Class <T > outputClass ) throws IOException {
105
- OkHttpClient client = new OkHttpClient ();
106
- try (Response response = client .newCall (request ).execute ()) {
107
- ResponseBody body = response .body ();
108
- Assertions .assertTrue (response .isSuccessful ());
109
- Assertions .assertNotNull (body );
110
- return OBJECT_MAPPER .readValue (body .string (), outputClass );
111
- }
89
+ org .elasticsearch .client .Response response = restClient .performRequest (request );
90
+ Assertions .assertEquals (200 , response .getStatusLine ().getStatusCode ());
91
+ return OBJECT_MAPPER .readValue (EntityUtils .toString (response .getEntity ()), outputClass );
112
92
}
113
93
114
94
private void executeRequest (Request request ) throws IOException {
115
- OkHttpClient client = new OkHttpClient ();
116
- try (Response response = client .newCall (request ).execute ()) {
117
- Assertions .assertTrue (response .isSuccessful ());
118
- }
119
- }
120
-
121
- private Request .Builder requestWithAuthorization () {
122
- return new Request .Builder ().addHeader ("Authorization" , Credentials .basic (username , password ));
95
+ org .elasticsearch .client .Response response = restClient .performRequest (request );
96
+ Assertions .assertEquals (200 , response .getStatusLine ().getStatusCode ());
123
97
}
124
98
125
99
private static class ElasticLicenseResponse {
0 commit comments