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

Uwe Schindler commented on SOLR-5950:
-------------------------------------

Hi Steve,
I applied the patch to 4.7 and fixed the diamonds. After that I ran it and 
checked the POM output. It looks fine to me, solrj has the required dependency.

But I think the whole magic is not needed at all. Because solrj is required by 
almost all projects (contrib, solr-core,..) the declaration of "optional" there 
is not really needed? I think only the WAR file should have it optional, all 
others get it required, because they depend on solrj (so when you compile or 
use solr-core, it should also fetch solrj, if I understand it correctly?

Please correct me if this is not true.

In my opinion, all of solr should depend on slf4j-api (because its used as a 
hard dependency, it is not optional!). Only the WAR file should exclude it by 
making it optional.

> In SolrJ's Maven Dependency Graph, slf4j-api is optional, which breaks plain 
> solrj users
> ----------------------------------------------------------------------------------------
>
>                 Key: SOLR-5950
>                 URL: https://issues.apache.org/jira/browse/SOLR-5950
>             Project: Solr
>          Issue Type: Bug
>          Components: clients - java
>    Affects Versions: 4.7, 4.7.1
>            Reporter: Uwe Schindler
>            Assignee: Steve Rowe
>         Attachments: SOLR-5950.patch
>
>
> To run as a Solr Client, you need slf4j actually configured in your 
> classpath, because HttpSolrServer hardly depends on it, also the used libs 
> like Commons Httpclient (and others)
> In SOLR-3706 *all* of the slf4j JARs were made optional, but because we did 
> not exclude the dependencies of httpclient and others explicitely, the 
> dependency was still included by maven automatically for a user that used 
> SolrJ - so effectively the "optional" was never working.
> In 4.7, [~steve_rowe] now explicitely excluded all dependencies of all deps 
> included via IVY. By that the implicit dependency by httpclient was killed.
> When I updated a project from SolrJ 4.6 to SolrJ 4.7, it suddenly failed to 
> run, because it failed with a classnotfound ex directly after starting. Not 
> even the default logging to console was enabled (which is provided by slf4j). 
> This is bad for users of SolrJ, because they have to explicitely add a 
> dependency for something that really required to use SolrJ.
> The reason for excluding slf4j-api was that we don't want to have it in the 
> WAR file, so it was made optional. But that is wrong:
> - In trunk we no longer have a WAR file
> - The primary user of SolrJ via Maven is not somebody who wants to install 
> Solr in his appserver, its the user needing the client.
> So we should restore the state from Solr 4.6, where the dep was implicitely 
> included, by making it non-optional in Maven.
> When building the WAR file in 4.x we should exclude it somehow via Maven 
> Magic(tm).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to