views:

21

answers:

1

Hi!

I have a "plugin like" architecture and I want to create one instance of each class that implements a dedicated interface and put these in a cache. (To have a singleton-ish effect).

The plugins will be provided as jars and put into the app engine war file before the app is uploaded.

I have tried to use the ClassPathScanningCandidateComponentProvider as I'm using spring anyway, but this didn't work. The provider complained that it was not able to find the HttpServletResponse class file while scanning the classpath. I can't get around this, when I add the servlet jar, then I'll get of course problems, because the same jar is also provided by the GAE. If I don't, I'm getting the error above...

So I tried to add a static initialization code, but of course this doesn't work, because the class is initialized when it's instantiated for the first time. (Well I knew that but it was worth a try)

The last chance I currently see is that I create a properties file with all plugin classes when the package is created, but this requires writing of a maven plugin etc. and I'd like to avoid that.

Is there something that I am missing?

+1  A: 

OK, I think I'll try to write my own classloader. This way, I could even put the plugins in the datastore and I can detect all the necessary classes etc.

:-)

Patrick Cornelissen