Setup instructions for Bookie.

If you're just browsing or don't need to edit files directly, you can look at Bookie through the web interface.

If you want to contribute to Bookie or compile it, then you should grab a CVS client and set up a workspace for bookie.

You download bookie by doing this (you only need to login once, the password is guest).

 cvs -d :pserver:guest@mozdev.org:/cvs login
 cvs -d :pserver:guest@mozdev.org:/cvs co bookie
Note: this only allows you read access: e-mail me if you want to add or modify files.

After doing this, you'll see files in the workspace. The Java server will compile, but I use a custom made tool which pretty much no-one else uses, so you may want to try putting it together with ANT.

The Java server talks to a database on the backend. I use Solid, but any JDBC compliant driver should work (I don't use any complicated SQL). You can edit the JDBC driver: it's defined in bookie.properties in the scripts directory.

The database DDL scripts are in the /sql/solid directory. They work fine for me... again, if you're using another database, you probably want to tweak these. Any additions are welcomed.

The database needs data in order to work. I wrote /scripts/import.pl which takes in my bookmarks.html file from Netscape and pumps it into the database. It actually relies on a couple of none standard modules which you may need to download from ActivePerl or CPAN.

After you've started the database, and compiled the Java, you probably want to add a couple of things to your classpath. In the /lib directory, I've added some JAR files which are needed by Bookie to work. After adding those files (and the JDBC driver, if it's not already included), you can start the server by using /scripts/server.bat.

There is a very simple client available which I have been using for debugging. You can run the client by using /scripts/client.bat. It's good enough to send text to the server and get a response back, which is all I really need from it. I'm divided as to how much time I should spend on, since working on the client would take time away from working on the Mozilla integration.

The mozilla integration is in a sorry state. The basic problem is that I don't understand Javascript, and I only have a hazy idea of the way that Mozilla organizes their network code. As a result, I've spent much time flailing around trying to get some very simple things trying to work. Again, any assistance is appreciated.

If these directions are unclear or confusing, please e-mail me at will_sargent@yahoo.com