Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mini-OSGi that can run in a sandbox (like AppEngine or WebStart)?

I really like the concept of modular bundles as implemented by OSGi.

I also like "managed deployment" services like Google AppEngine (for web application) or Java WebStart (for client software).

These two ideas seem to complement each-other rather well conceptually.

However, the OSGi standard includes a couple of features that make it impossible for implementations like Felix or Equinox to run on top of sandboxed virtual machines, such as AppEngine or Webstart. In these environments, it is not possible to get direct access to a file system, for example, which precludes the OSGi bundle cache that is used to store persistent bundle state and native libraries.

Now, I have no great interest in using native libraries or have persistent bundle state. Is there some framework that implements the core bundle and services concept of OSGi (ideally in a compatible way so that OSGi bundles can be deployed into it as is), but can work without a bundle cache (and other facilities not available in a sandbox)?

I am looking for something like a limited version of Felix that works on AppEngine or WebStart.

Of course, if the WebStart engine and the Google AppEngine just provided OSGi framework services out-of-the-box that would be great, too...

Update: Another very limiting aspect of AppEngine is that you cannot start new Threads. This prevents (among other things) asynchronous bundle life-cycle management. Obviously not an issue with WebStart.

like image 239
Thilo Avatar asked Apr 09 '09 05:04

Thilo


4 Answers

EclipseSource have a patched version of osgi engine that (kind of) working in AppEngine, download the project zip files from the blog: http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/

like image 156
J-16 SDiZ Avatar answered Oct 15 '22 05:10

J-16 SDiZ


I'm pretty sure it can be done, and This eclipse help page could probably get you started. If I understand it correctly, your bundles must be signed and your jnlp file needs to request all permissions.

like image 42
Vincent De Baere Avatar answered Oct 15 '22 04:10

Vincent De Baere


You should talk to Chris Aniszczyk. He made it work with Equinox and Knopflerfish. See the screenshot here: http://twitpic.com/300lk He was planning on blogging about it, but I guess he is pretty busy at the moment. Here is the link to his blog: http://mea-bloga.blogspot.com/

like image 44
Mirko Jahn Avatar answered Oct 15 '22 05:10

Mirko Jahn


http://code.google.com/p/lemmon/

however, check the issues for URLStreamHandler Problem.

No personal experience, just a clue that might help you.

like image 23
user77115 Avatar answered Oct 15 '22 05:10

user77115