Skip to end of metadata
Go to start of metadata

 

Sakai Collaboration and Learning Environment (CLE) 2.8

 

Icon

Sakai CLE 2.8 release dates:

2.8.3 - 15 February 2013

2.8.2 - 10 June 2012

2.8.1 - 11 October 2011

2.8.0 - 18 April 2011

 

The Sakai Collaboration and Learning Environment (CLE) is a Java-based, service-oriented web application that provides a variety of capabilities supporting teaching and learning, portfolios, research, and ad-hoc project collaboration. The Sakai CLE is typically deployed using Apache Tomcat as its servlet container and scalability is achieved by running multiple instances of Tomcat in a clustered environment, each deploying a copy of the Sakai CLE. It integrates with a variety of external authentication services including CAS, Kerberos, LDAP, Shibboleth and WebAuth. A single database, usually MySQL or Oracle, provides a transactional store of information while file storage is typically delegated to NAS or SAN solutions. In most production settings, the Sakai CLE relies on a back-end student information system (SIS) to provide it with student and course information, which the Sakai CLE consults via provider APIs.

The Sakai CLE 2.8 release builds on previous releases by refining and stabilizing the 2.x feature set. It offers dozens of new features and improvements to key areas like accessibility, internationalization, performance, and security.

Icons are used throughout the release notes to highlight important points in the installation, configuration, build and deployment process. Below is a list of the icons you will encounter:

(tick) Hints (info) Useful Information (warning) Caution (minus) Warning (thumbs up) Good practice (thumbs down) Bad practice

The documentation is presented here for ongoing comment, correction, and clarification, so please use the "Add Comment" link at the bottom of any of these pages if you note errors, require further details or have tips to share.

What's new

 Click here to expand...

Highlights

Among the many enhancements included in the Sakai CLE 2.8 release are:

  • Configurable URL shortening service
  • Numerous mobile portal UI improvements
  • Collapsible portal navigation menu
  • reCAPTCHA support for logins
  • Enhanced user profile options
  • Support for IMS BasicLTI outcomes
  • Respondus question import handling
  • Optional CKEditor implementation
  • Six new webservices
  • Persistent event logging for Quartz Scheduler jobs
  • Improved IMS BasicLTI external integration capabilities
  • Improved integration with external user providers (eg LDAP)
  • Updated language packs (Chinese, Dutch, French, Spanish, Portuguese, Turkish and Vietnamese.)

For a complete listing of new features see the lists below.

Portal

Ticket

Project

Feature

SAK-19827 - Add portal icon support for 3 Etudes tools ( Closed)

portal

Adds portal icons for Etudes's Mneme, Melete and JForum tools.

SAK-19646 - Leverage browser caching ( Closed)

portal

Leverages browser caching opportunities.

SAK-19156 - Add Capability for Tools to Request Maximized Mode ( Closed)

portal

Adds ability for tools to request the maximum tool area for display purposes now that navigation menu can be collapsed (portal.allow.auto.minimize=true).

SAK-19148 - Suggest Changing the Default timeoutDialogEnabled property to be "True" ( Closed)

portal

Logout timer setting (timeoutDialogEnabled) is now enabled by default.

SAK-19129 - Eliminate the Presence iFrame and Replace with jQuery.Ajax calls to retrieve the list of users ( Closed)

portal

Eliminates Presence iframe and replaces with JQuery.Ajax calls.

SAK-19089 - Ability to set a url for the gateway site ( Closed)

portal

Adds ability to specify a URL (rather than a siteId) for the gateway page (gatewaySiteUrl=myurl).

SAK-19061 - Add Link to the PDA Portal to the Gateway Page ( Closed)

portal

Adds link to PDA portal on gateway page.

SAK-19014 - Include tool CSS in the background portal document so JSR-168 tools can be styled ( Closed)

portal

Includes tool css in background portal document so JSR-168 tools can be styled.

SAK-18687 - Ability to collapse site navigation ( Closed)

portal

Adds collapsible navigation menu (icons only). See also SAK-19193 - Change Default for Expand / Contract in the Portal and Improve Icons ( Closed) .

SAK-18468 - add reordering support to reference/library ( Closed)

skins

Add FLUID reordering support.

SAK-17160 - Move list of subsites into own section ( Closed)

portal

Sub-sites in navigation menu are sectioned separately from a site's tool list and each sub-site is assigned an icon.

SAK-16926 - Report Kernel version in portal footer ( Closed)

portal

The Kernel version can now be listed in the footer. See also KNL-546 - Add kernel build time to version file ( Closed) , KNL-546 - Add kernel build time to version file ( Closed) .

SAK-16484 - Session timeout poller inaccurately checks if the current session is authenticated ( Closed)

portal

Implements Javascript routine to more accurately poll status of user session.

SAK-15653 - Add a tinyurl implementation to make sending URLs in emails etc simpler. ( Closed)

portal

Render menu links to "hidden" tool pages in italics and with an opacity of 0.7.

SAK-12841 - Turn the portal/xlogin page into a vm template ( Closed)

portal

portal/xlogin page converted to a vm template.

SAK-2991 - Exit options should exist from the Invalid Login page ( Closed)

portal

Cancel button added to (xlogin) login page.

Mobile/PDA Portal

Ticket

Project

Feature

SAK-20332 - allow hide of synoptic tools in mobile portal ( Closed)

portal

Added ability to hide synoptic tools.

SAK-20330 - add tool icons to mobile site/tool list ( Closed)

portal

Added tool icons to help distinguish between site and tool lists.

SAK-20053 - distinguish in mobile portal between sites and tools ( Closed)

portal

Adjust .css to distinguish between sites and tools in mobile portal.

SAK-19491 - Mobile skins need updating ( Closed)

portal

Mobile .css skins updated.

SAK-19275 - add ability to insert some markup via site property into specific site ( Closed)

portal

Since 2.7.0 the standard portal has (SAK-15097) the ability to insert some markup on a site-by-site basis via a site property (sakai:htmlInclude). This has been ported to the PDA portal in such a way that the same site can (if needed) contain a different markup include as the standard portal.

SAK-19179 - PDA changes for 2.8 ( Closed)

portal

PDA changes for 2.8: breadcrumbing simplified; additional rendering capabilities added for devices that adhere to the following @media selector: "@media screen and (max-device-width: 480px)"; .css trim and ellipsis provided for site titles that go over the width of the viewport; css3 selectors used for compatible devices in order to differentiate items in the breadcrumb; <meta /> tag modified in pda.vm to make changes in orientation smoother (portrait/landscape); modified how links to child sites are displayed (passing control over to the css); moved strings from pda.vm template to bundle; and changed how links in the site menus are rendered (make entire block clickable) and styled in order to make them more in accordance to practice.

SAK-18800 - Opt out of automatic forward to PDA portal ( Closed)

portal

Added "opt out" link in the /portal/pda footer in order to forward user to portal/site (i.e., "classic view").

SAK-18720 - Mobile portal - Autodetect device type and forward to proper handler ( Closed)

portal

Auto-detect mobile devices and forward to /portal/pda; otherwise forward to portal/site (desktop/laptop access).

Tools

Ticket

Project

Feature

SAK-12489 - Allow captcha support for new account signups. ( Closed)

account

Added recaptcha support for new account signups.

SAK-8005 - Announcements should allow the author to specify the order ( Closed)

announcements

Authors can now change display order of announcements.

SAK-18710 - Add notification history in the edit view of the announcement. ( Closed)

announcements

Notification history added.

SAK-18764 - add announcement API support in Entity Broker ( Closed)

announcements

entitybroker support added.

SAK-19814 - register Announcement tool as group-aware when starting PermissionHelper ( Closed)

announcements

Announcements tool is now registered as group-aware when starting PermissionHelper.

SAK-20074 - Accessibility: List Navigator Buttons in Announcements Not Announced Meaningfully by Screen-Readers ( Closed)

announcements

Accessibility: list navigator buttons provided with appropriate contextual text labels in order to render them meaningful to Screen-Readers. See also SAK-20073 - Accessibility: List Navigator Buttons in Assignments Not Announced Meaningfully by Screen-Readers ( Closed) .

SAK-18752 - Provide a way to customize letter grades in the Assignments tool ( Closed)

assignments

Letter grades now customizable (assignment.letterGradeOptions).

SAK-19119 - email manifest of archive to site owner of submission of assignment ( Closed)

assignments

Instructors now provided with a manifest of archives uploaded by students (*.zip only so far).

SAK-19816 - register Assignment tool as group-aware when starting PermissionHelper ( Closed)

assignments

Assignments tool is now registered as group-aware when starting PermissionHelper.

SAK-18076 - allow instructor to specify options for Assignment tool default page, e.g. show no assignment, but do search or other filters first ( Closed)

assignments

Allows instructor to specify options for Assignment tool default page (e.g., show no assignment) but do search or other filters first.

SAK-24033 - BLTI should auto-register its events for SiteStats ( Closed)

basiclti

Now auto-registers events for use by sitestats.

SAK-24183 - Add Ability for External Basic LTI Tools to Set Grades in Sakai ( Closed)

basiclti

Adds ability to set grades in the Sakai CLE from an external tool using web services. Disabled by default (basiclti.outcomes.enabled=false).

SAK-24026 - Please Make Basic LTI Handle Multiple Placements ( Resolved)

basiclti

Permits multiple placements of basiclti in a given context (e.g., site).

SAK-24029 - Add feature to open Basic LTI tool in a new window ( Closed)

basiclti

Adds ability to open a basiclti tool in a new window.

SAK-24012 - Support the ext_lms feature in Basic LTI ( Closed)

basiclti

Adds support for the ext_lms feature in IMS Basic LTI permitting basiclti to know which LMS it is dealing with so it can tune it's tool UI appropriately.

SAK-24053 - Give the User an Option To Indicate if they Want the LTI Portlet to minimize Portal Navigation ( Closed)

basiclti

Adds a checkbox that provides option to minimize the portal navigation menu after a launch occurs. See also SAK-23948 - Request Maximum Tool Area from the Portal when launching an external tool ( Closed) .

SAK-24044 - Add Support for Basic Outcomes and Settings Service ( Closed)

basiclti

Added support for basic outcomes and settings service. This change alters the outcomes service to reflect the draft of the basic (as compared to simple) outcomes service and adds a per-placement settings service. Disabled by default (basiclti.outcomes.enabled=false).

SAK-24059 - Implement IMS BLTI Context Memberships Service ( Closed)

basiclti

Implemented the Context Memberships Service as described in the IMS GLC Basic Learning Tools Interoperability Extensions Recommended Practice. This allows an external tool (if granted proper permissions) to retrieve a course roster for the course that they were launched from.

SAK-24054 - Add Support for the IMS BLTI ext_resource_link_content extension ( Closed)

basiclti

Added support for the IMS Basic LTI ext_resource_link_content extension. This allows the launch to specify a URL that contains resource content. Initially simply a field in the configuration dialog, future work will permit basiclti launches from a resource handler (e.g., the way to send the URL of the current resource that BLTI is being launched from), allowing the launching of a SCORM object with an external SCORM player or perhaps a QTI2 test engine and handing the player or test engine the actual content to be played.

SAK-24184 - Add ext_sakai_provider_eid param to ProviderServlet so that external consumers can pass an eid instead of a userId ( Closed)

basiclti

Added parameter ext_sakai_provider_eid so that an external consumer can pass an eid instead of a userid.

SAK-17523 - Add a RESTful way of retrieving new chat messages for a channel ( Closed)

chat

Adds RESTful way of retrieving new chat messages for a channel.

SAK-19818 - register Resources tool as group-aware when starting PermissionHelper ( Closed)

content

Resources tool is now registered as group-aware when starting PermissionHelper.

SAK-12800 - Allow emails sent to mail archive address to be flagged as to be stored in archive, but not forwarded on to other site members ( Closed)

email-archive

Site owners can choose to forward to site members or simply archive emails sent to the site email address.

SAK-18532 - Allow sender to be specified per template ( Closed)

email template service

Sender address can now be specified in a template.

SAK-17637 - Make loading/updating of templates a part of the EmailTemplateService ( Closed)

email template service

Adds template loading/updating.

SAK-18589 - Sort gradebook by category average ( Closed)

gradebook

Adds sorting for categories by name, average, weight. Category sorting also added to "roster" and "summary" pages.

SAK-17943 - Add edu-services scenarios for saving assignment with trailing whitespace to unit tests ( Closed)

gradebook

Adds edu-services scenarios for saving assignment with trailing whitespace to unit tests.

SAK-19510 - Add <sakai.hybrid.version> in the master pom; add variables to login and provider poms ( Closed)

hybrid

Added hybrid-util dependency to login and provider projects in order to simplify adding the full hybrid project to Sakai 2.8.

SAK-20033 - Add evict functionality to memory tool ( Closed)

memory

Added cache evict item functionality to Memory tool.

SAK-24610 - Allow sorting of forum threads ( Closed)

msgcntr

Forum threads are now sortable.

SAK-24642 - Start and End dates on Forums and Topics ( Closed)

msgcntr

Added ability to set open/close dates for discussion boards,forums and topics.

SAK-24641 - Preview message before sending ( Closed)

msgcntr

Added ability to preview message before sending.

SAK-24644 - Extend EntityBroker for MSGCNTR ( Closed)

msgcntr

entitybroker support extended.

SAK-24628 - Feature Request: Please allow an institution to set a default preference for the "Watch" notification email functionality in Forums 2.7 ( Closed)

msgcntr

Added the ability to configure the default email behavior for the "Watch" functionality in Forums (mc.notificationDefault).

SAK-24640 - Option to save a draft of the message ( Closed)

msgcntr

Option added to permit authors to save a message draft.

SAK-24607 - Rewrite findNumModeratedTopicsForSiteByUserByMembership ( Closed)

msgcntr

Query findNumModeratedTopicsForSiteByUserByMembership rewritten in order to improve performance.

SAK-24608 - Rewrite findAllPendingMsgsByContextByMembership ( Closed)

msgcntr

Query findAllPendingMsgsByContextByMembership rewritten in order to improve performance.

SAK-24609 - Rewrite synoptic queries to separate permissionLevelId query from permissionLevelName ( Closed)

msgcntr

Synoptic queries permissionLevelId and permissionLevelName rewritten in order to improve performance.

SAK-18831 - add configuration option to turn tool categories off in xslt charon portal ( Closed)

osp

Adds configurable property that turn off tool categorizations in the navigation menu in the xsl Portal (xslPortal.displayToolCategories=false).

SAK-18559 - Add support for email notification preferences in Matrices and Wizards ( Closed)

osp

Adds support for email notification preferences in Matrices and Wizards.

SAK-18013 - Integrate Assignments2 in with the OSP Matrix helper ( Closed)

osp

Adds Gradebook2 integration support to OSP Matrix helper.

SAK-17564 - Support display of Public Portfolios within a site ( Closed)

osp

Adds a new "Public Portfolios" tab.

POLL-92 - Support for import & export ( Closed)

polls

Added import/export capabilities so that polls can be duplicated across sites, imported from other sites and exported as part of Site Archive.

POLL-121 - Cannot access poll options through /direct when poll is public and user isn't authenticated. ( Closed)

polls

Anonymous user can now access public polls via /direct. See also POLL-122 - /direct/poll/{id}.json doesn't allow authenticated users access to a public poll. ( Closed) for authenticated user access to polls via /direct.

POLL-129 - Polls tool doesn't support voting on polls which allow multiple answers through /direct ( Closed)

polls

Now supports poll voting on multiple options through /direct.

SAK-18855 - Add option to poll to allow public voting on individual polls ( Closed)

polls

Adds option to allow public voting on individual polls.

SAK-19130 - Change Default for Presence in My Workspace ( Closed)

presence

Presence is now turned off in My Workspace (display.users.present.myworkspace=false).

PRFL-13 - Add private messaging ( Closed)

profile2

Adds private messaging.

PRFL-90 - Allowing using official photos for profile2 ( Closed)

profile2

A user's official institutional image can now be accessed and used as their profile image. Disabled by default. (profile2.official.image.enabled=false, profile2.official.image.source=url, profile2.official.image.attribute=jpegPhoto).

PRFL-134 - Add picture gallery page ( Closed)

profile2

Adds an image gallery along with privacy settings. Users can select their profile image from the gallery.

PRFL-178 - Add kudos widget ( Closed)

profile2

Adds "kudos" ratings widget that provides scores based on profile completeness. Runs as a cron job using Job Scheduler. See also PRFL-336 - add Preferences and Privacy settings for Kudos widget ( Closed) .

PRFL-206 - Add "Business Information" panel to profile ( Closed)

profile2

Adds a business/company information panel to each profile.

SAK-18864 - Create Persistent Event Logs For Job Scheduler ( Closed)

quartz scheduler

The quartz scheduler event log has been replaced with a persistent, database-backed event log. The log combines Quartz-generated events and any logging the job developer chooses to include in the event log. This prevents the need to skim through Tomcat logs to find job execution errors or info statements and permits sys-admins to review job execution event logs across a cluster.

SAK-19178 - Schedule Event Log Purge for Job Scheduler During Initial Startup ( Resolved)

quartz scheduler

A default job has been added which will purge all but the last X days of events from the log (scheduler.loadjobs=init/true/false (e.g., on first start up (default), on restart, never). This purge job must be scheduled in order to control the size of the event log.

SAK-13696 - Provide interface to JobDataMap to set Quartz job properties ( Closed)

quartz scheduler

Update tool providing JobDataMap and trigger interfaces.

SAK-18802 - Add a 'pre' macro ( Closed)

rwiki

Added Radeox <pre> macro.

SAK-5279 - No "Edit" link in public view when set to Public Update = yes ( Closed)

rwiki

Authenticated users can now edit pages marked publicly editable.

SRCH-34 - Optimize indexing batch size and frequency ( Closed)

rwiki

Optimize indexing batch size and frequency. Previously, the search indexing formula could result both in index rebuilds running slowly and running too frequently on idle nodes. The formulas where tweaked for better max batch sizes for large rebuilds (e.g., 1 million queued docs) and appropriate minimum indexing intervals (e.g., 30-60s when there are only a few pending docs, e.g., < 100).

SAK-19817 - register Calendar tool as group-aware when starting PermissionHelper ( Closed)

schedule

Calendar tool is now registered as group-aware when starting PermissionHelper.

SAK-18997 - Add support for Account Validator ( Closed)

site info

Added the account validation tool in Site-manage-participant-helper. Activated via a property; default behavior = false (siteManage.validateNewUsers = true/false).

SAK-18978 - When adding user to site, option to add them as inactive ( Closed)

site info

Users can be added to sites with a status of inactive.

SAK-18653 - add a 'select all' button to the main site info page to select all users ( Closed)

site info

Added a "Select all" checkbox to simplify the task of selecting all users.

SAK-18462 - Ability to restrict joiner role selection to non-maintainer roles ( Closed)

site info

Option added that restricts the joiner role selection offered in Site Info / Manage Access only to roles which do NOT have site.upd permission. A new property siteinfo.prohibited_permission_for_joiner_role has been added for configuring a list of permissions that the joiner role should not possess. If not included the default is site.upd.

SAK-688 - Better UI for site access options in worksite setup ( Closed)

site info

Worksite Setup UI for site access options improved.

SAM-663 - QTI import of Respondus-generated questions ( Closed)

test and quizzes

Added ability to import questions from Respondus.

SAM-666 - Allow instructors to select a feedback option that would show students their overall score only ( Resolved)

test and quizzes

Added ability to allow instructors to select a feedback option that would show students their overall score only.

SAM-756 - Character limit of 4000 in Test/Quizzes - QUICK question. ( Resolved)

test and quizzes

4000 character limit lifted on questions, short answers and feedback.

SAM-772 - Allow instructors to enter zero score for unsubmitted assessments ( Resolved)

test and quizzes

Added ability to allow instructors to enter a zero score in the gradebook for unsubmitted assessments.

SAM-801 - Allow student use of rich-text editor (FCKeditor) ( Resolved)

test and quizzes

Added ability to use FCKEditor for composing short answers.

SAM-862 - The ability to choose "Average" for the "Recorded Score if Multiple Submissions" ( Verified)

test and quizzes

Added ability to choose "average" score along with last score or highest score for "recorded score if multiple submissions."

SAM-863 - Add View All Submissions (With Average) to Student View of Submitted Assignments ( Resolved)

test and quizzes

Added view all submissions with average) to student view of submitted assignments.

SAM-869 - When sharing pool with more than 1 level of sub-pools, Samgio only shows two levels - the question pool level, and the first sub pool level ( Closed)

test and quizzes

Question pool with sub pools tree structure now accurately displayed.

SAM-921 - Improvement: No Assessment Templates/Types ( Closed)

test and quizzes

Displaying Assessment templates/types is now a configurable option (samigo.showAssessmentTypes=true/false (default=true)).

SAM-942 - Add method to allow importing QTI to Samigo via Web services. ( Resolved)

test and quizzes

Method added allowing QTI test imports via web services.

SAM-971 - Make Linear Access Logic Consistent ( Verified)

test and quizzes

Improve linear access logic to ensure that test takers are returned to the last question encountered if test is interrupted.

SAK-10416 - Allow custom implementations of search on external user providers ( Closed)

user membership

Allows custom implementations of search on external user providers.

SAK-19369 - Merge AnnotatedUrl- an iframe tool to trunk ( Closed)

web content

Added Annotated Url (sakai.iframe.annotatedurl), another type of iframe tool developed at the University of Michigan. The tool has a link to a target URL that is configured as a tool property.

CKEditor

Ticket

Project

Feature

SAK-20296 - Upgrade CKEditor to 3.5.2 to support IE9 ( Closed)

editor

Upgraded CKEditor to version 3.5.2.

SAK-17880 - Explore upgrade to CKEditor ( Resolved)

editor

Adds CKEditor support.

Kernel

Ticket

Project

Feature

KNL-328

kernel

Adopted a more secure format for storing passwords.

KNL-375 - RequestFilter - Improve Error Information on Servlet Exception ( Closed)

kernel

Improved error messaging for RequestFilter servlet exceptions.

KNL-383 - BaseContentResource should check for null objects ( Closed)

kernel

Improved BaseContentResource NULL checking.

KNL-403 - Promote manually added users to provided ( Closed)

kernel

Added check to ensure that if a user is added manually to a course site (e.g., non-provided) and the user subsequently appears in a provider group with the same role, then the user's site membership will be promoted to provided.

KNL-404 - There's no warning if email is not set up ( Closed)

kernel

BasicEmailService now issues warning in logs if send mail is attempted with no SMTP server defined (e.g., smtp@org.sakaiproject.email.api.EmailService).

KNL-413 - Improve Unit tests re special chars in ContentHosting ( Closed)

kernel

Added improved ContentHostingService unit tests with an emphasis on special characters and UTF8.

KNL-420 - addMember should throw exception for null role rather than fail with warning ( Closed)

kernel

BaseAuthzGroup now throws exception instead of failing silently if addMember is called without a supplied role.

KNL-428 - add isVisible method to determine tool visibility in a site for a user ( Closed)

kernel

Added new ToolManager isVisible method to permit checking on whether a tool is visible to the current user in this site, depending on permissions required to view the tool.

KNL-435 - Mark all static covers deprecated. ( Closed)

kernel

All Kernel static covers marked as deprecated.

KNL-447 - Support exceptions to dynamic tool localization ( Closed)

kernel

Added exception-handling support for dynamic tool localization.

KNL-467 - Sorting based on name should be cases insensitive. ( Closed)

kernel

ContentHostingCompartor sorting on name is now case insensitive.

KNL-497 - Method to check if a user is active, ie 'online' ( Closed)

kernel

Adds new UsageSessionService methods to check if a user is active, to retrieve a user's most recent active session or a list of user's most recent active sessions.

KNL-499 - Allow ability to turn off automatic "promotion" to provided user ( Closed)

kernel

Adds ability to turn off automatic "promotion" to provided user that was implemented in KNL-403 - Promote manually added users to provided ( Closed) .

KNL-500 - ability to retrieve the time of an Event. ( Closed)

kernel

Adds a new Event getEventTime method in order to return the time of an event.

KNL-541 - add generics to SecurityAdvisor stack ( Closed)

kernel

Adds generics to SecurityAdvisor.

KNL-542 - Improve SecurityAdvisor API to prevent missuse ( Closed)

kernel

Improved SecurityAdvisor API to better handle push/pop stack processing.

KNL-563 - apply kernel changes for dynamic resource loader ( Closed)

kernel

Added support for dynamic resource loader.

KNL-565 - Replace use of StringUtil.trimto null with common-lang method ( Closed)

kernel

Replace home-grown StringUtil.trimtoNull method with Apache commons-lang StringUtils.trimToNull.

KNL-570 - Add sakai property to set sendpartial Email property ( Closed)

kernel

BasicEmailService mail.*.sendpartial can now be set to either true or false (default=true).

KNL-572 - allow access rights holders (on project sites) to post to email lists by default. ( Closed)

kernel

Project site members with "access" role can now post messages to site by default.

KNL-580 - Utility to extract a manifest from a zip file ( Closed)

kernel

Utility method getZipManfest added to return a list of files in a *.zip archive together with each file's size.

KNL-585 - Allow tools to register their own email notification preferences ( Closed)

kernel

Tools are now permitted to register their own email notification preferences.

KNL-589 - Automatic file encoding detection ( Closed)

kernel

Added automatic file encoding detection.

KNL-662 - Add memory service method to evict expired Items ( Closed)

kernel

Added new memory service evictExpiredMembers method to evict expired objects from in-memory caches.

KNL-667 - Add generics to resourceloader ( Closed)

kernel

Added generics to ResourceLoader.

KNL-669 - Add new string in UsageSessionService for a container login ( Closed)

kernel

Added user.login.container to the UsageSessionService in order to permit institutions to track container logins (Shibboleth, CAS, etc.) vs direct, guest logins.

KNL-671 - No method to get users locale ( Closed)

kernel

Added method to get User's locale.

SAK-10416 - Allow custom implementations of search on external user providers ( Closed)

kernel

Extends the UserDirectoryService to permit searching of externally provided users and the retrieval of all aliases matching the

Entity Broker

Ticket

Project

Feature

SAK-18879 - Add version.kernel to eb provider ( Closed)

entitybroker

Adds adds version.kernel to ServerConfigEntityProvider.

SAK-18643 - Add the ability to specify the depth of object graph serialisable to JSON ( Closed)

entitybroker

Adds ability to specify the depth of a serializable object graph to JSON (entitybroker.maxJSONLevel; range 5-25.). Previously hard-coded to a depth of "7" in reflectutils JSONTranscoder.

SAK-18276 - Add the ability to retrieve the list of groups for a site. ( Closed)

entitybroker

Adds the ability to retrieve the list of groups for a site.

SAK-18103 - Add a custom action to the site provider, enabling the retrieval of user permissions. ( Closed)

entitybroker

Adds a custom action to the site provider, enabling the retrieval of user permissions (e.g., call urls like: /direct/site/SITEID/userPerms/calendar.json to retrieve the calendar permissions for the currently logged in user. Leave off the PREFIX (e.g., calendar) in order to retrieve all the current user's permissions for a specified site.

SAK-14256 - Add functionality to support search to EB ( Closed)

entitybroker

Adds searching via REST; entitybroker entities can now implement searchable and be added to search indexing.

Other services: common, edu-services, shortenedurl, content-review (api)

Ticket

Project

Feature

SAK-17821 - Add additional fields to SakaiPerson ( Closed)

common

SakaiPerson user profile information extended (staffProfile, universityProfileURL, academicProfileURL, publications, business_biography).

SAK-19155 - CLONE -Allow the retrival of localized status message ( Closed)

content-review

Retrieve localized message status from ContentReviewService.

SAK-19053 - CLONE -Add Error Status Code to ContentReviewItem ( Closed)

content-review

ContentReview item error status codes can now be stored and retrieved.

SAK-19080 - Sakai 2.8 : Record User Entered Grades : edu-services/gradebook-service ( Closed)

edu-services

User-entered grades now recorded. See also GRBK-736 - Prepare For Sakai 2.8: Record User Entered Grades (This JIRA doesn't not address the GB2 implementation of this feature) ( Closed) .

SAK-19028 - New Method in CourseManagement Service ( Closed)

edu-services

New method added to the CourseManagementService retrieve all currently active course offerings in a canonical course.

SAK-24227 - Make abstract interface that is pluggable with a variety of URL shortening methods. ( Closed)

shortenedurl

Provides a configurable shortening URL service that includes caching. Developers simply implement the ShortenedUrlService API, wire up their implementation code as a Spring bean and choose a URL shortening service such as the built-in RandomisedURLService or an external service such as Bit.ly (e.g., shortenedurl.implementation=org.sakaiproject.shortenedurl.api.RandomisedUrlService). It will then be used preferentially. See https://confluence.sakaiproject.org/display/SHRTURL/Home for more details. See also SAK-15653 - Add a tinyurl implementation to make sending URLs in emails etc simpler. ( Closed) .

Web services

Ticket

Project

Feature

SAK-18923 - New method needed: addConfigPropertyToPage ( Closed)

web services

Adds new web service addConfigPropertyToPage in order to set to set the 'is_home_page:true' page property when adding a Home page via web services.

SAK-18664 - Create binary assembly for webservices ( Closed)

web services

Binary assembly now generated.

SAK-18254 - new web service - getAllSitesForUser to include my Workspace ( Closed)

web services

Adds new web service getAllSitesForUser to include my Workspace as well as all other sites.

SAK-18236 - new web service signature for getUserId to get the userId associated with the session ( Closed)

web services

Adds new web service signature for getUserId in order to retrieve userId associated with the session.

SAK-18191 - new web service signature for getPagesAndToolsForSite to allow userid to be specified ( Closed)

web services

Adds new web service signature for getPagesAndToolsForSite to allow userid to be specified.

SAK-18124 - new web service - getPagesAndToolsForSite ( Closed)

web services

Adds new web service getPagesAndToolsForSite in order to retrieve an XML document of all pages on a site as well as all tools on each page.

SAK-18119 - new webservice - getUserId ( Closed)

web services

Adds new web service to get a user's ID, given their eid.

SAK-18115

web services

Adds new web service to allow html inline property to be set from resources tool / web services.

SAK-14321 - new web service - copyResources ( Closed)

web services

Adds new web service copyResources copy the resources from one site to another.

Configuration, localization

Ticket

Project

Feature

SAK-19312 - Add recaptcha properties ( Closed)

config

Added recaptcha properties for account. See also SAK-12489 - Allow captcha support for new account signups. ( Closed) , SAK-19267 - Rename properties in SAK-12489 (Captcha for new user accounts) ( Closed) .

SAK-17615 - add text/x-tex to filetypes ( Closed)

config

Added text/x-tex to filetypes.

SAK-15037 - Create internationalization mechanism to avoid duplication and de-synchronization of text shared across tools ( Closed)

config

Created shared i18n properties in /config project in order to minimize duplication and de-synchronization of text shared across multiple tools.

Language updates and additions

Release

Language

Country

locale

2.8.0

Catalan

Spain

ca_ES

2.8.0

English

United States

en_US

2.8.0

French

France

fr_FR

2.8.0

Japanese

Japan

ja_JP

2.8.0

Portuguese

Portugal

pt_PT

2.8.0

Russian

Russia

ru_RU

2.8.0

Spanish

Spain

es_ES

Providers

Ticket

Project

Feature

SAK-20225 - CLONE - Add memory service method to evict expired Items ( Closed)

providers

Added method to Memory service in order to evict expired cache items.

SAK-19821 - Add new groupProvider method to group providers ( Closed)

providers

Added new groupExists method to GroupProviders.

SAK-17816 - Add jpegPhoto mapping to JLDAP provider/UserDirectoryService ( Closed)

providers

Added jpegPhoto mapping to the JLDAP provider; if set, this will populate a user object property with the field from the directory.

Release support

Ticket

Project

Feature

SAK-20094 - Package demo with Tomcat 5.5.33 ( Closed)

pack

Package up demo with Tomcat 5.5.33.

SAK-20055 - Create separate antrun tasks to generate demo, binary and source artifacts ( Closed)

pack

Create separate antrun tasks to generate demo, binary and source artifacts.

Documentation

Ticket

Project

Feature

SAK-19879 - Update Skin Documentation for 2.8 ( Closed)

skins

Updated skin documentation for Sakai CLE 2.8.

SAK-19476 - Update Webdav instructions for 2.8 ( Closed)

webdav

Updated webdav instructions for Sakai CLE 2.8.

Conversion scripts

Upgrade Step

MySQL

Oracle

Notes

2.8.0

sakai_2_8_0_mysql_conversion.sql

sakai_2_8_0_oracle_conversion.sql

 

2.8.0

sakai_2_8_0_mysql_hbm_indexes.sql

sakai_2_8_0_oracle_hbm_indexes.sql

Starting up sakai-2.8.0 in order to populate an empty database (auto.ddl=true) can result in certain tools relying on Hibernate 3.2.7.ga to generate indexes to fail to do so. Check database and then run this script to add missing indexes.

External library upgrades

Ticket

Project

Feature

KNL-651 - Data serialization issue - file_path ( Awaiting Review)

kernel

Upgraded to maven-surefire-plugin 2.7.1.

KNL-615 - Update release plugin to version 2.1 ( Closed)

kernel

Upgraded to maven-release-plugin 2.1.

KNL-583 - Upgrade to Spring 2.5.6.SEC02 ( Closed)

kernel

Upgraded to Spring 2.5.6.SEC02.

KNL-529 - Upgrade to release plugin 2.0 ( Closed)

kernel

Upgraded to Apache commons-collections 3.2.1, commons-fileupload 1.2.2, commons-math 2.1 and log4j 1.2.16.

KNL-430 - Upgrade to Commons Lang 2.5 ( Closed)

kernel

Upgraded to Apache commons-lang 2.5.

KNL-374 - Upgrade log4j in common/lib to more recent version ( Closed)

kernel

Upgraded to log4j 1.2.15. Superceded by KNL-529 - Upgrade to release plugin 2.0 ( Closed) .

KNL-286 - Upgrade jUnit to 4.7 ( Closed)

kernel

Upgraded to JUnit 4.8.2.

SAK-19011 - Investigate upgrading Pluto version ( Closed)

portal

Upgraded to Pluto 1.1.7.

SAK-18761 - upgrade WURFL definitions to 2.0.18 ( Closed)

portal

Upgraded WURFL definitions to 2.0.18.

SAK-18622 - Upgrade org.apache.httpcomponents.HttpClient to version 4.0.1 ( Closed)

login

Upgraded org.apache.httpcomponents.HttpClient to 4.0.1.

SAK-18214 - Upgrade to Velocity 1.6.x ( Closed)

velocity

Upgraded to Velocity 1.6.3.

SAK-17553 - Add trimpath.js to the library. ( Closed)

js

Adds trimpath.js to /reference/library.

SRCH-44 - Upgrade to Lucene 2.9.4 ( Closed)

search

Upgraded full-text search engine library to Apache Lucene 2.9.4.

SRCH-36 - Upgrade digesting dependencies ( Closed)

search

Upgraded digesting libraries to Apache pdfbox 1.3.1, Apache Poi 3.7 and Apache Tika 0.8.

 

System requirements

Operating system (OS) choices

The Sakai CLE is OS neutral. It is typically run on any of the numerous Linux distributions such as CentOS, Debian GNU/Linux, Fedora, Gentoo Linux, Red Hat Enterprise Linux (RHEL), SuSe Linux, Ubuntu but is also run on Mac OS X server, Microsoft Windows and Sun Solaris. Operating systems other than Linux are not nearly as well tested, and all of the community QA servers are running Linux, so this is generally the recommendation.

Examples:

Cerritos College, Windows 2003.
Georgia Tech, RHEL.
Indiana University, RHEL.
Mount Holyoke College: Debian GNU/Linux.

Oxford University: Debian GNU/Linux.
Rutgers University: Sun Solaris.
University of California, Berkeley: Sun Solaris.
University of Cape Town: SuSe Linux.

University of Florida: RHEL.
Universidad de Murcia: CentOS.
University of Virginia: Fedora.
Virginia Tech: Ubuntu.

Java

Oracle's Sun Java SE 6, a.k.a Java 1.6, is the preferred version to use with the Sakai CLE. Certain files, such as *.jsp and *.jws, require compilation so downloading and attempting to use only the run time environment (JRE 6.0) will not suffice. Mac OS X 10.6 (Snow Leopard) includes the full version of Java SE 6 so Mac users do not need to install Java. If you find Sun's version and naming conventions confusing, see Sun Java SE Naming and Versions for an outline of their practices.

Oracle's Sun Java J2SE 5.0 (a.k.a Java 1.5) has completed the EOL process and is no longer supported. If are still running Java 1.5 please note that security vulnerabilities exist in JDK/JRE 5.0 updates 1.5.0_17 and earlier.

For Sakai 2.9 OpenJDK and JDK 7 are supported along with JDK 6. Previous releases would not work with OpenJDK.

Application server choices

The Sakai Community is overwhelmingly an Apache http/Apache Tomcat user community and the Sakai CLE is at home in such an environment. Some Several schools run their Tomcats with Windows IIS and nginx proxies without issue. Since Sakai CLE 2.7.0 a Websphere module was included in the release in order to facilitate deployment to a Websphere/Db2 production environment; however, support has waned and the Websphere option is currently considered deprecated. A few schools such as Hong Kong University of Science and Technology and the Universidad de Guadalajara report deploying Sakai on JBoss.

Icon
Sakai 2.8.0 and previous releases require Tomcat 5.5 out of the box but can be configured in custom builds to run under Tomcat 7. Tomcat 7 is the requirement for running Sakai 2.9.0+. There are some changes to the Tomcat configuration required to get Sakai to startup in the source or binary form under Tomcat 7. Please see this page for more information!

Database choices

Sakai CLE production installations typically run either Oracle 10g/11g or MySQL 5.0/5.1. Support for IBM Db2 was added for the Sakai CLE 2.7.0 release but for 2.8.0 DB2 conversion scripts were not updated or tested and are currently considered deprecated. A demo version of Sakai includes HSQLDB; it should never be deployed in production.

It should be noted that Sakai is not limited to these database choices and integration with other RDBMS systems is not difficult. In the past at least one installation used Microsoft SQL Server while requests for PostgreSQL integration are occasionally raised on the Sakai developers list. However, to date no one in the Sakai Community has stepped forward to support alternatives to either Oracle or MySQL, a prerequisite for adding additional database options to the release.

Australian National University, MySQL 5.1
Indiana University, Oracle 10g
Oxford University, MySQL 5.0

Stanford University, Oracle 10g
Texas State University, San Marcos, MySQL 5.1
University of Cape Town, MySQL 5.1

University of Florida, Oracle 11g
University of Virginia, MySQL 5.0
University of Michigan, Oracle 10g
Virginia Tech, Oracle 11g

Clustering, file storage and load balancing strategies

A typical Sakai CLE cluster is comprised of one or more application servers running one or more instances of Tomcat 5.5 operating either in standalone mode or behind the Apache HTTP 2.2 web server. Each Tomcat instance runs a full copy of the Sakai CLE. The cluster is backed by a single database providing a transactional store of information. Storing binary content outside the database is a configurable option in Sakai and highly recommended from a performance standpoint. Most Sakai schools with sizable user populations opt for network-attached storage (NAS) or storage area network (SAN) solutions. Load balancing is provided by Apache (using mod_jk, mod_proxy_balancer or mod_proxy_ajp) or dedicated hardware solutions such as F5 BIG-IP, NetScaler or Zeus.

Three examples should suffice:

University of Cape Town
User base: 27,000+
Cluster: six Dual Xeon 3.6 GHz 8G RAM, 64-bit SuSe Linux (4 x physical servers, 2 x VMWare servers).
App servers: Apache HTTP server 2.2, Tomcat 5.5, Sakai 2.7.1.
Database: MySQL 5.1, 2 x dual-core processors, 16G RAM.
File storage: SAN Disk shared via NFS.
Load balancing: Apache 2.2 with mod_jk.

University of Michigan
User base: 45,000+
Cluster: five Dell PowerEdge 1950 boxes, each with 16 GB RAM running 64-bit RHEL 5.x (a sixth PowerEdge 1950 is utilized outside the cluster as a search server).
App servers: Apache HTTP server 2.2, fronting a single Tomcat 5.5/Sakai 2.7.1 install. One Java 1.6 JVM is configured per server with a 6 GB heap.
Database: Oracle 10g running on a Sun Fire T5120 with 128 GB RAM and Solaris 10 as the OS.
File storage: allocated 6 TB of disk space and stored externally in a NetApp FAS3020 filer, NFS mount.
Load balancing: two NetScaler RS9800 Secure Application switches.

Indiana University
User base: 100,000+
Cluster: two HP DL740 servers, 8-way with 3.0 GHz CPUs, 64 GB RAM and an IBM ESS "Shark" SAN running nine virtual application servers.
App servers: each virtual server is allocated 2 CPUs and 3.6 GB RAM and runs Apache HTTP 2.2/Tomcat 5.5.
Database: the Oracle 10g database is also a virtual instance housed on a Dell 810, dual socket, Quad Core server. The database is allocated 8 CPU and 32 GB RAM.
File storage: allocated 7 TB of disk space and is stored externally utilizing two NetAppliance FAS920C filers, NFS mount.
Load balancing: two HP DL385 servers running Zeus ZXTM load balancers. The load balancers run under Red Hat Enterprise Linux (RHEL) within VMware virtual machines and the architecture allows for more horizontal scaling if required.

See also:

External Authentication choices

The Sakai CLE can integrate with a variety of external authentication services including CAS, Kerberos, LDAP, Shibboleth and WebAuth.

Examples:

Australian National University: LDAP.
Indiana University: CAS.
Georgia Tech: CAS.
Oxford University: WebAuth.
Pepperdine University: CAS.

Stanford University: Kerberos.
Stockholm University: Shibboleth.
University of California, Davis: CAS.
University of Delaware: LDAP.

University of Hawaii: LDAP.
University of Michigan: Kerberos.
University of Florida: Shibboleth.
Yale University, CAS.

Integrating with student information systems

Sakai Community institutions have integrated their Sakai CLE installations with Banner, Datatel and Peoplesoft as well as a variety of home-grown student information systems (SIS).

The Sakai CLE has two basic approaches to integrating data from external systems. Most sites use a combination of these approaches. The first approach is to use the internal Sakai "provider" APIs. These APIs are places for Sakai to "consult" while Sakai is running. There are APIs for User Identity, User Directory, Course Listing and User Roles.

User Identity API: allows Sakai to call local code to validate users when they log into the system. This commonly uses Kerberos, Active Directory or LDAP to validate the user's credentials.

User Directory API: allows user information such as name and e-Mail address to be retrieved from an external system such as LDAP or X.509. The User Directory API has provisions to allow the local site to make decisions when to display student information in order to meet FERPA requirements. Each institution has different interpretation of FERPA so the precise FERPA decisions are delegated to the User Directory API.

Course Listing API: consulted when the instructor is creating a course site - this API returns the list of externally stored rosters for which the current user is the instructor. The user can select from one or more of these external rosters to associate with the course they are creating.

User Role API: is consulted when users log in to determine which external rosters they user is a member of and what their role is within those rosters. The Sakai internal configuration is updated if there are any changes to an individual's roster status.

The above API's are "pull" APIs--they are consulted when the user logs in or tries to take some action. The Course List API described above does not auto-populate courses.

If there is a desire to "push" information into the Sakai CLE, there are two approaches - Quartz and web services.

Sakai utilizes an internal batch system called Quartz that provides a cron-like capability within Sakai. Quartz is used by creating a Java class that does the necessary work and then having Quartz schedule the regular execution of that Java code.

A more common approach to pushing configuration information into Sakai is through web services. Any of Sakai's APIs can be accessed by web services. Web service access points have been developed for many of the common Sakai APIs used for configuration. These SOAP web services can be called from PHP, Python, Perl, Java, .NET or any other language. The Sakai CLE web service data structures are kept simple to insure the widest possible interoperability with as many languages as possible. Administrators often build scripts to pull data from their SIS system and populate the Sakai CLE with that data. These scripts may be automated using cron or manually executed by the administrator at the proper time during a semester.

This combination of pull/push configuration capabilities allows for a very wide range of integration possibilities for the Sakai CLE.

 

Downloading

To download the Sakai CLE 2.8.3 release, you need to check out the code from our Subversion repository:

svn co https://source.sakaiproject.org/svn/sakai/tags/sakai-2.8.3/

Indie projects

A number of Sakai CLE projects (known collectively as "indie" projects) are currently not included in either the source archive or source check out. Instead, these projects are downloaded, installed in your local .m2 repository and then deployed to Tomcat as *.zip overlays during the Maven build process. If you need to apply any local customizations to these projects you must check out the code separately.

Indie project teams manage their own release cycles independently of the general Sakai CLE release cycle, permitting more frequent "off-cycle" maintenance releases for key projects such as the Kernel or Test and Quizzes. This means you can upgrade them in your release more frequently, if you desire.

Each Indie project site includes a variety of reports regarding the release, including Javadocs.

 

 

 

 

Installing

Demo install

Sakai CLE 2.8 install guide (demo) (for 2.8.2 and lower)

Binary install

Sakai CLE 2.8 install guide (binary) (for 2.8.2 and lower)

Source install

Sakai CLE 2.8 install guide (source)

 

Upgrading

Upgrading from an earlier version of Sakai typically involves a database conversion (for which scripts are supplied with the release), an update to custom skins and possibly changes to any custom code.

1.0 Database Conversions

A database conversion is typically required in order to upgrade from one Sakai version to another. Database conversion scripts - in distinct versions for MySQL and Oracle, respectively - are found in the reference/docs/conversion folder of the release or in our SVN repository.

In the same directory you will also find conversion scripts for earlier Sakai releases. Migration from an earlier version will require the successive application of all intermediate scripts (see the following table). You cannot, for example, move from 2.6.1 to 2.9.0 by applying a single script. You will need to run 6 or 7 scripts all in a row.

(warning) Note for oracle, some of the scripts will leave your indexes in an invalid state because of LONG->CLOB conversion. You will need to run this script to find the invalid/unusable indexes, THEN run the result of this script to alter these indexes.

select 'alter index '||index_name||' rebuild online;' from user_indexes where status = 'INVALID' or status = 'UNUSABLE'; 
-- Run the resulting SQL commands this script generates if any)

(warning) As a general rule, be sure to read through the conversion scripts before applying them. The conversion scripts are generic in the sense that they do not take into account any special customizations you may have made - such as new roles, or the deployment of additional tools or if you are migrating from 2.4.x - and they may complicate your migration with unintended consequences if you execute them blindly.

(minus) For conversions prior to 2.6 please see the 2.8 install guide. Conversions from much older are not very well supported or tested but should still work.

 

Upgrade Step

MySQL

Oracle

Notes

2.6.0

sakai_2_6_0_mysql_conversion.sql

sakai_2_6_0_oracle_conversion.sql

Use scripts updated in 2.6.x branch (r65964+). Include fixes for SAK-16751 - Comment out site.add.course backfill SQL ( Closed) , SAK-16753 - new 2.6 asn.share.drafts permission should be added into conversion script ( Closed) and SAK-16809 - 2.6.0 upgrade script has index, column add in wrong order, related to SAK-16554 ( Closed) . If you are upgrading from 2.5 please review SAK-15597 - Setting schedule: tool property always causes an exception. ( Closed) for an important property setting issue (not a database conversion issue).

2.6.0 to 2.6.x

sakai_2_6_0-2_6_x_mysql_conversion001_SAK-16668.sql

sakai_2_6_0-2_6_x_oracle_conversion001_SAK-16668.sql

SAK-16668 - assignments / private notes and model answers does not display proper error message for text over 255 characters ( Closed) : if you upgraded to Sakai 2.6.0 PRIOR to 1 Sept 2009 you must run this conversion to update data types in ASN_MA_ITEM_T and ASN_NOTE_ITEM_T.

2.6.0 to 2.6.x

sakai_2_6_0-2_6_x_mysql_conversion002_SAK-16548.sql

sakai_2_6_0-2_6_x_oracle_conversion002_SAK-16548.sql

SAK-17219 - Conversion script for 2.6.1 is slow to run on large assignment data sets and should be improved ( Closed) , SAK-16548 - Incorrect internationalization showing the grade NO GRADE ( Closed) : Matt Jones (UMich) reports that the original 2.6.0 to 2.6.1 conversion script for the assignment_content table "is inefficient, potentially locks tables and performs too many scans, especially if there are hundreds of thousands of rows." Matt has revised both the MySQL and Oracle conversion scripts to improve their performance.

2.6.0 to 2.6.x

sakai_2_6_0-2_6_x_mysql_conversion003_SAK-16847.sql

sakai_2_6_0-2_6_x_oracle_conversion003_SAK-16847.sql

SAK-16847 - asn.share.drafts permission should be added into 2.6.1 conversion script ( Closed) : adds asn.share.drafts to SAKAI_REALM_FUNCTION.

2.6.0 to 2.6.x

sakai_2_6_0-2_6_x_mysql_conversion004_SAK-10512.sql

sakai_2_6_0-2_6_x_oracle_conversion004_SAK-10512.sql

SAK-10512 - Abiliy to lock profiles ( Closed) : updates existing entries in SAKAI_PERSON_T setting the field locked to false if currently NULL.

2.6.0 to 2.6.1

sakai_2_6_0-2_6_1_mysql_conversion.sql

sakai_2_6_0-2_6_1_oracle_conversion.sql

Rollup of 2.6.0-2.6.x conversion scripts 001-004 above.

2.6.1 to 2.6.2

 

 

no schema changes

2.6.0 to 2.6.x

sakai_2_6_0-2_6_x_mysql_conversion005_SAK-14482.sql

sakai_2_6_0-2_6_x_oracle_conversion005_SAK-14482.sql

SAK-14482 - Mercury site has old assignments tool ( Closed) : replace the "mercury" site's sakai.assignment tool (deprecated since 2.5.0) with the sakai.assignment.grades tool.

2.6.2-2.7.0

sakai_2_7_0_mysql_conversion.sql

sakai_2_7_0_oracle_conversion.sql

 

2.7.0-2.7.1

sakai_2_7_0-2_7_1_mysql_conversion.sql

sakai_2_7_0-2_7_1_oracle_conversion.sql

 

2.7.1-2.7.2

sakai_2_7_1-2_7_2_mysql_conversion.sql

sakai_2_7_1-2_7_2_oracle_conversion.sql

 

2.8.0

sakai_2_8_0_mysql_conversion.sql

sakai_2_8_0_oracle_conversion.sql

2.7.1 to 2.8.0 database conversion.

2.8.0

sakai_2_8_0_mysql_hbm_indexes.sql

sakai_2_8_0_oracle_hbm_indexes.sql

Starting up sakai-2.8.0 in order to populate an empty database (auto.ddl=true) can result in certain tools relying on Hibernate 3.2.7.ga to generate indexes to fail to do so. Check database and then run this script to add missing indexes.

2.8.1sakai_2_8_0-2_8_1_mysql_conversion.sqlsakai_2_8_0-2_8_1_oracle_conversion.sqlConversion from 2.8.0 to 2.8.1 can result in lost mail messages. See SAK-21305 - 2.8.0 to 2.8.1 conversion loses mail messages ( Closed) for details on how to fix.This should only affect cases for which 2.8.0 was actually RUN in production, not if 2.8.0 is just one step in your upgrade process.
2.8.2sakai_2_8_1-2_8_2_mysql_conversion.sqlsakai_2_8_1-2_8_2_oracle_conversion.sql 
2.8.3sakai_2_8_2-2_8_3_mysql_conversion.sqlsakai_2_8_2-2_8_3_oracle_conversion.sql 
2.9.0sakai_2_9_0_mysql_conversion.sqlsakai_2_9_0_oracle_conversion.sqlFor languages other than English, Catalan and Spanish please see SAM-787 - Incorrect internationalization in survey questions ( Closed) .
2.9.1

sakai_2_9_1_mysql_conversion.sql

sakai_2_9_1_oracle_conversion.sql

 

 
2.9.2

sakai_2_9_2_mysql.sql

LTI 2_1_0_mysql_conversion.sql

 

sakai_2_9_2_oracle.sql

LTI_2_1_0_oracle_conversion.sql

 
2.0 Other Database Conversions

The Sakai CLE also includes data and schema conversions outside the standard scripts to address data integrity issues for assignments, content hosting and email archive. Below is a quick summary and overview of the process for each tool.

2.1 MailArchive conversion (2.5 -> 2.6)
SAK-13584 - Further Improve the Performance of the Email Archive and Message API ( Closed) , SAK-16554 - Email archive conversion script is difficult to use and requires a maven source repository ( Closed) : Sakai 2.6 improvements to the Message API require that implementers upgrading from a pre-2.6 version of Sakai run both the 2.6.0 conversion scripts and a second mailarchive-runconversion.sh script that can be found in the mailarchive module in order to update your existing mail archive data to take advantage of the 2.6 Email Archive performance improvements.
-- SAK-13584 Further Improve the Performance of the Email Archive and Message API. Note you have to run a bash conversion script on your old mail archive data for it to
-- appear in the new mail archive. The script is in the source as mailarchive-runconversion.sh. Please see the SAK for more information on this script or SAK-16554 for
-- updates to this script.
	  	 
	  	 CREATE INDEX IE_MAILARC_SUBJECT ON MAILARCHIVE_MESSAGE
 	  	 (
 	  	        SUBJECT                   ASC
 	  	 );
	  	 ALTER TABLE MAILARCHIVE_MESSAGE ADD COLUMN (
 	  	        SUBJECT           VARCHAR (255) NULL,
	  	        BODY              LONGTEXT NULL
 	  	 );
2.2 Assignments Tool conversion
(warning) This conversion was a part of the post-2.4 assignments branch so those migrating from a version already running this can disregard this step.

SAK-11821 - AssignmentService allows creation of duplicate submission objects, need to separate submitter_id out to form unique constrait, and improve tool performance by using new db columns ( Closed) : The assignment service previously permitted the creation of duplicate submission objects (i.e. two or more submissions for the same student and assignment). While the UI should prevent this from happening, at various stages in the evolution of the Assignments code, bugs, race conditions or other failures have led to duplicate objects being created. This conversion seeks to reconcile those duplicates and add database constraints to prevent this is the future.

In summary, the conversion script is necessary to

  1. Remove existing duplicate submission records, if any
  2. Prevent future submission duplicates by applying unique constraint on the ASSIGNMENT_SUBMISSION table
  3. Improve performance of the Assignment tool

The conversion script does the following to the existing ASSIGNMENT_SUBMISSION table in Sakai database:

  1. read in all tuples as AssignmentSubmission object, parse out data such as submitter_id, submit_time, submitted, and graded, and stores those attributes as separate columns in the ASSIGNMENT_SUBMISSION table;
  2. Runs though the table, combine and remove submission duplicates (tuples with same "context" and "submitter_id" combination);
  3. apply the unique constraint of "context" + "submitter_id" to ASSIGNMENT_SUBMISSION table.

There is a README file with detailed instructions on this process at https://source.sakaiproject.org/svn/assignment/tags/sakai_2-7-0.

2.3 Content Hosting
Migrating from 2.4 to 2.5 requires adding several columns to the database tables used by the Content Hosting Service (the service used by the Resources tool, Dropbox, filepicker and WebDAV). The conversion scripts contain DDL statements to accomplish those changes. You need to run these conversions scripts (or perform the equivalent operations manually) and then convert your existing Resources via one of the methods outlined below, before you will gain the performance improvements Sakai 2.5 offers.

The new columns added to the database tables support a switch from XML serialization to "binary-entity" serialization, and enable Resources to perform faster and use less memory. One of the key areas this impacts is improving the performance of quota calculations.

There are two methods for converting existing Resources, with the first being the recommended option, as it enables all performance improvements when completed:

  1. Run the conversion utility, which can be run on a live system. (See readme for more details.)
    • (warning) Systems running oracle should read the email threads copied to the comments section below.
  2. Let the code convert each Resource as it is accessed.
    • (warning) This is only recommended for implementations with small datasets, such as pilot deployments; otherwise you should use the above conversion utility.
    • (warning) While some performance benefits from the binary-entity serialization can be realized immediately using this method, others, such as the quota calculation improvements will not be available until all Resources have been accessed and converted.

Based on the state of the data in the Content Hosting Service tables, it will start up in one of two modes:

  1. Binary only - If the code detects on start-up that all of the XML fields are null – as would be the case after running the conversion utility – it will run in binary mode. The means the system will only read and write using binary-entity serialization, and you will be able to fully realize all the performance enhancements that it offers.
  2. Dual mode - If the code detects there is still data in the XML fields – as would be the case if the conversion utility has not be run – it will run in dual mode. This means the system will be capable of reading both XML-serialized and binary-entity-serialized resources, but will write using only binary, and will convert any XML data it encounters into binary data. This gives you some of the performance benefits of binary-entity serialization without running the conversion utility, but you will never get the quota-calculation improvements unless all Resources end up converted.
3.0 Portfolios (OSP) permission settings
SAK-13205 - Permissions for CIG Participant are empty for 2.5 upgrade ( Closed) : if you are upgrading from a pre-2.5.0 version of Sakai, then you need to force conversion of the OSP permissions by setting osp.upgrade25=true in your sakai.properties file. (See also discussion.)

4.0 Deprecated Discussion Tool

Commencing with Sakai 2.5, Sakai packaged distributions, tags or maintenance branches no longer include the Discussion tool. It has been retired and removed from the release, since there was no longer an active project team supporting the tool nor actively used by production institutions. feedback The Forums tool provides a viable alternative.

If you are upgrading and previously used the Discussion tool, you have two options:

  1. Continue using Discussion. A 2.5-compatible version of the Discussion tool is available in Contrib. You can build it and add it to your Sakai instance. No one has committed to supporting this version of the tool though, and you should not rely on it remaining available for future Sakai releases.
  2. Migrate Discussion content to Forums. A utility for converting Discussion tool content to Forums tool content is available in Contrib. See the README.TXT file for more information.

 

Configuring

1.0 Create a sakai.properties file

The sakai.properties file is a central configuration file that is typically stored in a /sakai subdirectory relative to the Tomcat home directory ($CATALINA_HOME). It is a non-XML text file containing a series of key/value pairs that is read using the load method of java.util.properties. Settings in sakai.properties govern everything from setting your institution's name to configuring your database. All settings in sakai.properties are read on startup; any changes you make subsequently will only take effect when you restart web application server.

For a source installation the default default.sakai.properties file is located in the config module:

sakai-src/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties

A sample sample.sakai.properties file that documents many of the standard properties can also be found in config:

sakai-src/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/sample.sakai.properties

(warning) The bin package does not include a sakai.properties file. This is a deliberate exclusion; it eliminates the possibility of overwriting a local sakai.properties file if a bin package is opened over an existing Sakai installation.

If you need to override the default settings you must create your own sakai.properties file either from scratch or from a known working copy adding new key/value settings in order to customize your installation. As examples we recommend that you review the default.sakai.properties and/or sample.sakai.properties files included in the source installation or in the appropriate maintenance branch. Since any component property can in principle be overridden by a sakai.properties setting, sample sakai.properties files will show only a small fraction of all the possible settings.

The default location for your local sakai.properties file is $CATALINA_HOME/sakai. This folder is not created by Maven during the build and deployment process, so you will have to create it manually or via a script. You can also store Sakai's configuration files outside of your web application server's file hierarchy. For example, in a development environment you may find yourself frequently reinstalling Tomcat and unless you create a build script to automate the Tomcat installation and configuration process avoiding having to recreate $CATALINA_HOME/sakai and sakai.properties each time has its advantages.

To locate your properties file outside of your web application server environment modify the Java startup command or the JAVA_OPTS environment variable and set a system property named sakai.home. Make sure your external location is readable and writable by your web application server.

-Dsakai.home=/path/to/desired/sakai/home/
(info) For list of sakai.properties settings see the Sakai Properties Reference; for detailed documentation on the full variety of possible sakai.properties settings, see the sakai_properties.doc in /reference/docs/architecture/sakai_properties.doc.

2.0 Configure home page tool set per site

Tool collections for the home page can be configured for each site type. However, if the wsetup.home.toolids.* property is not set, the Worksite setup tool will default to the following set of tools for the home page: sakai.iframe.site, sakai.summary.calendar, sakai.synoptic.announcement, sakai.synoptic.chat, sakai.synoptic.messagecenter. Synoptic tools will be added or dropped from home page depending on whether their linked tool exists in the site or not. See SAK-15504 - Upgraded site: editing My workspace leads to duplicate Home ( Closed) and SAK-16747 - tools are not auto-added into Home tool page ( Closed) for more details.

wsetup.home.toolids.count=5
wsetup.home.toolids.1=sakai.privacy
wsetup.home.toolids.2=sakai.iframe
wsetup.home.toolids.3=sakai.synoptic.announcement
wsetup.home.toolids.4=sakai.synoptic.chat
wsetup.home.toolids.5=sakai.synoptic.messagecenter

3.0 Work site setup group helper

A new group helper is enabled by default (see SAK-13413 - Group creation enhancement ( Closed) for more details). Site maintainers can now create groups based on sections and roles. To switch back to the old 2.5 style of group helper (ad-hoc only), one needs to add following setting in sakai.properties:

wsetup.group.helper.name = sakai-site-manage-group-helper 

4.0 Session timeout warning

Sakai includes a property called inactiveInterval@org.sakaiproject.tool.api.SessionManager, which dictates the length of inactive time before a users session times out and allows for the enabling of a session timeout warning. Session status is now checked by the Sakai portal. If the remaining session time is less than the warning time (say 10 minutes). When a session expires, the any page requests are redirected to the URL indicated by the loggedOutUrl sakai property. See SAK-13987 - Session Timeout Popup Utilizing Polling data from entity broker ( Closed) SAK-8152 - Sakai should warn a user before the user's session times out and data is inadvertently lost ( Closed) for more details.

To enable the session timeout warning, set the following properties in your local sakai.properties with a time interval of your choosing:

timeoutDialogEnabled=true
timeoutDialogWarningSeconds=600

5.0 Configure email

Enabling Sakai to both send and receive email requires setting a number of properties in sakai.properties. In order to send mail Sakai requires the address (name or IP) of an external SMTP server that will accept mail from Sakai:

smtp@org.sakaiproject.email.api.EmailService=some.smtp.org

Sakai's SMTP server is Apache James. Most sys admins prefer running a standard mailer like Postfix on port 25 (rather than James directly) and configuring it to forward requests to Sakai. You may also currently have a mailer service running on port 25 (Linux usually has it running by default). So consider setting James to run on a different port (e.g., 8025) in order to avoid conflicts.

To enable Sakai to receive mail you'll need to set the following properties:

# flag to enable or disable James for incoming email (true | false)
#Default=false.
smtp.enabled=true

# dns addresses used by James for incoming email.
smtp.dns.1=255.255.255.1
smtp.dns.2=255.255.255.2

# SMTP port on which James runs.  
# Recommend running on 8025, and using a standard mailer on 25 to forward mail to Sakai.
# Default=25.
smtp.port=8025

Additional settings can be enabled to add support emails for a variety of tasks.

# Email support address used in incoming email rejection messages.
mail.support=address@somedomain

# Email address to send errors caught by the portal, and user bug reports in response.
portal.error.email=address@somedomain

# Email address used as the "from" address for any email sent by Worksite Setup tool or Site Info tool.
setup.request=address@somedomain

# Send an email to the user when the user is added.
notifyNewUserEmail=true

6.0 Configure logging

Once you have Sakai installed, configured and started, you can monitor Sakai by watching the logs. The log level for the standard Sakai source code and the demo is set to show info and warnings only. Watch for the WARN: messages. There are going to be some "normal" ones at startup, and some will likely slip by at runtime, but any warning is potentially something you might want to check out.

Logging levels can be specified in sakai.properties. This augments and overrides the levels set in the default config file. Example:

log.config.count=3
log.config.1 = ALL.org.sakaiproject.log.impl
log.config.2 = OFF.org.sakaiproject
log.config.3 = DEBUG.org.sakaiproject.db.impl

This uses the established (if awkward) method of having a name.count followed by name.1, name.2 etc. to form an array of strings for the value "name". In this case, the name is "log.config". The values are of the form LEVEL.logger, and the possible levels are: OFF TRACE DEBUG INFO WARN ERROR FATAL ALL.

Sakai uses log4j for logging. See the official log4j documentation for more information about how to configure it if you have questions, but a few notes are collected here below.

To change the logging for Sakai in the source modify kernel/kernel-common/src/main/config/log4j.properties the following property:

log4j.logger.org.sakaiproject=INFO

To turn on debug logging for all of Sakai, change the value from INFO to DEBUG. In order to enable debug logging for a single Sakai components, add a line such as in the following example, which will leave most of Sakai at INFO, but generate DEBUG level messages for the SQL service:

log4j.logger.org.sakaiproject=INFO
log4j.logger.org.sakaiproject.component.framework.sql.BasicSqlService=DEBUG

The logging controls are part of the LogConfigurationManager, implemented as a component in the Kernel. It can be disabled, if that's desired, with an entry in sakai.properties:

enabled@org.sakaiproject.log.api.LogConfigurationManager = false

For Mac and *nix systems, the most important log is found in Tomcat's logs/catalina.out. It can be instructive to watch this log as Tomcat is starting up, by using a startup command like the following:

bin/startup.sh; tail -f logs/catalina.out

Tomcat on Windows tends to be a little more puzzling about its logs, and it includes more of them, but its default behavior is to open catalina.out in a new window as soon as you start Tomcat. If you need more information about the logs in Windows, we'll refer you to the official Tomcat documentation.

(info) The SMTP server logs from Sakai will be written to the $CATALINA_HOME/sakai/logs directory.

7.0 Managing temporary files

Depending on usage, Sakai may create many large temporary files in the system temporary file storage location (e.g. /tmp). It is a good practice to routinely remove temporary files older than a day, especially if you have a lot of users or have heavy usage of mail sending with attachments. Note that you should not simply remove all temp files on a schedule as some of them may be in active use (also be careful about removing temp files which are used by other processes).

 

New properties, permissions

1.0 Property additions/changes

Release

Tool/Service

Property

Default

Ticket

Change

2.8.0

account

user.recaptcha.enabled
#user.recaptcha.public-key
# user.recaptcha.private-key

false

SAK-12489 - Allow captcha support for new account signups. ( Closed) , SAK-19267 - Rename properties in SAK-12489 (Captcha for new user accounts) ( Closed)

Enable/disable reCAPTCHA.   To configure, signup at http://www.google.com/recaptcha, get the API keys, and plug it into sakai.properties as in the description.

2.8.0

assignments

assignment.letterGradeOptions

 

SAK-18752 - Provide a way to customize letter grades in the Assignments tool ( Closed)

Provide a way to customize letter grades in the Assignments tool.  Values specified will display in the drop-down list for letter grade assignment.

2.8.0

basiclti

basiclti.outcomes.enabled

false

SAK-24044 - Add Support for Basic Outcomes and Settings Service ( Closed)

Added support for basic outcomes and settings service.

2.8.0

basiclti

basiclti.roster.enabled

false

SAK-24059 - Implement IMS BLTI Context Memberships Service ( Closed)

Allows an external tool (if granted proper permissions) to retrieve a course roster for the course that they were launched from. This allows the launch to specify a URL that contains some resource content.
NOTE:  Experimental Feature

2.8.0

basiclti

basiclti.contentlink.enabled

false

SAK-24054 - Add Support for the IMS BLTI ext_resource_link_content extension ( Closed)

This allows the launch to specify a URL that contains some resource content.   
NOTE:  Experimental Feature

2.8.0

common

profile.autoCleanUp

true

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due


Enables a listener that looks for user.del events and when they happen remove that users profiles.

2.8.0

editor

wysiwyg.editor


Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due

Addition of option to specify ckeditor. Please see documentation prior to implementation
NOTE:  Experimental Feature

2.8.0

entity broker

entitybroker.maxJSONLevel

7

SAK-18643 - Add the ability to specify the depth of object graph serialisable to JSON ( Closed)

Add the ability to specify the depth of object graph serialisable to JSON
Possible values
1-7

1.2.1

kernel

promoteUsersToProvided@org.sakaiproject.authz.api.AuthzGroupService

true

KNL-499 - Allow ability to turn off automatic "promotion" to provided user ( Closed)

Adds ability to turn off automatic "promotion" to provided user that was implemented in KNL-403

1.2.1

kernel

mail.*.sendpartial

true

KNL-570 - Add sakai property to set sendpartial Email property ( Closed)

Property added to set sendpartial Email

1.2.1

kernel

sakai.X-UA-Compatible

IE=EmulateIE8

KNL-697 - Create compatilbity patch for IE9 ( Closed)

Property added to pass X-UA-Compatible header for Compatibility mode. Default to EmualteIE8

1.2.1

kernel

load.bundles.from.db

false

KNL-563 - apply kernel changes for dynamic resource loader ( Closed)

Property added to load msg bundle data from data base

1.2.1

kernel

load.bundles.from.db.timeout

30000

KNL-563 - apply kernel changes for dynamic resource loader ( Closed)

Property added to control the number of milliseconds before rechecking database for updates, the default is 30 secs.

2.8.0

login

login.k2.authentication.autoProvisionUser
#top.login = false
#container.login = true
#login.k2.authentication = true
# login.k2.authentication.vaildateUrl = http://localhost:8080/var/cluster/user.cookie.json?c=

false

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due

,

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due


Create a new container authN filter which authenticates against K2

NOTE:  Experimental Feature

2.8.0

msgcntr

mc.notificationDefault

1

SAK-24628 - Feature Request: Please allow an institution to set a default preference for the "Watch" notification email functionality in Forums 2.7 ( Closed)

Allows an implementation to set a default preference for the "watch" notification email functionality introduced in 2.7
Possible values
0= email_none
1=email_reply_to_my_message
2=email_reply_to_any_message

2.8.0

osp

xslPortal.displayToolCategories

true

SAK-18831 - add configuration option to turn tool categories off in xslt charon portal ( Closed)

Add configuration option to turn off tool categories in xslt charon portal

2.8.0

portal

display.users.present.iframe

false

SAK-19129 - Eliminate the Presence iFrame and Replace with jQuery.Ajax calls to retrieve the list of users ( Closed)

Move the presence from an iFrame into a div - controllable by a series of
properties. If you set this property to true, Sakai will go back to its old behavior.

2.8.0

portal

timeoutDialogEnabled

true

SAK-19148 - Suggest Changing the Default timeoutDialogEnabled property to be "True" ( Closed)

Existing property where the default setting has been changed from false to true.

2.8.0

portal

timeoutDialogWarningSeconds

600

SAK-19148 - Suggest Changing the Default timeoutDialogEnabled property to be "True" ( Closed)

Change the "settle time" before the timeout code starts to operate to 60 second.
This property is used in combination with the previous. 

2.8.0

portal

gatewaySiteUrl

 

SAK-19089 - Ability to set a url for the gateway site ( Closed)

Adds ability to specify a URL

2.8.0

portal

portal.allow.minimize.tools

true

SAK-18687 - Ability to collapse site navigation ( Closed)

Allows the ability to minimize the tools where only the icons display.

2.8.0

portal

portal.allow.minimize.navigation

true

SAK-18687 - Ability to collapse site navigation ( Closed)

Allows the ability to minimize the navigation of top logo.

2.8.0

portal

portal.pda.bypass

\\.jpg$|\\.gif$|\\.js$|\\.png$|\\.jepg$|\\.css$|\\.zip$|\\.pdf
.mov$|
.json$|
.jsonp$
.xml$|
.ajax$|
.xls|
.xlsx|
.doc|
.docx

SAK-20035 - PDA Portal Must Pass Through non-HTML URLs ( Closed)

To override the default regular expression add this property.  To specify a different regular expression for a particular Sakai tool, use a property with this pattern:
portal.pda.bypass.sakai.samigo=
.css$|
.zip$|
.pdf$

2.8.0

portal

portal.add.mobile.link

false

SAK-19787 - Suspected usability issue in PDA portal - 86% bounce rate ( Closed)

Enabling this property (ie true), adds mobile version tab at the top of the interface.

2.8.0

portal

portal.pda.autoredirect

true

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due


There is a footer added to the bottom of the page with a link 'Switch to classic view'. If followed, this will redirect back to the normal portal and set a cookie for that session which holds this preference. If this cookie is set, this will disable the redirect until the user closes and quits their browser.

2.8.0

presence

display.users.present.myworkspace

false

SAK-19130 - Change Default for Presence in My Workspace ( Closed)

Existing property where the default setting has been changed from true to false. Presence is now turned off in MyWorkspace

2.8.0

profile2

profile2.official.image.enabled

false

PRFL-90 - Allowing using official photos for profile2 ( Closed)

Enables access/user to official institutional image for profile image

2.8.0

profile2

profile2.official.image.source

url

PRFL-90 - Allowing using official photos for profile2 ( Closed)

Tells the system what type of official photo to look for. When url is selected, system will look in the PROFILE_IMAGES_OFFICIAL_T for a record
Possible values
url
provider

2.8.0

profile2

profile2.official.image.attribute

jpegPhoto

PRFL-90 - Allowing using official photos for profile2 ( Closed) SAK-17816 - Add jpegPhoto mapping to JLDAP provider/UserDirectoryService ( Closed)

Used when profile2.official.image.source=provider is configured. 
attributre should match the value your provider populates in the properties for a User.  Please see SAK-17816 - Add jpegPhoto mapping to JLDAP provider/UserDirectoryService ( Closed) for more information

2.8.0

quartz scheduler

scheduler.loadjobs

int

SAK-19178 - Schedule Event Log Purge for Job Scheduler During Initial Startup ( Resolved)

allows injecting job configurations into the SchedulerManagerImpl that will be scheduled on startup
Possible values
init
true

1.0.1

shortenedurl

shortenedurl.implementation

 

SAK-24227 - Make abstract interface that is pluggable with a variety of URL shortening methods. ( Closed)

Used to set service URL for shortened url is implemented.

2.8.0

site info

siteManage.validateNewUsers

false

SAK-18997 - Add support for Account Validator ( Closed)

Add support for Account Validator

2.8.0

site info

siteinfo.prohibited_permission_for_joiner_role

site.upd

SAK-18462 - Ability to restrict joiner role selection to non-maintainer roles ( Closed)

Adds ability to restrict joiner role selection to non-maintainer roles. 
Possible values
List of permissions that shouldn't be possessed by roles for site joiner.

2.8.0

test and quizzes

samigo.canRecordAverage

false

SAM-862 - The ability to choose "Average" for the "Recorded Score if Multiple Submissions" ( Verified)

Adds functionality to choose "Average" for the "Record Score if Multiple Submissions"

2.8.0

test and quizzes

samigo.showAssessmentTypes

true

SAM-921 - Improvement: No Assessment Templates/Types ( Closed)

Addition of setting to remove the display of "Assessment Types"

2.8.0

web content

sakai.iframe.annotatedurl

 

SAK-19369 - Merge AnnotatedUrl- an iframe tool to trunk ( Closed)

 

2.0 New/changed permissions

Release

Tool/Service

Permission

Notes

2.8.0

 

 

 

 

Database support

The Sakai CLE supports the following production-grade databases:

Database

Driver

Notes

MySQL 5.1.x

MySQL Connector/J 5.1.13+

(minus) Sakai requires transaction support. In the case of MySQL you must implement the InnoDB storage engine to ensure proper transaction handling.

MySQL 5.0.x

MySQL Connector/J 5.0.4+

(minus) Sakai requires transaction support. In the case of MySQL you must implement the InnoDB storage engine to ensure proper transaction handling.

Oracle 11g

OJDBC

(warning) 2.8 was not tested using Oracle 11g; however, both Virgina Tech and the University of Florida are using Oracle 11g with their Sakai deployments.
(warning) Oracle recommends using the latest 11g driver if you are using Java 6 with either 10g or 11g; with Java 6 in combination with the 11g driver, it's recommended that you use kernel-1.2.1+ (2.8), kernel-1.1.11+ (2.7) or kernel-1.0.x (r87324+) in order to include the fix for KNL-637.

Oracle 10g / 9i

OJDBC

(warning) Both Oracle 10g AND 9i users must use the 10g driver; the latest 10g "Release 2" (10.2.x) or higher is recommended.
(warning) Oracle recommends using the latest 11g driver if you are using Java 6 with either 10g or 11g; with Java 6 in combination with the 11g driver, it's recommended that you use kernel-1.2.1+ (2.8), kernel-1.1.11+ (2.7) or kernel-1.0.x (r87324+) in order to include the fix for KNL-637.

DB2

 

Deprecated

Choose the appropriate MySQL or Oracle JDBC driver (or connector) for your installation. For MySQL, download the *zip/*tar.gz archive, extract its contents and copy the mysql-connector-java-<version>-bin.jar to $CATALINA_HOME/common/lib. For Oracle download the ojdbc14.jar file and copy it to $CATALINA_HOME/common/lib.

(info) You will not need to create Sakai database objects (tables, indices, etc) when setting up your database. Sakai generates its own database schema automatically during the Tomcat setup process via the autoDDL setting in sakai.properties.

In actuality, Sakai is not limited to these database choices and integration with other RDBMS systems is not difficult. In the past at least one installation used Microsoft SQL Server while requests for PostgreSQL integration are occasionally raised on the Sakai developers list. However, to date no one in the Sakai Community has stepped forward to support alternatives to either Oracle or MySQL, a prerequisite for adding additional database options to the release.

(minus) Irrespective of whether you utilize MySQL, Oracle or DB2 be sure you have configured your database to use the UTF-8 character set. Failure to do so will result in range of issues when attempting to use Unicode characters in Sakai. Consult your Db documentation or a local DBA for instructions on how to set your database up properly.

If you are uncertain as to how your database is currently configured, you can check with a query. Here is a sample query for checking an Oracle instance:

SQL> select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';

VALUE
--------------------------------------------------------------------------------
AL32UTF8

For MySQL, the command to see what encoding your database is currently set to is "show create database sakai", assuming, of course, that your database is named "sakai". e.g.:

mysql> show create database sakai;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| sakai | CREATE DATABASE `sakai` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

Converting a database from one character set to another is a non-trivial operation, particularly if it is a large production database. We recommend strongly that you verify this aspect of the database creation and configuration process before deploying Sakai.

1.0 Configure the database

By default, all Sakai distributions are configured to use an in-memory version of HSQLDB. HSQLDB is provided for testing/demo purposes only and should not be run in production.

Whatever database you choose to use you will need to modify at a minimum the following connection settings in sakai.properties:

url@javax.sql.BaseDataSource
username@javax.sql.BaseDataSource
password@javax.sql.BaseDataSource

2.0 Set the database username and password

Set your database username and password:
# DATABASE CONFIGURATION - make sure to modify details to match your particular setup

# The username and password. The defaults are for the out-of-the-box HSQLDB. Change to match your setup.
username@javax.sql.BaseDataSource=yourDbUserName
password@javax.sql.BaseDataSource=yourDbPassword

3.0 Set the database connection

HSQLDB Sample Configuration

HSQLDB is Sakai's default database. Remember to comment out its settings should you choose to run Sakai utilizing either MySQL or Oracle.

## HSQLDB settings - on by default
vendor@org.sakaiproject.db.api.SqlService=hsqldb
driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDriver
hibernate.dialect=org.hibernate.dialect.HSQLDialect
validationQuery@javax.sql.BaseDataSource=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
# Two hsqldb storage options: first for in-memory (no persistence between runs), second for disk based.
#url@javax.sql.BaseDataSource=jdbc:hsqldb:mem:sakai
url@javax.sql.BaseDataSource=jdbc:hsqldb:file:${sakai.home}db/sakai.db
MySQL Sample Configuration

Locate the MySQL configuration block, uncomment the settings and save your changes. Make sure you modify the data source, username and password settings to match your local environment. Do not forget to comment out the HSQLDB and Oracle settings.

# MySQL settings - make sure to alter as appropriate
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai?useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

# To get accurate MySQL query throughput statistics (e.g. for graphing) from the mysql command
# show status like 'Com_select'
# This alternate validation query should be used so as not to increment the query counter unnecessarily when validating the connection:
#validationQuery@javax.sql.BaseDataSource=show variables like 'version'
Oracle Sample Configuration

Locate the Oracle configuration block, uncomment the settings and save your changes. Make sure you modify the data source, username and password settings to match your local environment. Do not forget to comment out the HSQLDB and MySQL settings.

# Oracle settings - make sure to alter as appropriate
vendor@org.sakaiproject.db.api.SqlService=oracle
driverClassName@javax.sql.BaseDataSource=oracle.jdbc.driver.OracleDriver
#hibernate.dialect=org.hibernate.dialect.Oracle9iDialect
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
url@javax.sql.BaseDataSource=jdbc:oracle:thin:@your.oracle.dns:1521:SID
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

(warning) Oracle users may experience performance issues with certain of the SQL settings that work for HSQL and MySQL. Oracle users can reduce Db load by uncommenting the following settings:

# For improved Oracle performance (from the University of Michigan)
#validationQuery@javax.sql.BaseDataSource=
#defaultTransactionIsolationString@javax.sql.BaseDataSource=
#testOnBorrow@javax.sql.BaseDataSource=false

4.0 Set auto.ddl=true

(info) On startup, Sakai will generate all database objects (tables, keys, constraints, etc.) automatically, obviating the need to run DDL scripts manually per the sakai.properties setting auto.ddl.
# establish auto.ddl - on by default
auto.ddl=true
#auto.ddl=false

(warning) Once the database schema is created you should set auto.ddl=false.

5.0 Install MySQL 5.1 / 5.0

Configuring the Sakai CLE to use MySQL is an excellent option both for local development and production purposes.

(minus) Sakai requires transaction support. In the case of MySQL you must implement the InnoDB storage engine to ensure proper transaction handling.

(warning) Users upgrading from MySQL 5.0 to MySQL 5.1 on a Mac have reported name comparison problems on startup (for more info see http://collab.sakaiproject.org/pipermail/sakai-dev/2010-June/008066.html. This issue is solved by specifying the following property in a local my.cnf configuration file:

lower_case_table_names=1

(info) You will not need to create Sakai database objects (tables, indices, etc) when setting up your database. Sakai generates its own database schema automatically during the Tomcat setup process via the autoDDL setting in sakai.properties.

(info) Case sensitivity. In most varieties of UNIX, MySQL is case sensitive since the underlying operating system determines the case sensitivity of database and table names. This is not the case for MySQL running in Windows which is case insensitive. Previous MySQL conversion scripts contained a mixture of upper case and lower case statements which occasionally caused problems for upgraders; for 2.8 we opted for lower case for the syntax while leaving the table and field names upper case. Testing on MySQL 5.1 did not reveal any issues with this choice.

Before installing MySQL, confirm whether or not it is already installed on your system by checking the version from the command line:

mysql --version
mysql  Ver 14.14 Distrib 5.1.52, for apple-darwin10.3.0 (i386) using readline 5.1

If MySQL is not installed download MySQL 5.1/5.5 binaries or source from http://dev.mysql.com/downloads/. Linux users should install MySQL using a package or binaries if possible. Choose the standard configuration. Windows users should consider installing MySQL as a service. Remember to include MySQL's /bin directory in your PATH statement.

MySQL 5.5: http://dev.mysql.com/downloads/mysql/5.5.html

MySQL 5.1: http://dev.mysql.com/downloads/mysql/5.1.html

Assign a password for the root account:

mysql -u root -pmysqlpassword
5.1 Set MySQL environment variables
MYSQL_HOME

Set the MYSQL_HOME environment variable to point to the base directory of your MySQL installation. In the example below, the path points to a symbolic link file rather than the actual MySQL installation directory. You can create a symbolic link ("sym link") in Unix using the ln -s command (e.g., ln -s mysql-5.1.46-osx10.6-x86_64 mysql).

Unix/Mac:

export MYSQL_HOME=/usr/local/mysql

Windows:

set MYSQL_HOME=C:\mysql
PATH

Add MySQL's /bin directory to your PATH variable.

Unix/Mac:

export PATH=$PATH:$CATALINA_HOME/bin:$JAVA_HOME/bin:$M2_HOME/bin:$MYSQL_HOME/bin:$PHP_HOME/bin:$SUBVERSION_HOME/bin:$USR_LOCAL/bin

Windows:

;C:\mysql\bin
5.2 Create a my.cnf/my.ini configuration file
You can configure MySQL to read a wide variety of startup options from a file named my.cnf. Settings are scoped and can be overridden by file location:

Scope

Location

Override

global

/etc/my.cnf

 

server-specific

binary install: /usr/local/mysql/data/my.cnf; source install: /usr/local/var/my.cnf

global

user

~/my.cnf

global, server-specific

Below is a minimalist MySQL 5.1 configuration file for a development laptop /etc/my.cnf:

[mysqld]
default-storage-engine=InnoDB
lower_case_table_names=1

(warning) Restart MySQL in order for the new settings to take effect.

5.3 Create a "sakai" database and user account
Create a Sakai database with a default character set of UTF-8. Then create a "sakai" database user and password and end by refreshing the database permissions (e.g., "flush privileges"):
mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 272
Server version: 5.1.46 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database sakai default character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on sakai.* to sakaiuser@'localhost' identified by 'sakaipassword';
Query OK, 0 rows affected (0.00 sec

mysql> grant all on sakai.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit

 

Deprecations, removals

Release

Capability

Status

Notes

2.8.0

Blogger

retired

Removed from the build.

2.8.0

Reports

retired

Removed from the build.

2.8.0

WAS

deprecated

The Websphere WAS integration project has been deprecated due to lack of community support. It is anticipated that the WAS project will be removed from the 2.9.0 release if no one steps forward to support the project.

2.8.0

DB2

deprecated

The DB2 conversion scripts have been deprecated due to lack of community support. The scripts are currently incomplete and untested. It is anticipated that DB2 support will be dropped for future CLE releases if community support is not forthcoming.

 

Known issues

Open 2.8-related tickets with a priority of critical or higher.

For a listing of all open 2.8 related tickets with a priority of critical or higher, see:

https://jira.sakaiproject.org/secure/IssueNavigator.jspa?mode=hide&requestId=13390

Open 2.x tickets

For listings of all open 2x-related issues see:

Blocker Critical Major Minor, trival

Indie Projects

A number of Sakai CLE projects (known collectively as "indie" projects) are currently not included in either the source archive or source check out. Instead, these projects are downloaded, installed in your local .m2 repository and then deployed to Tomcat as *.zip overlays during the Maven build process. If you need to apply any local customizations to these projects you must check out the code separately.

Indie project teams manage their own release cycles independently of the general Sakai CLE release cycle, permitting more frequent "off-cycle" maintenance releases for key projects such as the Kernel or Test and Quizzes. This means you can upgrade them in your release more frequently, if you desire.

Each Indie project site includes a variety of reports regarding the release, including Javadocs.

Older Releases

The Sakai CLE 2.6 series is now unsupported. The release of Sakai CLE 2.8.0 marks the end of official community support for the Sakai 2.6 series. Organizations running Sakai CLE 2.6 (or earlier versions) are strongly encouraged to upgrade in order to take advantage of continued maintenance support. Note also that with the release of Sakai 2.9, Sakai 2.7 support has also ceased.

License

The Sakai CLE 2.8 series is licensed under the Educational Community License version 2.0.

  • No labels