Context Switching
In a standalone web app, after making sure the user was authenticated, we'd show a list of accessible gradebooks to choose from. However, embedded in a framework, that choice will have already been made: the user won't see a "Gradebook" link unless they're in a context that has a gradebook associated with it.
Facades specify how Gradebook Java code reaches functionality outside the Gradebook. The GradebookService API specifies how external Java code reaches functionality inside the Gradebook. But how does the external web application framework start the Gradebook web application at the right spot?
For the Sakai 2.0 Baseline, the top-level Gradebook context is externalized (in facades and GradebookService) via a "gradebookUid". The Gradebook application session switches gradebooks (authorization permitting!) whenever a "gradebookUid" parameter is included in the URL or in the POST parameters.
I'm hoping this will be sufficiently flexible to handle both standalone and integrated deployments. (It may also help bookmarking and Samigo integration.)