Hey Ludo,
Before over-rotating on the Lucene support, please keep the following in
mind:
* The Derby Lucene support is an optional feature. Derby runs fine
without Lucene jars on the classpath. The optional tools can be excluded
from your installation. In fact, you have to go out of your way to
include them.
* If you do want to use the Derby Lucene support, then use the Lucene
jars which are bundled in the Derby source distro. They are the ones
that have been tested. They can be found at the following location in
the source tree:
tools/java/lucene-analyzers-common.jar
tools/java/lucene-core.jar
tools/java/lucene-queryparser.jar
* More information on the Derby optional Lucene support can be found at
http://db.apache.org/derby/docs/10.15/tools/rtoolsoptlucene.html
* The Lucene 8 jars will almost certainly not work with Derby. Lucene
does not make the same backward compatibility guarantees as Derby does.
If your mission is to upgrade Derby to be able to use Lucene 8, then you
are signing up for the task of altering the Derby code as well. At this
point, you are not talking about an rpm package for Derby. You are
talking about an rpm package for your own forked version of Derby. If
you want to contribute these changes to the community, that would be
great, and I will be happy to coach you through the process. But we are
talking about a new Derby release here. I don't think that upgrading
Derby to support Lucene 8 is your ultimate goal. Please correct me if I
misunderstand your goal.
The same is true for javacc. Note that javacc is not used by the Derby
product. It is only used to compile Derby. There are issues involved in
upgrading javacc to a higher version. The higher versions produce parser
diagnostics which are harder to read. That is why we have not upgraded
to javacc 5.0.
When we went through the rpm exercise the last time, there were two
requirements:
* The rpm must install all the code needed to compile the package. This
should still be true. The Lucene jars and the javacc needed to compile
Derby are bundled in the Derby source distro. The build scripts
deliberately use the bundled Lucene jars and the bundled javacc. They do
not use the versions of Lucene or javacc installed elsewhere on the
platform.
* The executable code in the rpm must run on the Linux platform. This
also should still be true, provided that the Derby version is 10.15 and
the OS uses Java 9 or higher. If the operating system is at Java 8, then
you want Derby 10.14 instead.
The problems you are wrestling with sound more complicated than that.
Before forging ahead, I recommend that you verify that your goal really
includes all of this complexity.
Hope this helps,
-Rick
On 8/23/20 12:01 AM, Ludovic Hirlimann wrote:
On 8/22/20 12:55 AM, Rick Hillegas wrote:
Hi Ludo,
Derby bundles libraries for Lucene 4.7 and javacc 4.0.
So Lucene 8 ships within Fedora, So I probably have to patch what ships
with derby to work properly with 8.
And do the same thing with javacc.
Ta
Ludo