Hi Rob

Robert Vesse wrote:
> In the context of the discussion of next releases maybe this is a good time 
> to revisit the topic of LARQ and its integration with Fuseki
> 
> As I understand it right now the way to deploy LARQ is to modify the Fuseki 
> POM to pull in the LARQ dependency so that one can built a modified Fuseki 
> uber jar with the LARQ and Lucene features enabled?  Paolo please correct me 
> if I am mistaken

Exactly. See also https://issues.apache.org/jira/browse/JENA-63 (which has an
up-to-date patch attached).

> In the interests of extensibility maybe it would be better to move to a model 
> that allow for easier drop in extension of Fuseki.  What I'm thinking is that 
> you have an empty lib directory in the Fuseki distribution and then rather 
> than having users call the JAR directly you have a simple script that invokes 
> the JAR and instantiates the class path to be lib/* thereby picking up any 
> drop in extensions users have

It's a possibility, but you lose the advantage and simplicity of everything in a
single JAR (and from what I can see, people (including me) like it... a lot!).

Also, you need to make sure you put under ../lib all the necessary jars.
For LARQ, for example, this includes Lucene as well as LARQ jar itself.
Easy/trivial (but some manage to get this wrong and/or they mix and match wrong
versions when they do things manually).

> It may even be sensible to move the Fuseki JAR into that lib directory and 
> just invoke java with a class path of lib/* and call out the main class 
> FusekiCmd explicitly and not use the –jar argument at all e.g.
> 
> #!/bin/bash
> 
> Java –cp lib/* org.apache.jena.fuseki.FusekiCmd $*
> 
> Forgive me if the above syntax is not exactly correct and you'd maybe want to 
> do some JAVA_HOME shenanigans in there but hopefully you get the general idea.
> 
> Is this a sensible suggestion?

I have no strong opinion about this.

Personally, I prefer to have a single jar and use java -jar ... (but, it's just
me and my preference). I can see the advantages of what you suggest. But, even
if we do it, I would probably still 'patch' things and build my own single jar.

> It seems like it would make it easier to drop in proposed future extensions 
> like GeoSPARQL without getting into users having to recompile the code 
> themselves.

I don't disagree on the principle.

I think allowing users to drop in extensions (plug-ins) to Fuseki is really an
useful feature.

Some use ServiceLoader (+/- a dependency injection framework), others write
their own plug-in framework, others use a third party plug-in framework. Some
use OSGi, etc. Jena has Assemblers, but I am not sure they can be stretched that
far.

I do not have enough experience with Assemblers to know if it is actually
possible to drop in a jar (which extends ARQ) in the classpath and have Fuseki
picking it up transparently. When I tried to do that with LARQ, I failed and I
needed to make small (and very ugly) changes in ARQ (which does not feel right).

To summarize, I am not against or over exited by what you suggest.
It makes sense, but I would probably not use it.
In Apache lingo, I would say: 0.

Paolo

> 
> Rob
> 

Reply via email to