mikemccand / luceneserver

A high performance "thin wrapper" HTTP REST server on top of Apache Lucene
Apache License 2.0
137 stars 35 forks source link

Script does not compile luceneserver sources #3

Closed ghost closed 7 years ago

ghost commented 7 years ago

Calling build.py package successfully clone lucene6x branch. Then, the call to compileLuceneModules() also successfully compile 92 sources. After it returns there is a call to:

jarFileName = 'build/luceneserver-%s.jar' % jarVersion.

But there seems not to exist these luceneserver-VERSION.jar file at these moment.

Here is the traceback: Traceback (most recent call last): File "./build.py", line 701, in main() File "./build.py", line 511, in main jarFileName = compileSourcesAndDeps(jarVersion) File "./build.py", line 443, in compileSourcesAndDeps compileChangedSources('src/java', 'build/classes/java', l) File "./build.py", line 370, in compileChangedSources run(' '.join(cmd)) File "./build.py", line 310, in run raise RuntimeError('command "%s" failed' % s) RuntimeError: command "javac -Xmaxerrs 10000 -d build/classes/java -cp lib/jackson-core-2.8.2.jar:lib/commons-codec-1

Using Lubuntu 17-04.

ghost commented 7 years ago

Issue solved... (at least temporarily)

The main problem was that build.py clone a 6.7.0-SNAPSHOT branch.

If you change the code in the script to reflect this change, say LUCENE_VERSION = '6.7.0-SNAPSHOT', the build fail again asking for two classes:

org.apache.lucene.search.join.ToParentBlockJoinIndexSearcher, and org.apache.lucene.search.join.ToParentBlockJoinCollector

which were removed in Lucene 6.5.0

You can clone a 6.4.x branch thinking that this may solve the issue, but the build fail again asking FieldDefBindings to override abstract method getDoubleValuesSource(String) in Bindings, which is declared in version 6.7.0-SNAPSHOT.

But FieldDefBindings override ValueSource getValueSource(String), which was removed in 6.4.0:

Next, let's try and clone branch_6_3 thinking again that this can solve the issue, but build fails again with one error: writer is not public in PrimaryNode; cannot be accessed from outside package, which was made protected:

Then I edit IndexWriter in PrimaryMode (not a good choice, but meanwhile a study the code to make a patch) to made it public and the server compiles and run successfully.

build lucene core JAR... build lucene analyzers-common JAR... build lucene analyzers-icu JAR... build lucene facet JAR... build lucene codecs JAR... build lucene grouping JAR... build lucene highlighter JAR... build lucene misc JAR... build lucene suggest JAR... build lucene replicator JAR... compile 85 sources build build/luceneserver-0.1.1-SNAPSHOT.jar fatal: Not a git repository (or any of the parent directories): .git fatal: Not a git repository (or any of the parent directories): .git Wrote build/luceneserver-0.1.1-SNAPSHOT.zip (20.5 MB)

Thanks Mike!