Migrating to GradebookNG?

GradebookNG is now included in the recently released Sakai 11!

If you want to use the Import From Site feature to migrate content from previous sites to new sites, you need to have GradebookNG in the previous site.

You can do this in two ways:

  1. Add GradebookNG to the sites you are migrating FROM. You can do this manually, or via a database script or a web service.
  2. Convert all of the Gradebook Classic tools in the existing sites to GradebookNG.
    In the upgrade from Sakai 10 to Sakai 11 there is an optional database conversion that you can run that will do this:

    UPDATE SAKAI_SITE_TOOL SET REGISTRATION='sakai.gradebookng' WHERE REGISTRATION='sakai.gradebook.tool';

Note: If you don’t have GradebookNG in the site you are migrating content TO, you can add this to sakai.properties to have it added automatically when you use Import From Site.

site.setup.import.addmissingtools=true

Tool properties in tool registration files

I discovered this feature by accident when setting up a new tool and configuring its registration file. The registration file is what you use to wire up a webapp in Sakai so that it can be added to sites. You can give it a title, description, tell it what site types are supported and a few other settings.

One of the recent features in Sakai is the ability to get a direct URL to any tool within Sakai. This is useful when you want to link to a tool without the portal around it.

header

Note the links on the right hand side are part of the tool registration. The ones on the left are controlled within the tool code itself and together it makes for a nice navbar when in full screen mode.

However, if you have a tool that doesn’t need any header items, for example a summary tool or widget, and there are multiples of them on screen, you still get the Link and Help items which can clutter the UI. You can disable the Help in the tool registration file via:

<configuration name="help.button" value="false" />

However the Link doesn’t have a corresponding configuration option (oversight maybe… blame me, I wrote the code…). However you can disable it with a tool property – although this is normally something reserved for an admin user to set into the tool placement within the portal, which is a manual step per placement. But what I have discovered is that you can add the tool property to the tool registration file and it is automatically linked up! Magic.

<configuration name="sakai:tool-directurl-enabled" value="true" />

This is coming in very handy as we are creating a series of relatively small widgets to place on the home screen of a site and the header toolbar was cluttering the UI. Now it is nice and clean with the header toolbar completely removed.

no-header

Sakai, ditch the custom classloaders

A few years ago I added support to the Sakai Maven Plugin to deploy everything that normally goes into /shared/lib and common/lib into just /lib, as per the standard Tomcat classloader layout.

To use, add -Dsakai.app.server=tomcat7 to the build command. Everything gets deployed to /lib and Sakai starts up without any modifications (except the standard connector modification in server.xml and the optional performance improvements in catalina.properties).

Enjoy the future!

Sakai 11: Java 8, Tomcat 8

Sakai 11 now requires Java 8 and Tomcat 8.

However, when you upgrade (and configure), you’ll notice a rather long startup time due to a change in the JAR scanning behaviour of Tomcat:

Server startup in 252800 ms

This scanning is unnecessary for Sakai though, so add this to your Tomcat/conf/context.xml file:

<Context>
...

<JarScanner>
    <JarScanFilter defaultPluggabilityScan="false" />
</JarScanner>
...
</Context>

And now you should have a much happier (and usable) startup time:

Server startup in 55836 ms

Got any more tips to improve startup times? Post in the comments!

Sakai Wicket Maven Archetype updated and released to Maven Central

The Sakai Wicket Maven Archetype has been updated to the latest version of Wicket 6 and styling issues fixed for the latest Sakai portal. It’s also been released to Maven central.

The Sakai Wicket Maven Archetype allows you to generate a sample Sakai app via a single Maven command. The app demonstrates how to get a Sakai tool styled, internationalised and registered, setup your own APIs, wire them up with Spring and inject them via annotations. The app also also includes multi database support via Spring JDBC. It could easily be used as a base for a real tool.

Generate an app:

mvn archetype:generate -DarchetypeGroupId=org.sakaiproject.maven-archetype -DarchetypeArtifactId=sakai-wicket-maven-archetype -DarchetypeVersion=1.5.0 -DgroupId=org.sakaiproject.example -DartifactId=exampleApp

More info here:
https://confluence.sakaiproject.org/display/BOOT/Sakai+Wicket+Maven+Archetype

Sakai Quartz example bundle receives an update

Six years ago I wrote a little bundle for Sakai that sets up a Quartz job and registers it with the Sakai Job Scheduler so you can setup triggers for it to run, just like a cron job. It was getting a little long in the tooth so it’s now had a makeover and now works for Sakai 11.

All of the bits of code are documented so if you are looking to write Quartz jobs for Sakai, this is what you need. Check it out:

https://source.sakaiproject.org/contrib/swinsburg/quartz-example/

Sakai 10 released

Sakai LogoThe Sakai Core Team is happy to announce the release of Sakai 10.0. Congratulations to our worldwide team on the successful completion of Sakai 10.0!

Sakai 10 builds on the solid work of the Sakai 2.9.3 release. We have two new tool contributions, better support for audio and video using HTML 5, infrastructure improvements, about 50 security fixes, performance improvements, a number of new features, and close to 2,000 fixes! Highlights include, but are not limited to:

  • Signup tool, previously a Contrib tool, is now part of Sakai core.
  • Delegated Access tool, previously a Contrib tool, is now part of Sakai core.
  • Updated and enhanced context sensitive help  includes step-by-step instructions, and in a format that is easier to modify to your institution’s needs.
  • IMS LTI 2.0 – first LMS (learning
    management system) with support for LTI 2.0.
  • IMS Common Cartridge (CC) upgrade. Support for reading CC files is able to read CC versions 1.0, 1.1, 1.2 and it can export data in CC version 1.1 or 1.2. User selectable.
  • Peer graded Assignments – Option for students to review each other’s work.
  • Group Assignments – Option for students to submit, and be graded upon, work as a group.
  • Test and Quizzes has new question types: Calculated question and Extended Matching Items. Plus improved precision on numeric answers and a new accordion-style interface for quiz setup.
  • Lessons (aka LessonBuilder) toolbar has been redesigned and simplified, better support for embedded Audio and video, new Table of Contents feature, support for inline use of polls, and better overall look and feel.
  • Resources has support for drag and drop adding of files from desktop for all browsers, and support for folder drag and drop in Chrome.
  • Syllabus Tool updated with a new interface, bulk update of syllabus items, accordion view, and better handling of link migration.
  • Gradebook added support for extra credit.
  • Distributed Cacheing provides support for JCache/JSR-107 which includes improvement to the default cache sizes and better control by configuration. Session replication to failover from one server to another without losing session data. Overall provides better performance for large Sakai installation (though please note that these features are not turned on by default OOTB).
  • Project Keitai (mobile) improved REST API support in anticipation of Sakai Mobile applications.
  • Security Updates – The Sakai community fixed about 50 security issues including various XSS issues and CSRF issues.  AntiSamy is on by default in Sakai 2.9.3 and Sakai 10. AntiSamy ensures that user supplied HTML/CSS is in compliance within an application’s rules.
  • Student Success Portal – new integration available.
  • Java – added support for JDK 7.x. JDK 8.x support is in process of being added.
  • Sakai technical organization simplified – Reincorporated many of the “Indies” to make management of Sakai releases and reporting of issues easier.Release notes available in English, Spanish and Chinese:
    https://confluence.sakaiproject.org/display/DOC/Sakai+10+Release+Notes