Skip to main content

How to add pluggins to a Rich Client

1 reply [Last post]
psiqueware
Offline
Joined: 2009-04-16

Pluggins Help RequestHi guys,We have been building a Blog Writer desktop application using java and swing.You can take a look at our 1.0 version using this link ->http://www.psiqueware.com/girasol/launch.jnlp or http://www.psiqueware.com/pw/scope.do?doc=downloads_enWe have reach the stage where we want add plugin functionality.My concerns are about it are the following:About Loading and Downloading

  • Should we just download them using https from our site to our temporal directory and create a custom classloader .
  • How do you recommend us to download and load the pluggins?
  • Do you know any other mecanism that we can benefit from?

Security

  • Is it posible to isolate attached jars? How? I mean if two pluggins contain 2 separated versions of spring it could be problematic.
  • Is it posible to partially isolate downloaded pluggins? It would be great have comunication between a limited number of clases.
  • Our application uses jnlp, can we reuse something in that area?

Reusability

  • Does anybody knows about an existing library for us to use?

I have no experience with custom classloaders therefore I think I can benefit from every one of your comments, thank you-- AngelPS: I leave you with some screenshots of our project.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
walterln
Offline
Joined: 2007-04-17

Couple of options (not sure I got them all though):
- use the default JDK ServiceLoader structure
- use Netbeans' LookUp API which is based on that (can be used separately from Netbeans)
For those two, see [url=http://java.sun.com/developer/technicalArticles/javase/extensible/index.html]this article[/url].

-There is also a [url=http://jpf.sourceforge.net/]Java Plugin Framework[/url] project, originally based on Eclipse Equinox, but now separate.

-Make you application support OSGI so you can load bundles on the fly. Though this probably is overkill for your case, since you basically have to make everything a bundle and run it inside a OSGI container (Apache Felix, Eclipse Equinox, [url=http://stackoverflow.com/questions/560794/what-osgi-container-do-you-recommend]etc[/url]).

Also you didn't sign all your jars, so I couldn't run the webstart to see your program.