You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Shawn Heisey (JIRA)" <ji...@apache.org> on 2018/09/18 21:59:00 UTC

[jira] [Commented] (SOLR-599) Lightweight SolrJ client

    [ https://issues.apache.org/jira/browse/SOLR-599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16619784#comment-16619784 ] 

Shawn Heisey commented on SOLR-599:
-----------------------------------

SolrJ hasn't used commons-httpclient in a LONG time.  Both commons-httpclient and httpcomponents were included in 3.6, but commons-httpclient was removed in 4.0.

This is the full list of dependencies when solrj 7.4.0 is specified with a dependency manager:

{noformat}
commons-io-2.5.jar
commons-math3-3.6.1.jar
httpclient-4.5.3.jar
httpcore-4.4.6.jar
httpmime-4.5.3.jar
zookeeper-3.4.11.jar
stax2-api-3.1.4.jar
woodstox-core-asl-4.4.1.jar
noggit-0.8.jar
jcl-over-slf4j-1.7.24.jar
slf4j-api-1.7.24.jar
{noformat}

There are XML and JSON libraries because SolrJ supports XML and JSON transfer formats.  If 7.x/8.x client objects are created with defaults and only the more mainstream methods are used, the XML and JSON dependencies could probably be removed, since SolrJ defaults to javabin transfer on both request and response.  If CloudSolrClient is not being used, then the zookeeper jar will not need to be included.

The decision to use the Apache httpclient was made a long time ago.  Now we are proceeding with a switch to the Jetty httpclient to get HTTP/2 support, which will greatly alter the dependency landscape.

I'll leave the decision to others about whether we need a client based on Java's built-in http; my guess is that such a client is NOT needed.  The work related to HTTP/2 is being spearheaded by [~caomanhdat] and [~markrmiller@gmail.com].


> Lightweight SolrJ client
> ------------------------
>
>                 Key: SOLR-599
>                 URL: https://issues.apache.org/jira/browse/SOLR-599
>             Project: Solr
>          Issue Type: Improvement
>          Components: clients - java, SolrJ
>            Reporter: Shalin Shekhar Mangar
>            Assignee: Noble Paul
>            Priority: Minor
>             Fix For: 4.9, 6.0
>
>         Attachments: SOLR-599-fix-for-SolrJ-on-GAE.patch, SOLR-599.patch, SOLR-599.patch
>
>
> SolrJ provides a SolrServer implementation backed by commons-httpclient which introduces many dependency jars (commons-codec, commons-io and commons-logging). Apart from that SolrJ also uses StAX API for XML parsing which introduces dependencies like stax-api, stax and stax-utils.
> This enhancement will add a SolrServer implementation backed by java.net.HttpUrlConnection and will use BinaryResponseParser as the default response parser. Using this basic implementation out of the box would require no dependencies on either commons-httpclient or StAX. The only dependency would be on solr-commons making this a very lightweight and distribution friendly Java client for Solr.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org