Table of Contents
Security Update: 2.2.3 adds a critical security fix to the 2.2.2 maintenance release and should therefore be taken to simply supersede 2.2.2 and all 2.2.x releases which came before it. Anyone running unpatched versions of earlier 2.2 releases should upgrade to 2.2.3 immediately. Unpatched systems could allow a user to view all attachments on the system through the browser ( SAK-7288) as well as alter or delete them through a WebDAV client (SAK-7672).
The Sakai 2.2 series as a whole marks the culmination of a significant effort to restructure the framework into more logical functional/architectural units, paving the way for multiple focused teams to work in parallel on moving the framework and legacy code forward. This release also incorporates the Open Source Portfolio suite of tools, available in this first merged effort as provisional tools. Additional functional improvements include group awareness for each of the Resources, Assignments, and Schedule tools, the inclusion of French and Catalan translations, updated help content, and the addition of four innovative provisional tools.
Since all 2.2 minor releases involve no API changes, a migration from 2.2.0 is very simple and straightforward: skins, providers, and other code written for the 2.2 codebase should be fine.
Some of the 2.2.1 fixes, however, were applied to the DB schema, and so a DB
conversion script is still necessary for that upgrade, although neither 2.2.2 nor 2.2.3
introduced any schema changes. The conversion scripts to be applied - in distinct
versions for MySQL and Oracle, respectively - are found in the
reference/docs/conversion folder of the release or on
If you're moving to 2.2.3 from a 2.1 version (or earlier), the changes are more significant, and since the 2.2 code is still fairly recent, it's worth spending a little more time here to describe what you can look forward to.
The 2.2 codebase marks the culmination of a significant effort to restructure the framework into more logical functional/architectural units, paving the way for multiple, focused teams to work in parallel on moving the framework and legacy code forward.
These changes in themselves do not have a direct functional impact, but they are echoed by a change in the organization of Sakai's subversion repository, and many services and packages have different names from those in 2.1. To see more discussion of migration issues that may result, see below.
Group awareness has been extended to three additional tools: Resources, Assignments, and Schedule. That is to say, the contents of each of those tools can have their access restricted to specific groups, as they are defined by site maintainers in the Site Info tool.
For the last few releases we've been working to introduce the concept of
"internal" and "external" identifiers in Sakai in the user records. We
started with a single identifier that had to play both of these roles, and
have been tweaking the code to separate these out. This separation was
completed with 2.2.0. It is now possible for an institution to, for example,
alter the enterprise IDs of their users without losing access to their sites
and materials in Sakai. For a thorough discussion of these changes, see the
reference/docs/architecture/sakai_id_eid.doc (or in
subversion at: https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-3/docs/architecture/sakai_id_eid.doc)
The FCKeditor WYSIWYG editor was available in 2.1, but not the default. In
2.2 it has become the default editor. HTMLArea is still included, however,
and the default editor may be overridden in
sakai.properties by altering the following setting:
# specify the wysiwyg editor wysiwyg.editor=FCKeditor
The three highest-scoring skins from the recent skins contest have been
included in the distribution. You can make any of these your default skin by
using the following property in
possible values are commented out in the example below):
# The default skin for sites without a skin setting # skin.default=gen-u # skin.default=examp-u # skin.default=some-u skin.default=default
Help content in 2.1 was out of date, reflecting only version 2.0 of the software. The help content has been updated for 2.2, along with some style improvements. To see the ongoing work of the Help project, visit their space in Confluence:
2.2 involves closer integration with the Open Source Portfolio, an existing suite of tools supporting portfolio activities, and which are available in this release as provisional tools. Using OSP, individuals can collect items, reflect, design portfolios, and publish them to designated audiences. Instructors and program administrators are able to provide structure and guidance to an individual's work that include step-by-step (sequential) wizards, matrices of goals/standards, and hierarchies to organize related work.
Sakai 2.2 has added four new provisional tools
Message Center: a tool combining a discussion forum with private messaging.
Search: a tool providing a Google-like search of all site content.
Summary Calendar: a synoptic calendar view that may be used in either the My Workspace or the Home page of course/project sites, including an event summary from either all the sites to which a user is a member (if in My Workspace) or the events of a particular site (if in that site).
Post 'Em: an automated reporting system that enables faculty to post grades and comments without compromising student privacy. Post ‘Em accepts CSV files, empowering faculty to track student grades in a spreadsheet application of their choice.
You can find more details about these and all other provisional tools on the provisional tools page.
A database conversion is required for a migration from 2.2.0 to 2.2.1, but not
for a migration from 2.2.1 to 2.2.3. Since DB conversions require the successive
application of all intermediate scripts, a migration from a 2.1.x or earlier
version will require at least two conversions (e.g. one from 2.1.2 to 2.2.0, and
then one from 2.2.0 to 2.2.1). The conversion scripts to be applied - in
distinct versions for MySQL and Oracle, respectively - are found in the
reference/docs/conversion folder of the release or on
As a general rule, be sure to read through these conversion scripts before applying them. They do not take into account any special customizations you may have made - such as new roles, or the deployment of additional tools - and they may complicate your migration with unintended consequences if you execute the script blindly.
The Message Center tool offers one such particular example for 2.2. A number of schools deployed Message Center in 2.1.x production, before it was yet a provisional tool. Now that it is a provisional tool, the conversion scripts were written to introduce its tables, and thus assume that Message Center is a new tool for your deployment. If it isn't, you'll want to comment out the portions of the 2.1.2 - 2.2.0 conversion script that treat it, and instead perform the following conversions:
ALTER TABLE MFR_TOPIC_T ADD DEFAULTASSIGNNAME VARCHAR(255); ALTER TABLE MFR_OPEN_FORUM_T ADD DEFAULTASSIGNNAME VARCHAR(255); ALTER TABLE MFR_MESSAGE_T ADD GRADEASSIGNMENTNAME VARCHAR(255); ALTER TABLE MFR_MESSAGE_T ADD GRADECOMMENT VARCHAR(255);
ALTER TABLE MFR_TOPIC_T ADD DEFAULTASSIGNNAME VARCHAR2(255) NULL; ALTER TABLE MFR_OPEN_FORUM_T ADD DEFAULTASSIGNNAME VARCHAR2(255) NULL; ALTER TABLE MFR_MESSAGE_T ADD GRADEASSIGNMENTNAME VARCHAR2(255) NULL; ALTER TABLE MFR_MESSAGE_T ADD GRADECOMMENT VARCHAR2(255) NULL;
If you're migrating from an earlier version you'll also need to be apprised of
the framework changes that the 2.2 codebase involves. The 2.2 refactoring means
that many package names have changed from 2.1, and these differences will mainly
be encountered in
sakai.properties settings with bean
references. It's best to not try to use a
from a previous release, and instead start with the sample in
Any custom code, such as providers, may also need revision. See below for more discussion of providers in particular.
As mentioned above, 2.2 introduces a separation of external user identifiers
from Sakai's internal user ids. Any custom
UserDirectoryProvider will need some alteration to account
for this, along with changes to its import statements and declarations that stem
from API changes. Below is a list of changes that a typical provider should
Import statements altered to reflect new package names.
A search and replace to turn getters and setters from, e.g., 'getId' to 'getEid'.
project.xml files in both the provider
module and 'component' with the appropriate UDP location.
Change the Spring bean declaration in
The UDP class may implement the
interface (optional), and the two additional methods this pulls in.
Be sure to review the
compare it against the sample for previous releases:
A number of CSS changes will need to be made to any 2.1 skins in order to
adapt them to 2.2 versions. These changes - including conversion steps - are
thoroughly documented in the appendices of the skin document available in
reference/docs/architecture/sakai_skin.doc, or in
subversion at: https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-3/docs/architecture/sakai_skin.doc
The code of each release has a corresponding maintenance branch, which is patched with fixes in an ongoing way by a branch manager - effectively until there is no longer sufficient interest in it for a branch manager to volunteer. Maintenance branches therefore represent the latest snapshot of fixes for any given Sakai version.
These maintenance branches may be checked out through subversion; they are labeled with an 'x' replacing their minor version number, e.g. '2-2-x'. You can check out the 2.2 maintenance branch with the following command:
svn export https://source.sakaiproject.org/svn/sakai/branches/sakai_2-2-x/
If you come upon an important fix that you believe should be included in the branch (and perhaps isn't yet), feel free to bring it to the attention of the branch manager, Lance Speelmon (firstname.lastname@example.org).
Sakai 2.2.3 fixes the following issue from 2.2.2:
The list of known issues with Sakai 2.2.3 is found at:
See in particular the "Important Issues" noted at the top of the list.