Am 13.05.2010 20:27, schrieb Andi Vajda:
Here is an idea that I think should work but I couldn't test it because bobo
is built from maven and pylucene isn't.
Basically, the idea is that you must be really careful in not having Lucene
classes come from two or more different places:
1. build pylucene the usual way
2. build bobo by giving it the lucene jar files that are inside pylucene's
lucene egg by setting the classpath accordingly:
$ CLASSPATH=`python -c 'import lucene; print lucene.CLASSPATH'`
3. build the bobo extension with jcc using the same classpath and by _not_
using --jar or --include with any of the lucene jar files already inside
pylucene's lucene egg, relying solely on the classpath for finding
lucene classes
4. Once all is built, you don't need to set any classpath in addition to
what the initVM() calls are already doing:
>>> import lucene; lucene.initVM()
>>> import bobo; bobo.initVM()
The bobo extension adds its classpath to what lucene's already setup
and finds the lucene classes there.
Again, I didn't test this because it's too much work to disentangle the bobo
build from maven so that I can control where things are coming from.
You understand the bobo build better and can probably try this quicker.
Thanks for the suggestion, Andi! I'll try your suggestion on Monday. I
hope it's sufficient to create a working version of lucene + bobo-browse
in order to provide my co-worker Julian a foundation for his work on
bobo-browse. But I fear that it's not going to work. I carefully
excluded any jar file from the bobobrowse egg that is already part of
pylucene (--classpath instead of --include or --jar). The lucene class
are probably wrapped because bobo-browse references the classes in its
jar file.
By the way I've created the Makefile for bobo-browse based on your
Makefile for pylucene. With your template and your good work it was
trivial to create the Python bindings. Thanks ;)
I've an idea how you can solve the inter-package issue. Is it possible
to create some kind of type interference for JCC types that point to the
same Java class (e.g. lucene.Query.class_ == bobobrowse.Query.class_)?
Christian