# Why isn't the RestHighLevelClient class included in Elasticsearch 7.3.0?

**URL:** <https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081>\
**Category:** Elasticsearch\
**Created:** [August 13, 2019, 6:42pm UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081 "2019-08-13T18:42:29Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mathwin](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mathwin](https://discuss.elastic.co/u/mathwin)\
**Post date:** [August 13, 2019, 6:42pm UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081/1 "2019-08-13T18:42:29Z")

</div>

Let me see if I understand the situation fully. The 7.0.0 release of Elastic has deprecated the old [TransportClient](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html) class, and the NodeClient class was deprecated all the way back in 2016. No alternative is present in any of the packaged .jar files.

The new preferred Client class is RestHighLevelClient, but it's not included in the .jar files packaged with the 7.3.0 download - three versions after it was introduced. The only place where you can actually get it is from [github](https://github.com/elastic/elasticsearch/tree/master/client/rest-high-level/src/main/java/org/elasticsearch/client), where it is provided as loose source along with hundreds of other files, all in different directories that all nest a dozen deep.

So someone who downloads the 7.3.0 release of Elastic and attempts to load the .jar files that are provided as an API will discover that there is literally no supported way to connect to the Elastic service. Did somebody compile the wrong build or something? Why would I need to rebuild the libraries myself with Maven to use this?

---

<div class="post-metadata">

**Author:** ![rjernst](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rjernst/32/6363_2.png) [@rjernst](https://discuss.elastic.co/u/rjernst)\
**Post date:** [August 13, 2019, 7:18pm UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081/2 "2019-08-13T19:18:25Z")

</div>

The download you are referring to of Elasticsearch is the server. The high level rest client is a separate artifact, for users to integrate into their own applications that connect to Elasticsearch, available in [maven central](https://search.maven.org/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client/7.3.0/jar). There are also [instructions](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-high-getting-started-maven.html) to configure using the client within your own application's build.

---

<div class="post-metadata">

**Author:** ![mathwin](https://avatars.discourse-cdn.com/v4/letter/m/c2a13f/32.png) [@mathwin](https://discuss.elastic.co/u/mathwin)\
**Post date:** [August 14, 2019, 11:41am UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081/3 "2019-08-14T11:41:48Z")

</div>

That doesn't explain why it isn't just packaged with the regular archive. What is the reasoning for releasing a software product that cannot be used out-of-the-box?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [August 14, 2019, 4:15pm UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081/4 "2019-08-14T16:15:16Z")

</div>

> That doesn't explain why it isn't just packaged with the regular archive.

Why would you package a server and a client? It's like saying that a JDBC connector to Postgresql for example should embed Postgresql as well.

> What is the reasoning for releasing a software product that cannot be used out-of-the-box?

There might be a confusion here. Elasticsearch is a server. Not a library that you package within your application like Lucene is.

---

<div class="post-metadata">

**Author:** ![rflores](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rflores/32/4609_2.png) [@rflores](https://discuss.elastic.co/u/rflores)\
**Post date:** [August 14, 2019, 5:10pm UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081/5 "2019-08-14T17:10:05Z")

</div>

In addition, it was possible to embed the server back in 2016, but it was announced that such was not recommended at all: [https://www.elastic.co/fr/blog/elasticsearch-the-server](https://www.elastic.co/fr/blog/elasticsearch-the-server)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 11, 2019, 5:12pm UTC](https://discuss.elastic.co/t/why-isnt-the-resthighlevelclient-class-included-in-elasticsearch-7-3-0/195081/6 "2019-09-11T17:12:52Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
