[jsword-devel] jnlp/jsword.jar/Books does not have installed() method

Joe Walker jsword-devel@crosswire.org
Mon, 29 Mar 2004 22:38:56 +0100


Hi Norbert,

Sorry to to reply earlier. I've changed the Book register process so 
that the threading is optional, and defaults to single-threaded.
I've also made it a 'Job' so you see progress in the GUI.
This should stop the race conditions, I'll make sure it gets build to 
the jnlp dir tonight.

Joe.

DM Smith wrote:

> Norbert, I found a couple of things:
> 
> Books does have a static method called installed().
> 
> The name of the bible has to be the same as the Description in the 
> *.conf. In the case of GerSch, it would be:
> German Schlachter Bibel (1951)
> 
> There is a race condition in the code and I am not sure how to fix it 
> without doing some experimenting and some reading on synchronization. 
> The problem is that the RegisterRunnable.run() gets there late if I run 
> the program, but if I debug and step then it gets there early. If it is 
> late then getBookMetaData(BIBLE_NAME) gets there late.
> 
> As a hack until the race condition is fixed, you can add the following 
> to the beginning of the readPlainText method (This may cause a different 
> race condition, with a book exception elsewhere, but it worked for me).
> try
> {
>    BookDriver driver = new SwordBookDriver();
>    Books.registerDriver(driver);
> }
> catch (BookException e)
> {
>    System.err.println("Driver was already installed");
> }
> 
> I am assuming that you are also using (you can get these from the same 
> directory where you got jsword.jar):
> jsword-osis.jar
> resource.jar
> jaxb-api.jar
> jaxb-libs.jar
> jaxb-ri.jar
> jdom.jar
> log4j-1.2.7.jar
> tar.jar
> These are very static and you should only need to download them once.
> 
> You should not need:
> jsword-gui.jar (may be renamed to jsword-swing.jar)
> lucene-1.3-final.jar
> winlaf-0.4.jar
> 
> Norbert Plött wrote:
> 
>>
>> Hey Joe,
>>
>> so I today I got
>>
>>     http://www.crosswire.org/jsword/jnlp/jsword.jar
>>
>> assuming that this would  reflect the status of the nightly build, and 
>> the
>> status of the changes you described:
>>
>> > There are instructions on how to do this on the website. You example 
>> you
>> > cite has changed:
>> >
>> >     public void readPlainText() throws BookException, 
>> NoSuchVerseException
>> >     {
>> >         Passage ref = PassageFactory.createPassage("Mat 1 1");
>> >         Book bible =
>> > Books.installed().getBookMetaData(BIBLE_NAME).getBook();
>> >
>> >         BookData data = bible.getData(ref);
>> >         String text = data.getPlainText();
>> >
>> >         System.out.println("The plain text of Mat 1:1 is "+text);
>> >     }
>> >
>> > There are 2 main changes - firstly I changed Books to be a singleton
>> > (accessed using Books.installed) rather than the collection of static
>> > methods that it was previously.
>> > This enabled us to have collections of Books that were other than the
>> > installed ones (useful for the book installation system)
>> > Secondly I didn't like the way Defaults worked (or more accurately
>> > didn't work) so I added a method on the BookList interface to get a 
>> book
>> > by name.
>>
>> I pasted this into my example and got the following compiler errors:
>>
>> de/nops/BibleStat/Gui/BibleStatGui.java [146:1] cannot resolve symbol
>> symbol  : method installed ()
>> location: class org.crosswire.jsword.book.Books
>>             Book bible =
>> Books.installed().getBookMetaData("GerSch").getBook();
>>                               ^
>> de/nops/BibleStat/Gui/BibleStatGui.java [147:1]
>> getData(org.crosswire.jsword.book.Key) in org.crosswire.jsword.book.Book
>> cannot be applied to (org.crosswire.jsword.passage.Passage)
>>             BookData data = bible.getData(ref);
>>                                  ^
>> I looked into the jsword.jar and found, that Books actually does not 
>> have a
>> method installed().
>> Does this mean that I cannot the current jsword.jar directly but have 
>> to use
>> the webstart page DM Smith wrote about?
>>
>> > The WebStart page now downloads the nightly build. I am not sure 
>> that this
>> > will continue once the next release happens. The download will be 
>> about 5M
>> > initially. After that it will only get the changes (provided the 
>> nightly
>> > does not do a clean build, but an incremental). You will need to dig 
>> on your
>> > machine to find the jar files. For me they were installed at (on 
>> Windows
>> > XP):
>>
>> I am using SuSE Linux, KDE Desktop, so I'd have to figure myself where 
>> the
>> jars go?
>> Or what happened?
>>
>> Bye Norbert
>>
>> _______________________________________________
>> jsword-devel mailing list
>> jsword-devel@crosswire.org
>> http://www.crosswire.org/mailman/listinfo/jsword-devel
> 
> 
> _________________________________________________________________
> Get rid of annoying pop-up ads with the new MSN Toolbar – FREE! 
> http://toolbar.msn.com/go/onm00200414ave/direct/01/
> 
> _______________________________________________
> jsword-devel mailing list
> jsword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel