I don't know if this is strictly a riena question:
We wrote an rcp plugin using riena. Now, we would like to write a second rcp plugin, also containing an riena application and let the user decide (after login), which of the two riena applications should be started. It's not really important if both plugins are loaded at startup (and the enclosing application just decides which riena application gets activated) or if the plugins are lazy-loaded after the user decided on which application should be started.
I think you could make the policy for your application plugins Lazy and then only needed plugins are loaded. That means that whenever you load a class from that bundle then the bundle get started (and hence all its dependant bundles).
Typically you would do that with extensions points since they can also be explored on resolved and not yet started bundles. So your umbrella application wrapper (with the login) would define an extension point and the app A and app B contribute an extension which contains a Class to start that application. Once you call createExec on that ExtensionPoint the App gets loaded.
That should do the trick. Does that help ?
The more Riena way of doing this is putting the two apps into the Riena Subapplication tabs and if you dont make them autostart (in the assembly) they will remain invisible. Then in the login when the user decides, you could call the navigate method on the ApplicationNode passing it the ID of the subapplication that you like to start.
ApplicationNode.navigate (new NavigationNodeId("subapp-A"));
And it would automagically open the subApp-A and only load the classes from the bundle. The advantage is that you can in the process later also open App B and have that open in a second subapplication tab.