DataFileProvider service
------------------------
Key: STANBOL-146
URL: https://issues.apache.org/jira/browse/STANBOL-146
Project: Stanbol
Issue Type: Improvement
Components: Commons
Reporter: Bertrand Delacretaz
Assignee: Bertrand Delacretaz
Priority: Minor
Several stanbol enhancer engines and other components use potentially large
read-only data files (models, indexes etc.), and some of those cannot be
distributed with Stanbol because of licensing or size issues.
We discussed this at the Saarbrücken workshop and came up with these specs for
a DataFileProvider service:
DataFileProvider provides data files (InputStreams actually) to OSGi components.
Bundles can provide default data files via their own DataFileProvider services.
The main DataFileProvider has a service.ranking of 0 to make it the default
provider. A bundle that provides a DataFileProvider service must register it in
its Activator, so that it's up before any component of the bundle asks for it.
The main DataFileProvider ignores other providers if it finds the requested
data file in the filesystem, in a specific folder ("datafiles folder"). The
name of that folder is configurable in the main DataFileProvider service.
When a bundle with symbolic name foo asks for data file bar.bin, the main
DataFileProvider first looks for a file named foo-bar.bin in the datafiles
folder, then for a file named bar.bin.
A request for a data file can include a downloadExplanation String, that
describes how to get the full data file, in case we only supply a default
smaller one.
An OSGi console plugin lists all (successful or failed) requests to the main
DataFileProvider service, along with their downloadExplanations. This list of
requests can also be queried so that failed requests can be shown on the
stanbol server home page, for example. This provides a single location where
stanbol users see what data files are needed and which ones were actually
loaded from where.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira