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

Konstantin Gribov commented on TIKA-1511:
-----------------------------------------

Usual way is to exclude maven dependency and add check some {{xerial}} class 
presence before using it in appropriate Tika parser (i. e. call 
{{Class.forName("org.sqlite.JDBC")}} and catch {{ClassNotFoundException}}). I 
don't know how consistently {{tika-parsers}} uses this approach.

Native libs are usually stored in same jar (build for all supported platforms), 
so excluding {{sqlite-jdbc.jar}} prevents loading sqlite native library from it.

E.g. if I don't need, say, netcdf parsers when invoking tika I can add such 
snippet to my {{pom.xml}}:

{code:xml}
<dependency>
  <groupId>org.apache.tika</groupId>
  <artifactId>tika-parsers</artifactId>
  <version>1.6</version>
  <exclusions>
    <exclusion>
      <groupId>edu.ucar</groupId>
      <artifactId>netcdf</artifactId>
    </exclusion>
  </exclusions>
</dependency>
{code}

So, tika library user don't need to rebuild tika-parsers, store it somewhere 
and can use prebuild tika release from maven central.

Same pattern can be used with other libs, splitting them into two buckets:
- with Apache-compatible license, which can be included in {{tika-parsers.jar}} 
artifact,
- with license which prevents packaging it with Tika and documentation info 
about such parsers/detectors availability if user add them to classpath.

Such approach is generic and not related to libs with jni. E.g. it allows 
someone to use proprietary or copyleft (GNU GPL/LGPL) library if it's allowed 
from legal side. I'm not a lawyer, so I don't know will compile-time dependency 
on some library with Apache-incompatible license infringe someones copyright or 
not.

Disclaimer: I'm not a lawyer. My thoughts above aren't legal advice. I think, 
legal advice from ASF should be formally received before including ever 
optional dependencies on some Apache License incompatible thrid-party libs.

> Create a parser for SQLite3
> ---------------------------
>
>                 Key: TIKA-1511
>                 URL: https://issues.apache.org/jira/browse/TIKA-1511
>             Project: Tika
>          Issue Type: New Feature
>          Components: parser
>    Affects Versions: 1.6
>            Reporter: Luis Filipe Nassif
>             Fix For: 1.8
>
>
> I think it would be very useful, as sqlite is used as data storage by a wide 
> range of applications. Opening the ticket to track it. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to