<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">My RCP application takes up 14 MB. My plugins and the JSword plugin
take up ~800KB. JSword dependencies take up ~1MB. The rest is made up of RCP core
plugins or RCP ancillary plugins on which my plugins depend. <br>
<br>
RCP doesn't trim down very well (save the 3MB that Gabriel mentioned), but I think that's a fair price for the flexibility and functionality that it provides. <br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Zhaojun Li &lt;lzj369@gmail.com&gt;<br>To: J-Sword Developers Mailing List &lt;jsword-devel@crosswire.org&gt;<br>Sent: Saturday, December 9, 2006 2:10:39 PM<br>Subject: Re: [jsword-devel] feather request: book downloading and index generating api<br><br>Peter, <br><br>&nbsp;I would say the final size would be 12 mb. Of course it may be able to be compressed a little bit.<br><br>I would suggest that No change for DB itself except that we provide a new plugin project for people who ever want to do RCP work. It will be like a jar file.&nbsp; This project is a nice to have one. 
<br>I appreciate &nbsp; DM's offering for a place to collaborate .&nbsp; Like Apache, we can make it an incubator project.&nbsp; <br><br><br><br><br><div><span class="gmail_quote">On 12/9/06, <b class="gmail_sendername">Peter von Kaehne
</b> &lt;<a rel="nofollow" target="_blank" href="mailto:refdoc@gmx.net">refdoc@gmx.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I can honestly say the discussion you juts had on this thread is way above my head.
<br><br>That said, may I please urge caution - a 9mb download requires a broadband connection, a lot of people though do not have these yet - particularly a lot of those Crosswire is aimed at.<br><br>Unless - and I do not understand this - there is a serious gain in functionality, is this a good way to go?
<br><br>Peter<br><br>-------- Original-Nachricht --------<br>Datum:&nbsp;&nbsp;Sat, 9 Dec 2006 12:32:21 -0500<br>Von: "Zhaojun Li" &lt;<a rel="nofollow" target="_blank" href="mailto:lzj369@gmail.com">lzj369@gmail.com</a>&gt;<br>An: "J-Sword Developers Mailing List" &lt;
<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a>&gt;<br>Betreff:&nbsp;&nbsp;Re: [jsword-devel] feather request: book downloading and index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;generating api<br><br>&gt; For RCP, it will be a set of plugins,.For a library purpose for third
<br>&gt; party<br>&gt; to use, it should be a plugin project with jsword and common jar and<br>&gt; expose<br>&gt; all the packages to downstream plugin jars that use it.<br>&gt;<br>&gt; We need to discuss it before nail it down.
<br>&gt;<br>&gt; On 12/9/06, P. R. B. &lt;<a rel="nofollow" target="_blank" href="mailto:dysbiote@yahoo.com">dysbiote@yahoo.com</a>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt; Do you mean in an Eclipse sense, like New -&gt; Project... -&gt; Java Project,<br>&gt; &gt; or conceptually? Eclipse-wise, the way that's worked best for me is to
<br>&gt; have<br>&gt; &gt; several Java plug-in projects that compose the RCP application, similar<br>&gt; to<br>&gt; &gt; how BibleDesktop is composed of projects bibledesktop, commons-swing,<br>&gt; &gt; commons, etc. I'm not sure if that helps answer your question or not.
<br>&gt; &gt;<br>&gt; &gt; ----- Original Message ----<br>&gt; &gt; From: DM Smith &lt;<a rel="nofollow" target="_blank" href="mailto:dmsmith555@yahoo.com">dmsmith555@yahoo.com</a>&gt;<br>&gt; &gt; To: J-Sword Developers Mailing List &lt;<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">
jsword-devel@crosswire.org</a>&gt;<br>&gt; &gt; Sent: Saturday, December 9, 2006 8:47:23 AM<br>&gt; &gt; Subject: Re: [jsword-devel] feather request: book downloading and index<br>&gt; &gt; generating api<br>&gt; &gt;<br>
&gt; &gt; One question, should it be a "java project" or a "java plugin project" ?<br>&gt; &gt; On Dec 9, 2006, at 8:41 AM, DM Smith wrote:<br>&gt; &gt;<br>&gt; &gt; I'll see about setting up a jsword-rcp Eclipse project and get the
<br>&gt; &gt; permissions wide open. We can use this to collaborate.<br>&gt; &gt; On Dec 9, 2006, at 1:44 AM, Zhaojun Li wrote:<br>&gt; &gt;<br>&gt; &gt; My last post before I fall asleep :)<br>&gt; &gt;<br>&gt; &gt; Let us do not worry code efficency or naming standard and such and such.
<br>&gt; &gt; At least we have a start point. We can always refactor and tune the apis<br>&gt; &gt; later.<br>&gt; &gt;<br>&gt; &gt; Right now, the most import thing is to get started.<br>&gt; &gt;<br>&gt; &gt; God Bless!
<br>&gt; &gt;<br>&gt; &gt; On 12/9/06, P. R. B. &lt;<a rel="nofollow" target="_blank" href="mailto:dysbiote@yahoo.com">dysbiote@yahoo.com</a>&gt; wrote:<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Hi Zhaojun,<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; I'll work on making the jsword plugin available this weekend. In
<br>&gt; &gt; &gt; general, I had two purposes when writing the plugin: to use RCP<br>&gt; classes in<br>&gt; &gt; &gt; place of JSword classes whenever I felt it was appropriate (e.g.<br>&gt; &gt; &gt; preferring IProgressMonitor over JSword Job and RCP extension points
<br>&gt; over<br>&gt; &gt; &gt; properties files), and expose only the essential packages to the<br>&gt; clients.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Don't worry about me being burned out. =) Most of that had to do with<br>
&gt; &gt; &gt; trying to write the thing myself in a short period of time through<br>&gt; long<br>&gt; &gt; &gt; nights, and making the project self-serving / ego-driven rather than<br>&gt; &gt; &gt; God-serving. That's my confession. I think there's a lot we can do
<br>&gt; with it<br>&gt; &gt; &gt; together if we're patient.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; As to your previous e-mail: Having multiple GUIs may be a good idea.<br>&gt; One<br>&gt; &gt; &gt; of the strengths of BibleDesktop is its smaller footprint and
<br>&gt; compatibility.<br>&gt; &gt; &gt; The desktop application I wrote is focused on functionality /<br>&gt; usability (<br>&gt; &gt; &gt; e.g. listing the commentaries and dictionaries that reference a<br>&gt; &gt; &gt; highlighted verse) at the cost of depending on the RCP framework and
<br>&gt; being<br>&gt; &gt; &gt; fairly CPU intensive for some operations. There'd be less concern<br>&gt; about<br>&gt; &gt; &gt; applications having overlapping functionality or overlapping target<br>&gt; audience<br>&gt; &gt; &gt; if we keep the GUIs in separate niches, yet we'd still be pushing to
<br>&gt; keep<br>&gt; &gt; &gt; the core flexible and simple.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Be sure to keep all of this in your prayers. If we keep God at the<br>&gt; &gt; &gt; center of this, I believe He'll lead us to something good.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Good night, all.<br>&gt; &gt; &gt; -Phillip<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; ----- Original Message ----<br>&gt; &gt; &gt; From: Zhaojun Li &lt; <a rel="nofollow" target="_blank" href="mailto:lzj369@gmail.com">
lzj369@gmail.com</a>&gt;<br>&gt; &gt; &gt; To: J-Sword Developers Mailing List &lt;<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a>&gt;<br>&gt; &gt; &gt; Sent: Friday, December 8, 2006 11:51:59 PM
<br>&gt; &gt; &gt; Subject: Re: [jsword-devel] feather request: book downloading and<br>&gt; index<br>&gt; &gt; &gt; generating api<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Philip,<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; I don't konw OSGi good enough either. However, guys in the street tell
<br>&gt; &gt; &gt; me it is cool.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; I think a standard ant build to create a plugin jar is good enough for<br>&gt; &gt; &gt; now. With your effort, I think we are in a good position now.&nbsp;&nbsp;Since
<br>&gt; you are<br>&gt; &gt; &gt; burned out, :) , I can take over your GUI and maintain mine too. After<br>&gt; all,<br>&gt; &gt; &gt; it is not very hard for this part.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Since you did the migration already, Could you share your changes? I
<br>&gt; &gt; &gt; mean overview, why and how.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; On 12/9/06, P. R. B. &lt; <a rel="nofollow" target="_blank" href="mailto:dysbiote@yahoo.com">dysbiote@yahoo.com</a>&gt; wrote:<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Another thing to consider is to put the JSword and Common code into
<br>&gt; a<br>&gt; &gt; &gt; &gt; basic OSGi bundle / RCP plugin jar and have BibleDesktop run an OSGi<br>&gt; &gt; &gt; &gt; framework implementation (something like Apache Felix). The<br>&gt; Crosswire jars<br>&gt; &gt; &gt; &gt; would stay independent of RCP, yet RCP developers could treat the
<br>&gt; jars as<br>&gt; &gt; &gt; &gt; standard plugins. Some abstraction classes would still need to be<br>&gt; made to<br>&gt; &gt; &gt; &gt; the JSword/Common code for RCP'rs, to reduce the conflicts that<br>&gt; Zhaojun and
<br>&gt; &gt; &gt; &gt; I ran into.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; I don't know enough about OSGi to say what other pros and cons there<br>&gt; &gt; &gt; &gt; are.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; As for making BibleDesktop a standard GUI RCP: Yes, you'd be
<br>&gt; dependent<br>&gt; &gt; &gt; &gt; on SWT.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Any other thoughts? It seems like we've got some good ideas floating<br>&gt; &gt; &gt; &gt; around.<br>&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; ----- Original Message ----<br>&gt; &gt; &gt; &gt; From: David &lt; <a rel="nofollow" target="_blank" href="mailto:lzj369@gmail.com">lzj369@gmail.com</a>&gt;<br>&gt; &gt; &gt; &gt; To: J-Sword Developers Mailing List &lt;<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">
jsword-devel@crosswire.org</a> &gt;<br>&gt; &gt; &gt; &gt; Sent: Friday, December 8, 2006 10:50:14 PM<br>&gt; &gt; &gt; &gt; Subject: Re: [jsword-devel] feather request: book downloading and<br>&gt; &gt; &gt; &gt; index generating api
<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; The main advantage for RCP that it hides the low level details from<br>&gt; &gt; &gt; &gt; business logic. A big plus is cross platform is piece of cake. We<br>&gt; can click
<br>&gt; &gt; &gt; &gt; several times to make it run on almost every platform like linux,<br>&gt; &gt; &gt; &gt; windows,mac ,ppc, you name it. It is native code call from java<br>&gt; layer, thus<br>&gt; &gt; &gt; &gt; very fast.
<br>&gt; &gt; &gt; &gt; The biggest challenge is the size.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp;The default size is like 9mb.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Another advantage is update: RCP has built-in update site support.
<br>&gt; It<br>&gt; &gt; &gt; &gt; even supports anatomical update! even scheduled update!<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Plus, it is de facto standard for JAVA IDE now. and IBM is behind<br>&gt; it.<br>&gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; as far as BD gui, it is hard to tell because it depends. My<br>&gt; experince<br>&gt; &gt; &gt; &gt; tells me that it is very easy to mimic the current gui with two<br>&gt; views.<br>&gt; &gt; &gt; &gt; Installation view can be done , I have it done already, it can be
<br>&gt; shared.<br>&gt; &gt; &gt; &gt; The other part is main gui: it should be a Form base with a broswer<br>&gt; GUI or<br>&gt; &gt; &gt; &gt; two.<br>&gt; &gt; &gt; &gt; The preference can be done by using RCP built-in preference api. It
<br>&gt; is<br>&gt; &gt; &gt; &gt; very simple. I can share my code by providing a simple tutorial.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; BTW, all code are open sourced.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; I have different opinion about the classloader. Yes, jsword's class
<br>&gt; &gt; &gt; &gt; loader creates an issue for RCP. However, I do not think removing it<br>&gt; is a<br>&gt; &gt; &gt; &gt; good idea. We can add addition classes or addition methods to jword<br>&gt; (Jsword,<br>&gt; &gt; &gt; &gt; and common) to solve this issue. Maybe is is time to create an
<br>&gt; standard<br>&gt; &gt; &gt; &gt; eclipse plugin. I can offer help on this one.<br>&gt; &gt; &gt; &gt; Next week I will release all the code to a place so everyone can<br>&gt; share<br>&gt; &gt; &gt; &gt; and modify.&nbsp;&nbsp;The GUI like a clone of WEBSOWRD on 
<a rel="nofollow" target="_blank" href="http://crosswire.com">crosswire.com</a><br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; In Christ,<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Zhaojun<br>&gt; &gt; &gt; &gt; On 12/8/06, DM Smith &lt;<a rel="nofollow" target="_blank" href="mailto:dmsmith555@yahoo.com">
dmsmith555@yahoo.com</a>&gt; wrote:<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Zhaojun and Phillip,<br>&gt; &gt; &gt; &gt; &gt; I think there is enough interest that it would be good to meld all<br>&gt; &gt; &gt; &gt; &gt; this into one effort.
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Phillip, I'm sorry you have burned out. Perhaps if we had<br>&gt; &gt; &gt; &gt; &gt; collaborated we could have shared the load.<br>&gt; &gt; &gt; &gt; &gt; Please help me understand the advantages and disadvantages of
<br>&gt; going<br>&gt; &gt; &gt; &gt; &gt; to RCP for JSword and Common. And what impact it would have on the<br>&gt; &gt; &gt; &gt; &gt; BibleDesktop GUI. How portable is RCP? Will it run on all<br>&gt; platforms that<br>
&gt; &gt; &gt; &gt; &gt; Java runs? Or is it limited like SWT?<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; I've done a bunch of reading, but have been focusing on adding<br>&gt; &gt; &gt; &gt; &gt; behavior to what we have. So I have not really experimented too
<br>&gt; much.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; In Him<br>&gt; &gt; &gt; &gt; &gt; DM<br>&gt; &gt; &gt; &gt; &gt; On Dec 8, 2006, at 9:17 PM, P. R. B. wrote:<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Hi gang,
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; I ran into the same problem with RCP. I ultimately turned the core<br>&gt; &gt; &gt; &gt; &gt; JSword libraries (common and jsword -- the parts I was after) into<br>
&gt; an RCP<br>&gt; &gt; &gt; &gt; &gt; plug-in that could accommodate the RCP Job class and use plug-ins<br>&gt; to extend<br>&gt; &gt; &gt; &gt; &gt; the installer, filter, and driver (RCP needs to manage class<br>&gt; loaders itself,
<br>&gt; &gt; &gt; &gt; &gt; so the class utilities and property files were removed). The key<br>&gt; to changing<br>&gt; &gt; &gt; &gt; &gt; the job code, for me, was to replace JSword-Job calls&nbsp;&nbsp;with<br>&gt; IProgressMonitor
<br>&gt; &gt; &gt; &gt; &gt; calls, and making all calls run in the caller's thread. The<br>&gt; IProgressMonitor<br>&gt; &gt; &gt; &gt; &gt; interface serves essentially the same purpose and the JSword Job<br>&gt; class, so
<br>&gt; &gt; &gt; &gt; &gt; the change was fairly straight-forward.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; I have an example of the changes that I made at the bottom of this<br>&gt; &gt; &gt; &gt; &gt; e-mail.
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Off-topic: I hit project burn-out with this endeavor a few weeks<br>&gt; &gt; &gt; &gt; &gt; back and the fate of the code is undecided (I take project<br>&gt; burn-out pretty
<br>&gt; &gt; &gt; &gt; &gt; hard). The JSword plug-in is functional and the RCP application is<br>&gt; 100%<br>&gt; &gt; &gt; &gt; &gt; working. If anyone wants to play with it or is interested in<br>&gt; helping me<br>&gt; &gt; &gt; &gt; &gt; resurrect the thing back to life, please let me know.
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Thanks,<br>&gt; &gt; &gt; &gt; &gt; -Phillip<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; --<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Example changes to convert JSword Job code to use IProgressMonitor
<br>&gt; &gt; &gt; &gt; &gt; (for non-RCP'rs, IProgressMonitor and IStatus are part of the<br>&gt; Eclipse/RCP<br>&gt; &gt; &gt; &gt; &gt; core API):<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Installer interface:
<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; IStatus install(IProgressMonitor monitor, Book book);<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; HttpSwordInstaller class:<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; public IStatus install(IProgressMonitor monitor, Book book){
<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Is the book already installed? Then nothing to do.<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Books.installed().getBook(book.getName()) != null)<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&gt; &gt; &gt; &gt; &gt;<br>&gt; monitor.beginTask(Msg.INSTALLING.toString(book.getName()),<br>&gt; &gt; &gt; &gt; &gt; 1);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; monitor.worked(1);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
monitor.done();<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Status.OK_STATUS;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final SwordBookMetaData sbmd = (SwordBookMetaData)
<br>&gt; &gt; &gt; &gt; &gt; book.getBookMetaData();<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the task has as many steps to perform as there are
<br>&gt; &gt; &gt; &gt; &gt; parts to the download<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; monitor.beginTask(Msg.INSTALLING.toString(book.getName()),<br>&gt; &gt; &gt; &gt; &gt; (getSize(book) / 4096) + 1);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
monitor.subTask(Msg.JOB_INIT.toString());<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL temp = NetUtil.getTemporaryURL("swd", ZIP_SUFFIX);<br>&gt; &gt; &gt; &gt; &gt; //$NON-NLS-1$<br>&gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // download the book. Each chunk downloaded<br>&gt; contributes<br>&gt; &gt; &gt; &gt; &gt; to the monitor's work.<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; download(monitor, directory + '/' + PACKAGE_DIR,
<br>&gt; &gt; &gt; &gt; &gt; sbmd.getInitials() + ZIP_SUFFIX, temp);<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Once the unzipping is started, we need to continue<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File dldir = 
SwordBookPath.getDownloadDir();<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!monitor.isCanceled())<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; monitor.subTask (Msg.JOB_CONFIG.toString
());<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IOUtil.unpackZip(NetUtil.getAsFile(temp), dldir);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SwordBookDriver.registerNewBook(sbmd, dldir);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex)<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reporter.informUser
(this, ex);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Status(IStatus.ERROR,<br>&gt; &gt; &gt; &gt; &gt; JswordActivator.PLUGIN_ID, 0, Msg.UNKNOWN_ERROR.toString(), ex);<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally
<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; monitor.done();<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Status.OK_STATUS;
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; ----- Original Message ----<br>&gt; &gt; &gt; &gt; &gt; From: David &lt; <a rel="nofollow" target="_blank" href="mailto:lzj369@gmail.com">lzj369@gmail.com</a>&gt;<br>&gt; &gt; &gt; &gt; &gt; To: J-Sword Developers Mailing List &lt; 
<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a>&gt;<br>&gt; &gt; &gt; &gt; &gt; Sent: Friday, December 8, 2006 10:26:01 AM<br>&gt; &gt; &gt; &gt; &gt; Subject: Re: [jsword-devel] feather request: book downloading and
<br>&gt; &gt; &gt; &gt; &gt; index generating api<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Hi, DM,<br>&gt; &gt; &gt; &gt; &gt; If you just want to migrate to SWT, I personally think it does not<br>&gt; &gt; &gt; &gt; &gt; worth it. SWT just another set of API, like SWING.&nbsp;&nbsp;However, if
<br>&gt; you want to<br>&gt; &gt; &gt; &gt; &gt; migrate to NETBEAN RCP or Eclipse RCP, I will applause your<br>&gt; effort. (The<br>&gt; &gt; &gt; &gt; &gt; application size will be increased by 6-9MB).&nbsp;&nbsp;For Eclipse RCP,
<br>&gt; the work is<br>&gt; &gt; &gt; &gt; &gt; just create veiws and call jword api.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; The work I am doing is based on Eclipse RCP. Jsword is a base part<br>&gt; &gt; &gt; &gt; &gt; of it. The plan is to build a p2p system that can enable blog ,
<br>&gt; forum<br>&gt; &gt; &gt; &gt; &gt; sharing, of course file sharing(&nbsp;&nbsp;JXTA.)&nbsp;&nbsp;next year.&nbsp;&nbsp;It will be a<br>&gt; set of<br>&gt; &gt; &gt; &gt; &gt; plugins.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Right now, I am rewriting the system to look like exactly what is
<br>&gt; on<br>&gt; &gt; &gt; &gt; &gt; web sword interface. After all, people are familar with web<br>&gt; interface.&nbsp;&nbsp;I ,<br>&gt; &gt; &gt; &gt; &gt; however did a websword plugin with tomcat embedded(yes, a server<br>&gt; on user's
<br>&gt; &gt; &gt; &gt; &gt; desktop).&nbsp;&nbsp;It is cool. However, due to other considerations, I put<br>&gt; it on<br>&gt; &gt; &gt; &gt; &gt; hold.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Since you are interest, I will put the source code to Google code
<br>&gt; &gt; &gt; &gt; &gt; next week.&nbsp;&nbsp;I tried sourceforge, still does not get approved.&nbsp;&nbsp;An<br>&gt; &gt; &gt; &gt; &gt; alternative is I put the code temporily into jwsord SVN, so you<br>&gt; can look at<br>&gt; &gt; &gt; &gt; &gt; it. Again, next week. :)
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; On 12/8/06, DM Smith &lt; <a rel="nofollow" target="_blank" href="mailto:dmsmith555@yahoo.com">dmsmith555@yahoo.com</a>&gt; wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; We hope to migrate the UI to SWT. So I am very interested in<br>&gt; your<br>&gt; &gt; &gt; &gt; &gt; &gt; RCP<br>&gt; &gt; &gt; &gt; &gt; &gt; work. Is there a place where I can see what you have done. If
<br>&gt; &gt; &gt; &gt; &gt; &gt; possible,<br>&gt; &gt; &gt; &gt; &gt; &gt; I'd like to minimize your pain of re-integrating the JSword as<br>&gt; it<br>&gt; &gt; &gt; &gt; &gt; &gt; changes.<br>&gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; David wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Eclipse RCP platform has its own threading api. Use can choose<br>&gt; &gt; &gt; &gt; &gt; &gt; the job<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; run on backgroud or foreground. I maybe need to double check
<br>&gt; why<br>&gt; &gt; &gt; &gt; &gt; &gt; the<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; process failed. (I believe it is because of threading)<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; For book installation, I added two mirror methods to do
<br>&gt; &gt; &gt; &gt; &gt; &gt; downloading<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; and copying.&nbsp;&nbsp;It works fine. The only issue is the api and<br>&gt; &gt; &gt; &gt; &gt; &gt; package<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; keep changing and I have to compare every time there is a new
<br>&gt; &gt; &gt; &gt; &gt; &gt; release<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; and merge the code.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; For indexing, I have not made it to work correctly.&nbsp;&nbsp;I will
<br>&gt; &gt; &gt; &gt; &gt; &gt; study the<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; code next week. The basic idea is kick off a background job<br>&gt; and<br>&gt; &gt; &gt; &gt; &gt; &gt; call<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; jsword api to generate index. No thread for indexing itself is
<br>&gt; &gt; &gt; &gt; &gt; &gt; needed.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; For Web sword, the book installation is on server side. Never<br>&gt; &gt; &gt; &gt; &gt; &gt; mind.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; It will not be used for end users. I put it on hold because I<br>&gt; &gt; &gt; &gt; &gt; &gt; have<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; several othe plugins need to be done soon.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Zhaojun<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; On 12/8/06, *DM Smith* &lt; <a rel="nofollow" target="_blank" href="mailto:dmsmith555@yahoo.com">dmsmith555@yahoo.com</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &lt;mailto:
<a rel="nofollow" target="_blank" href="mailto:dmsmith555@yahoo.com">dmsmith555@yahoo.com</a>&gt;&gt; wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; David wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Hi, DM and fellow developers,
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; I am developing web sword(90% done, pure j2ee<br>&gt; &gt; &gt; &gt; &gt; &gt; implementation, will<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; help web hosting) and sword on eclipse RCP.&nbsp;&nbsp;Issues were
<br>&gt; &gt; &gt; &gt; &gt; &gt; raised up<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; when I try to integrate install book and generate<br>&gt; indices.<br>&gt; &gt; &gt; &gt; &gt; &gt; The code<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; now has job api build in and also has the reporter to
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; communicate with<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; user UI.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; In order to accelerate the acceptance of jword
<br>&gt; &gt; &gt; &gt; &gt; &gt; library,&nbsp;&nbsp;the api for<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; downloading books and api for index processing need to<br>&gt; &gt; &gt; &gt; &gt; &gt; seperated<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; from
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Job api.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; I'm not sure I understand the problem.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; The index api (
org.crosswire.jsword.index) is independent<br>&gt; of<br>&gt; &gt; &gt; &gt; &gt; &gt; the<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Job and<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Reporter apis. The Lucene implementation is not.
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Likewise for the install api ( org.crosswire.jsword.index<br>&gt; )<br>&gt; &gt; &gt; &gt; &gt; &gt; and the<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; sword<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; implementation.
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Both the Job api and the Reporter api are listener based.<br>&gt; If<br>&gt; &gt; &gt; &gt; &gt; &gt; there<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; is no
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; listener for Job events or Reporter events, then those are<br>&gt; &gt; &gt; &gt; &gt; &gt; not heard.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Any listener of your choosing can be provided or not
<br>&gt; &gt; &gt; &gt; &gt; &gt; provided. It<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; is up<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; to you.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; The purpose of the Job and Reporter apis is to provide
<br>&gt; &gt; &gt; &gt; &gt; &gt; asynchronous<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; communication of a potentially background task thread. For<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; example, you<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; will notice in BibleDesktop that you can download and/or
<br>&gt; &gt; &gt; &gt; &gt; &gt; index<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; more than<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; one Book at a time. Each download and index is on its own<br>&gt; &gt; &gt; &gt; &gt; &gt; thread
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; and it<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; communicates back to BibleDesktop asynchronously of its<br>&gt; &gt; &gt; &gt; &gt; &gt; progress<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; or any
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; problems that are encountered.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; In a web environment asynchronous communication of<br>&gt; &gt; &gt; &gt; &gt; &gt; long-lived
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; threads on<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; the server may prove to be a challenge, but it should be<br>&gt; &gt; &gt; &gt; &gt; &gt; possible.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; _______________________________________________<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; jsword-devel mailing list<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; 
<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &lt;mailto:<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; 
<a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; ------------------------------------------------------------------------<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; _______________________________________________
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; jsword-devel mailing list<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">
http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; _______________________________________________
<br>&gt; &gt; &gt; &gt; &gt; &gt; jsword-devel mailing list<br>&gt; &gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">
http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; &gt; &gt; jsword-devel mailing list
<br>&gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel
</a><br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; ------------------------------<br>&gt; &gt; &gt; &gt; &gt; Check out the all-new Yahoo! Mail<br>&gt; beta&lt;<a rel="nofollow" target="_blank" href="http://us.rd.yahoo.com/evt=43257/*http://advision.webevents.yahoo.com/mailbeta">
http://us.rd.yahoo.com/evt=43257/*http://advision.webevents.yahoo.com/mailbeta</a>&gt;- Fire up a more<br>&gt; powerful email and get things done faster.<br>&gt; &gt; &gt; &gt; &gt; _______________________________________________
<br>&gt; &gt; &gt; &gt; &gt; jsword-devel mailing list<br>&gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;<a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">
http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; &gt; jsword-devel mailing list<br>&gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">
http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; &gt; jsword-devel mailing list
<br>&gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel
</a><br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; ------------------------------<br>&gt; &gt; &gt; &gt; Access over 1 million songs - Yahoo! Music Unlimited.<br>&gt; &gt; &gt; &gt;<br>&gt; &lt;<a rel="nofollow" target="_blank" href="http://pa.yahoo.com/*http://us.rd.yahoo.com/evt=36035/*http://music.yahoo.com/unlimited/">
http://pa.yahoo.com/*http://us.rd.yahoo.com/evt=36035/*http://music.yahoo.com/unlimited/</a>&gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; &gt; jsword-devel mailing list
<br>&gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel
</a><br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; jsword-devel mailing list<br>&gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">
jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; ------------------------------
<br>&gt; &gt; &gt; Any questions? Get answers on any topic at Yahoo!<br>&gt; Answers&lt;<a rel="nofollow" target="_blank" href="http://answers.yahoo.com/;_ylc=X3oDMTFvbGNhMGE3BF9TAzM5NjU0NTEwOARfcwMzOTY1NDUxMDMEc2VjA21haWxfdGFnbGluZQRzbGsDbWFpbF90YWcx">
http://answers.yahoo.com/;_ylc=X3oDMTFvbGNhMGE3BF9TAzM5NjU0NTEwOARfcwMzOTY1NDUxMDMEc2VjA21haWxfdGFnbGluZQRzbGsDbWFpbF90YWcx</a>&gt;.<br>&gt; &gt; &gt; Try it now.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; _______________________________________________
<br>&gt; &gt; &gt; jsword-devel mailing list<br>&gt; &gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">
http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; _______________________________________________<br>&gt; &gt; jsword-devel mailing list<br>&gt; &gt; 
<a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt;
<br>&gt; &gt;<br>&gt; &gt; _______________________________________________<br>&gt; &gt; jsword-devel mailing list<br>&gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">
http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; _______________________________________________<br>&gt; &gt; jsword-devel mailing list<br>&gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">
jsword-devel@crosswire.org</a><br>&gt; &gt; <a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; ------------------------------
<br>&gt; &gt; Everyone is raving about the all-new Yahoo! Mail<br>&gt; beta.&lt;<a rel="nofollow" target="_blank" href="http://us.rd.yahoo.com/evt=45083/*http://advision.webevents.yahoo.com/mailbeta">http://us.rd.yahoo.com/evt=45083/*http://advision.webevents.yahoo.com/mailbeta
</a>&gt;<br>&gt; &gt;<br>&gt; &gt; _______________________________________________<br>&gt; &gt; jsword-devel mailing list<br>&gt; &gt; <a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br>&gt; &gt; 
<a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br><br>--<br>"Ein Herz f�r Kinder" - Ihre Spende hilft! Aktion: 
<a rel="nofollow" target="_blank" href="http://www.deutschlandsegelt.de">www.deutschlandsegelt.de</a><br>Unser Dankesch�n: Ihr Name auf dem Segel der 1. deutschen America's Cup-Yacht!<br><br>_______________________________________________<br>jsword-devel mailing list
<br><a rel="nofollow" target="_blank" href="mailto:jsword-devel@crosswire.org">jsword-devel@crosswire.org</a><br><a rel="nofollow" target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br></blockquote>
</div><br>
<div>_______________________________________________<br>jsword-devel mailing list<br>jsword-devel@crosswire.org<br><a target="_blank" href="http://www.crosswire.org/mailman/listinfo/jsword-devel">http://www.crosswire.org/mailman/listinfo/jsword-devel</a><br></div></div><br></div></div><br>


<hr size=1>Everyone is raving about <a href="http://us.rd.yahoo.com/evt=42297/*http://advision.webevents.yahoo.com/mailbeta">the all-new Yahoo! Mail beta.</a></body></html>