Skip to content

Commit 188ca88

Browse files
authored
SOLR-599 New Solr Client Using Java 11+ java.net.http.HttpClient (#2259)
SOLR-599: new SolrJ Http Client using the JDK built-in java.net.http.HttpClient (#2259)
1 parent 3a0c657 commit 188ca88

File tree

15 files changed

+2794
-1257
lines changed

15 files changed

+2794
-1257
lines changed

gradle/testing/randomization/policies/solr-tests.policy

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,52 @@ grant {
184184
// for Apache HttpClient useSystemProperties
185185
permission java.net.NetPermission "getProxySelector";
186186
permission java.net.NetPermission "requestPasswordAuthentication";
187+
188+
// for java.net.http.HttpClient. See HttpJdkSolrClientTest
189+
permission "java.net.URLPermission" "http://127.0.0.1:*/solr/debug/foo/*", "HEAD,GET,PUT,POST:*";
190+
permission "java.net.URLPermission" "http://127.0.0.1:*/solr/debug/foo/admin/ping", "GET:*";
191+
permission "java.net.URLPermission" "http://127.0.0.1:*/solr/redirect/foo/*", "HEAD,GET,PUT,POST:*";
192+
permission "java.net.URLPermission" "http://127.0.0.1:*/solr/slow/foo/*", "HEAD,GET,PUT,POST:*";
193+
permission "java.net.URLPermission" "http://127.0.0.1:*/solr/collection1/*", "HEAD,GET,PUT,POST:*";
194+
permission "java.net.URLPermission" "http://127.0.0.1:*/solr/collection1/admin/ping", "GET:*";
195+
permission "java.net.URLPermission" "socket://127.0.0.1:*", "CONNECT:*";
196+
197+
permission "java.net.URLPermission" "https://127.0.0.1:*/solr/debug/foo/*", "HEAD,GET,PUT,POST:*";
198+
permission "java.net.URLPermission" "https://127.0.0.1:*/solr/debug/foo/admin/ping", "GET:*";
199+
permission "java.net.URLPermission" "https://127.0.0.1:*/solr/redirect/foo/*", "HEAD,GET,PUT,POST:*";
200+
permission "java.net.URLPermission" "https://127.0.0.1:*/solr/slow/foo/*", "HEAD,GET,PUT,POST:*";
201+
permission "java.net.URLPermission" "https://127.0.0.1:*/solr/collection1/*", "HEAD,GET,PUT,POST:*";
202+
permission "java.net.URLPermission" "https://127.0.0.1:*/solr/collection1/admin/ping", "GET:*";
203+
204+
permission "java.net.URLPermission" "http://localhost:*/solr/debug/foo/*", "HEAD,GET,PUT,POST:*";
205+
permission "java.net.URLPermission" "http://localhost:*/solr/debug/foo/admin/ping", "GET:*";
206+
permission "java.net.URLPermission" "http://localhost:*/solr/redirect/foo/*", "HEAD,GET,PUT,POST:*";
207+
permission "java.net.URLPermission" "http://localhost:*/solr/slow/foo/*", "HEAD,GET,PUT,POST:*";
208+
permission "java.net.URLPermission" "http://localhost:*/solr/collection1/*", "HEAD,GET,PUT,POST:*";
209+
permission "java.net.URLPermission" "http://localhost:*/solr/collection1/admin/ping", "GET:*";
210+
permission "java.net.URLPermission" "socket://localhost:*", "CONNECT:*";
211+
212+
permission "java.net.URLPermission" "https://localhost:*/solr/debug/foo/*", "HEAD,GET,PUT,POST:*";
213+
permission "java.net.URLPermission" "https://localhost:*/solr/debug/foo/admin/ping", "GET:*";
214+
permission "java.net.URLPermission" "https://localhost:*/solr/redirect/foo/*", "HEAD,GET,PUT,POST:*";
215+
permission "java.net.URLPermission" "https://localhost:*/solr/slow/foo/*", "HEAD,GET,PUT,POST:*";
216+
permission "java.net.URLPermission" "https://localhost:*/solr/collection1/*", "HEAD,GET,PUT,POST:*";
217+
permission "java.net.URLPermission" "https://localhost:*/solr/collection1/admin/ping", "GET:*";
218+
219+
permission "java.net.URLPermission" "http://[::1]:*/solr/debug/foo/*", "HEAD,GET,PUT,POST:*";
220+
permission "java.net.URLPermission" "http://[::1]:*/solr/debug/foo/admin/ping", "GET:*";
221+
permission "java.net.URLPermission" "http://[::1]:*/solr/redirect/foo/*", "HEAD,GET,PUT,POST:*";
222+
permission "java.net.URLPermission" "http://[::1]:*/solr/slow/foo/*", "HEAD,GET,PUT,POST:*";
223+
permission "java.net.URLPermission" "http://[::1]:*/solr/collection1/*", "HEAD,GET,PUT,POST:*";
224+
permission "java.net.URLPermission" "http://[::1]:*/solr/collection1/admin/ping", "GET:*";
225+
permission "java.net.URLPermission" "socket://[::1]:*", "CONNECT:*";
226+
227+
permission "java.net.URLPermission" "https://[::1]:*/solr/debug/foo/*", "HEAD,GET,PUT,POST:*";
228+
permission "java.net.URLPermission" "https://[::1]:*/solr/debug/foo/admin/ping", "GET:*";
229+
permission "java.net.URLPermission" "https://[::1]:*/solr/redirect/foo/*", "HEAD,GET,PUT,POST:*";
230+
permission "java.net.URLPermission" "https://[::1]:*/solr/slow/foo/*", "HEAD,GET,PUT,POST:*";
231+
permission "java.net.URLPermission" "https://[::1]:*/solr/collection1/*", "HEAD,GET,PUT,POST:*";
232+
permission "java.net.URLPermission" "https://[::1]:*/solr/collection1/admin/ping", "GET:*";
187233
};
188234

189235
// additional permissions based on system properties set by /bin/solr

solr/CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ New Features
8888
---------------------
8989
* SOLR-17141: Implement 'cpuAllowed' query parameter to limit the maximum CPU usage by a running query. (Andrzej Bialecki, Gus Heck, David Smiley)
9090

91+
* SOLR-599: Add a new SolrJ client using the JDK’s built-in Http Client. (James Dyer)
92+
9193
Improvements
9294
---------------------
9395
* SOLR-17119: When registering or updating a ConfigurablePlugin through the `/cluster/plugin` API,

solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ Requests are sent in the form of {solr-javadocs}/solrj/org/apache/solr/client/so
9999
Communicates directly with a single Solr node.
100100
- {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/Http2SolrClient.html[`Http2SolrClient`] - async, non-blocking and general-purpose client that leverage HTTP/2.
101101
This class is experimental therefore its API's might change or be removed in minor versions of SolrJ.
102+
- {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/HttpJdkSolrClient.html[`HttpJdkSolrClient`] - General-purpose client using the JDK's built-in Http Client. Supports both Http/2 and Http/1.1. Targeted for those users wishing to minimize application dependencies.
102103
- {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrClient.html[`LBHttpSolrClient`] - balances request load across a list of Solr nodes.
103104
Adjusts the list of "in-service" nodes based on node health.
104105
- {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/LBHttp2SolrClient.html[`LBHttp2SolrClient`] - just like `LBHttpSolrClient` but using `Http2SolrClient` instead.

0 commit comments

Comments
 (0)