On 12/17/11 08:44 , Felix Meschberger wrote:
Hi all

The Web Console bundle provides JQuery libraries for use by plugin bundles. It 
has once been discussed, whether the provisioning of these libraries should be 
exposed in the Export-Package header. At that time we -- correctly IMHO -- 
dismissed this idea.

As of OSGi Core 4.3 we now have a generic capabilities and requirements model, 
which allows us to model these dependencies.

So I suggest, the Web Console defines a namespace for such libraries, etc. 
provided and exposes them as generic capabilities. Plugins could then require.

   Provide-Capability =
      felix.webconsole; name=JQuery; version:Version=1.3.2;
              path=webconsole/res/lib/jquery-1.3.2.js,
      felix.webconsole; name=JQuery-UI; version:Version=1.8.1;
              path=webconsole/res/lib/jquery-ui-1.8.1.js

A plugin could then require JQuery 1.3 or higher:

   Require-Capability =
      felix.webconsole; filter:="(&(name=JQuery)(version>=1.3))

When running in a 4.3 (or later) compliant framework these capabilities and 
requirements will be enforced. While in an earlier framework the headers are 
just ignored.

WDYT ?

As for the namespace: Would felix.webconsole be ok ? Or should that be 
org.apache.felix.webconsole ? Would it make sense to register that with the 
OSGi alliance ?

Just depends on whether you want to worry about collisions or not. I think the recommended approach is reverse domain name, but it is likely unique enough. Your call.

Would something like felix.webconsole.javascript be more forward thinking? Maybe in the future you'll export other libraries in other languages? Just a thought.

-> richard


Regards
Felix

Reply via email to