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

Oracle 12c via Vagrant

I’ve just finished building a new Vagrant box for Oracle 12c. This one uses only Vagrant and a shell script.

Grab it from github: https://github.com/steveswinsburg/oracle12c-vagrant

During the course of this install I came up against several issues with the Oracle silent installer itself. There were files missing, an incomplete compilation of binaries (but Oracle reports a successful install!) and then problems running scripts that ship with the installer. The issues were buried in log files, and sometimes those log files pointed at other log files!

Oracle, if you are listening, you really need to work on your installer…

Check it out, I would love to know what you think.

N.B. For reference, the problems I encountered are here and here.

 

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 and MariaDB via Vagrant

Sakai has recently switched over to using the MariaDB connector for MySQL databases, and a number of institutions are running MariaDB in production, so I thought I might as well change my dev machine over to MariaDB.

To ease the transition, I whipped up a Vagrant box so I could run this in a VM and spin it up whenever I needed it.

Clone this:
https://github.com/steveswinsburg/mariadb-vagrant

Run this: vagrant up

Done.

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!