[jsword-devel] OSGi plugin opportunity
DM Smith
dmsmith555 at yahoo.com
Mon Dec 11 13:36:16 MST 2006
P. R. B. wrote:
> I think we'll need to identify where exactly the JSword jar and Common
> jar connect to each other, and probably with BibleDesktop's
> application jars. I created one RCP plugin for these jars because I
> didn't see a gain in managing the package relationships. Would we want
> to export/expose all of their packages or should we consider making
> some packages private (implementation packages, e.g.
> o.c.j.book.filter.gbf, come to mind)?
Common.jar provides the following:
gnu.gpl and gnu.lgpl - These are merely class representations of the GNU
licenses. They are used for displaying the license to a user within an
application.
o.c.c.activate - is used within jsword's implementation of a
o.c.j.book.sword.AbstractBackend and o.c.j.book.index.lucene.LuceneIndex
to help facilitate memory management.
o.c.c.config - is used for managing user level options. Used within
BibleDesktop, via common-swing.jar but not within JSword. This probably
won't be used when BD is re-written to use RCP/SWT/JFace as Property
Pages make more sense.
o.c.c.crypt - contains the cipher algorithm used to lock/unlock Sword
modules. Used by o.c.j.book.sword.*.
o.c.c.history - a rather poor attempt to support history navigation
within BD. Use within BD via common-swing.jar, but not within JSword.
This needs to be fixed to be more robust.
o.c.c.progress - Job management. Used within JSword and BibleDesktop for
background tasks and their asynchronous communication to the client.
o.c.c.util - a mish-mash of various functionalities in JSword and
BibleDesktop. Most notably:
Messaging
Exceptions
Logging
Reporting
Resource lookup
simple utilities
o.c.c.xml - XML document management and a "plugin" for a "Converter"
(mentioned in previous post in thread)
The reason that common is not part of jsword is more one of
partitioning. We saw the functionality of common being independent of
JSword and being useful to any Java application.
The same is true wrt bibledesktop and common-swing.
The dependency tree for BibleDesktop
bibledesktop.jar
common.jar
common-swing.jar
common.jar
jsword.jar
common.jar
With regard to exposing packages it is important to understand the
packaging philosophy in JSword:
Book:
o.c.j.book - The Book API
o.c.j.book.basic - An abstraction of the Book API. Only
DefaultBookMetaData is expected to be seen by clients.
o.c.j.book.readings - private implementation
o.c.j.book.sword - private implementation
Key:
o.c.j.passage - The Key API
Versification:
o.c.j.versification - The Versification API (currently this is only the
KJV v11n, but it will be changed to an Interface and a private
implementation)
Filter:
o.c.j.book.filter - The Filter API
o.c.j.book.filter.gbf - private implementation
o.c.j.book.filter.osis - private implementation
o.c.j.book.filter.plaintext - private implementation
o.c.j.book.filter.thml - private implementation
Install:
o.c.j.book.install - The Install API
o.c.j.book.install.sword - private implementation
Index:
o.c.j.index - The Index API
o.c.j.index.query - The Query API
o.c.j.index.search - The Search API
o.c.j.index.lucene - private implementation
Utilities:
o.c.j.util - Miscellaneous capabilities that are here as opposed to o.c.j
More information about the jsword-devel
mailing list