|RAP ApplicationConfiguration and automed WorkbenchApplicationConfigurator [message #1022046]
||Thu, 21 March 2013 03:30
| Markus Duft
Registered: February 2013
I was trying to add an additional ClientProvider to my RAP application for testing. For this i
1) Implemented the ClientProvider, currently just sysout's something and does not handle anything at all.
2) Added an ApplicationConfiguration which adds the ClientProvider and delegates to WorkbenchApplicationProvider to do the magic.
3) registered a ApplicationConfiguration.class service in my Activator.
At this point, the application starts, and my ApplicationConfiguration is called fine. However the ClientProvider that i register ("((ApplicationImpl) application).addClientProvider(new ThinClientProvider());") is never called at all. Now i figured, that (when setting a breakpoint at EntryPointManager) i have multiple instances of all the things (EntryPointManager, Application, ...). It now depends on the order in which entry points are found.
if the entry point from the /first/ created application is found, the application starts fine, but my ClientProvider is not on board. If (through registering the entry point in a different path) i force the second created application into place, everything starts, but i get not a single image (i bet they are bound to the first application..?). All places with image just stay empty.
If i then play a little more, and again try to launch an entry point from the first application, i even get "Resource does not exist: generated/2e1e93b7.png"
i also tried to remove the entry point from my plugin.xml and do the registration on my own (delegating all but registerEntryPoints to WorkbenchApplicationConfigurator), and ended up with only a single registration in the system for my entry points (cool!). However, the rap.osgi Activator still starts the Workbench application automatically, which seems to (still) destroy images (all stay empty ).
is this known, is there a workaround? what can i do? i don't want my client to have to parse the startup page html and do other tricks with session ids, etc. /and/ i'd love to avoid to have to modify RAP plugins is what i do the correct thing (i.e. register a ApplicationConfiguration service in the Activator)? is there another way to prevent the rap.osgi activator from doing those things? playing with startlevels in the launch config did not solve the problem either...