[jsword-devel] Update on JSword
DM Smith
dmsmith at crosswire.org
Mon Oct 5 05:22:33 MST 2009
I'm working on JSword again after a long time of not being able to.
A couple of notes:
I've upgraded all the QA tools (e.g. findbugs, checkstyle) and in the
process broke the nightly build. I'll fix that shortly.
I am applying patches, fixing bugs, upgrading 3-rd party components
and satisfying requests that others have made. I checked in a change
for Tonny the other night. (Tonny hopefully you grabbed that. If not
you might need to build the jars yourself.)
If you develop on a Mac in Eclipse and have upgraded to Snow Leopard,
you'll need to go into Preferences -> Java and delete all the JREs and
re-add them. Without doing that, it will not let you run the program w/
in Eclipse.
Lucene has just released version 2.9. This is in preparation for the
3.0 release, with the only real difference between the two is that
deprecations are being removed. The second minor difference is that
3.0 will require Java 5 as it is introducing Generics into the API
(supposedly in a backward compatible, drop-in the new jar, kind of
way. We'll see.) I'm working on upgrading to it. Lots has changed
internally. The impact to JSword is that our lucene search indexes
will need to be rebuilt, requiring us to finish their versioning and
handling a version difference in the front-ends.
Speaking of Snow Leopard for Mac OSX. Our policy has been to support
old OSes for a long time, but not forever. I.E. the current and two
prior. Soon we'll be dropping support for Panther, which came out 6
years ago this month. (A year and a half ago Panther was on 23% of all
Macs.) This will happen when we go to Lucene 3.0 and Java 5. (Note:
Tiger does not install Java 5 but it is available for install. We'll
need to provide notes.) I'd still like to release ELEPHANT (see other
threads or JIRA for a description) as the last Java 1.4 application.
With the new version of Lucene, I am a new method to PassageTally
called getTotal and SearchModifier with (set/get)MaxResults. This
optimization will give us a place to hang the total number of hits in
a search request when the user only wants to see the top 20 or so. The
current code would prioritize all the verses coming back from a search
and then sort them. These results were then pruned to the top N
verses. Lucene has now simplified how this can happen with its new
Collector method. There is a Collector that only retains the hits that
have a higher score than the N-th one with the lowest score, but
counts all of them. PassageTally is at its best when it is small. So
now only the top N are put into the PassageTally and the total hits
are recorded.
Lucene has also introduced new Arabic and Persian analyzers. These
will make searches on those much nicer. I'll need some testing
volunteers for that when I've got it all checked in.
In His Service,
DM Smith
More information about the jsword-devel
mailing list