← Revision 9 as of 2007-05-30 15:23:06
2579
Comment:
|
← Revision 10 as of 2009-02-12 01:03:13
2593
converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 8: | Line 8: |
* Offical [http://db.apache.org/derby/ Apache Derby] site * Useful [http://db.apache.org/derby/quick_start.html Quick Start] site for newbies * [http://db.apache.org/derby/derby_downloads.html#Software+required+to+build+Derby Reference] to OSGi (osgi.jar) |
* Offical [[http://db.apache.org/derby/|Apache Derby]] site * Useful [[http://db.apache.org/derby/quick_start.html|Quick Start]] site for newbies * [[http://db.apache.org/derby/derby_downloads.html#Software+required+to+build+Derby|Reference]] to OSGi (osgi.jar) |
Line 12: | Line 12: |
* [http://mail-archives.apache.org/mod_mbox/db-derby-dev/200512.mbox/%3C001001c602ae$adcdd270$6400a8c0@Apollo%3E thread#1] * [http://mail-archives.apache.org/mod_mbox/incubator-felix-dev/200603.mbox/%3C44061826.7010505@ungoverned.org%3E thread#2] |
* [[http://mail-archives.apache.org/mod_mbox/db-derby-dev/200512.mbox/%3C001001c602ae$adcdd270$6400a8c0@Apollo%3E|thread#1]] * [[http://mail-archives.apache.org/mod_mbox/incubator-felix-dev/200603.mbox/%3C44061826.7010505@ungoverned.org%3E|thread#2]] |
Line 25: | Line 25: |
Here is a sinlge jar file containing derby.jar plus derbytools.jar minus the offending class: attachment:derby-slim.jar | Here is a sinlge jar file containing derby.jar plus derbytools.jar minus the offending class: [[attachment:derby-slim.jar]] |
Embedding a Derby database
Derby can serve as an embedded relational database in Java applications. This may be a solution for use cases that need real-time access to relatively stable data, such as gene aliases and annotations. Getting Derby to work within a Cytoscape plugin was not trivial, so I wanted to share that experience.
Important Links
Offical Apache Derby site
Useful Quick Start site for newbies
Reference to OSGi (osgi.jar)
Getting It To Work
- Like other libraries to be included in a plugin, you have to unjar the classes and include them in your build folder.
- In order to get my application running, I needed to include both derby.jar and derbytools.jar. Leaving the other out helps keep the size down. These two jars add ~2.3MB.
One of the classes in derby.jar throws an exception while the plugin is being loaded by Cytoscape. EmbeddedActivator.class (org.apache.derby.osgi) implements BundleActivator.class which is not included in the Derby distribution.
- Turns out this class is part of an "optional" OSGi package which is under a proprietary license, not Apache!
Rather than going down that dark and treacherous road, I simply removed the osgi folder containing only the EmbeddedActivator class and jared the remaining classes along with my plugin. No problems.
Materials
Here is a sinlge jar file containing derby.jar plus derbytools.jar minus the offending class: derby-slim.jar
And here is sample code for your build.xml to unjar and include the derby classes in your build file:
1 <unjar overwrite="Yes" dest="${build}">
2 <fileset dir="${lib.derby}">
3 <include name="lib/derby-slim.jar"/>
4 </fileset>
5 </unjar>
6
Next
- I plan on testing performance by loading a GenMAPP Gene Database exceding 500MB into Derby and seeing how it runs.
- I'd like to work on a general Derby Interface: a plugin that loads derby-slim.jar once and offers generic methods for all other plugins