Child pages
  • Upgrading a tool for 2.9 - 10.0 compatibility

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Sakai 2.9 and 10.0 introduce new dependencies as well as interfaces which may make your contrib tool incompatible with previous releases. This page will document the most common ones.

Spring/Hibernate/Quartz dependency changes (10)

In SAK-20384 Quartz was upgraded to 1.8.6.

In KNL-515, Hibernate was upgraded to 3.6.1

In KNl-517, Spring was upgraded to 3.2.3 

All of these result in dependency changes to your poms. The easiest way is to put these in a profile. There is no required code changes, and if your code was compatible with previous versions it should still be compatible. You're free to use the new features of these libraries but then it won't work with older versions of Sakai.

DocType Change in HBM's

The URL in the doctype in HBM's changed.

From: 
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

To:

<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

It looks like both URL's work still at the moment an are identical though.

Sakai 10.0 profile

The sakai-10.0 profile changes the hibernate dependencies, spring dependencies and quartz dependencies. Use the ones you need for your project

 

Code Block
languagehtml/xml
<profiles>
	<profile>
	<id>sakai-10</id>
	<activation>
		<activeByDefault>true</activeByDefault>
 	</activation>

   	<!-- Spring & Hibernate -->
	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
		</dependency>
		<!-- needed by hibernate unit tests -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-ehcache</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
		</dependency>
	    <dependency>
	        <groupId>org.springframework</groupId>
	        <artifactId>spring-orm</artifactId>
	    </dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<!-- Needed for Quartz -->
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>${sakai.quartz.version}</version>
		</dependency>
	</dependencies>
	</profile>
</profiles>

Sakai 2.9 profile

Adding in the sakai-2.9 profile to the profiles block, will get it to work in 2.9. You probably have these dependencies already and need to remove the

Code Block
languagehtml/xml
<profile>
	<id>sakai-2.9</id>
	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
		</dependency>
		<dependency>
			<groupId>org.opensymphony.quartz</groupId>
			<artifactId>quartz</artifactId>
			<version>${sakai.quartz.version}</version>
		</dependency>
	</dependencies>
</profile>

New API for Gradebook assignments (SAK-19668 / SAK-22978) - Sakai 2.9

In Sakai 2.9 new API was added to control visibility for assignments. Currently if you don't implement this in 2.9.1 and 2.9.2 your assignments in your external projects will not be visible. We intend to change this for 2.9.3 so they will all be visible if this is not implemented. However you should implement this API if you pass grades back to the gradebook and you support grouping. Core tools have been updated and there is example code on the subversion tab in these jiras. 

https://source.sakaiproject.org/svn//edu-services/trunk/gradebook-service/api/src/java/org/sakaiproject/service/gradebook/shared/ExternalAssignmentProvider.java