Johannesburg, 1 - 5 August 2011
1 - 2 August - Sakai Development
An introduction to Sakai developer. The aim of these two days is to give developers who have little or no experience of the Sakai framework the knowledge they need to start developing for the Sakai CLE.
Simple Sample Code: Here is a sample project of the first 2 days. bootie.rar (Note: Simple sample. Not the only or best solution)
Topics to be covered:
Topic |
Highlights |
Exercise |
Link |
---|---|---|---|
Developer Environment |
Subversion, Maven, Tomcat and Eclipse setup |
debugger |
https://confluence.sakaiproject.org/display/BOOT/Programmer%27s+Cafe |
Webserver anatomy |
/shared, /components, /sakai, /webapps |
deploy contrib tool deployment |
https://confluence.sakaiproject.org/display/WEBSVCS/Home\\ https://confluence.sakaiproject.org/display/WEBSVCS/How+to+use+the+Sakai+Web+Services\\ https://confluence.sakaiproject.org/display/~steve.swinsburg/Additional+web+services+for+Sakai\\ |
Tool/Services anatomy |
project layout: api, impl, pack, tool, help; |
 |
https://confluence.sakaiproject.org/display/BOOT/Developing+with+the+Sakai+Framework |
Typical troubleshooting scenarios |
(startup errors, Spring issues) |
 |
 |
Configuration |
sakai.properties |
branding/identity, database, File system (binary content) and mail configuration; xsl-portal; multiple gateways |
https://confluence.sakaiproject.org/display/DOC/Sys+Admin+Guide |
Localization |
skinning, default language |
new skin |
https://confluence.sakaiproject.org/display/I18N/Home |
Providers (integration) |
LDAP, SIS |
 |
 |
Quartz Scheduler/Cron jobs |
What they are |
Extending and injecting into Quartz service |
 |
SOAP Webservices |
What they are, Setup and Securing |
Using them (Perl might be easiest), Extending |
 |
Entity Broker |
REST |
Simple entification of a tool? |
 |
The Sakai Community |
Technical resources & structures & how to participate and get involved |
 |
https://confluence.sakaiproject.org/ |
3 August Advanced Development Topics
A workshop discussing more advanced Sakai development topics. Exact topics covered will depend on participant interests and experience but could include caching, test driven development, coding practices. PLease post suggested topics in the comments
- Caching
- ThreadLocal (be careful, this could cause memory leaks!)
- Session (Think asbout the impact of storing here)
- Maps (Good and easy, but could become very big. Also make sure the key implements the equals and hashcode methods.)
- Cache (ehcache, configured in the kernel)
- JUnit testing
- Continuous integration
- Automated code review
- Findbugs
- PMD
- CheckStyle
- and more!
- Can be run as a seperate process, or in Eclipse/Netbeans or in your CI server (Hudson/Jenkens)
- Maven
- http://maven.apache.org/
- Plugins: http://maven.apache.org/plugins/index.html
- Plugin: dependency:tree
- Plugin: help:effective-pom
- Plugin: versions:*
- Component manager
- Managing production builds
- SiteAdvisor
- You can edit new sites just before they are saved.
- http://source.sakaiproject.org/release/kernel/1.2.2/apidocs/org/sakaiproject/site/api/SiteAdvisor.html
- SecurityAdvisor
- Check and allow functions for a user on request
- http://source.sakaiproject.org/release/kernel/1.2.2/apidocs/org/sakaiproject/authz/api/SecurityAdvisor.html
4 August System Administration & Production deployment
A workshop looking at issues in running and supporting Sakai in a production deployment. Topics to include system requirements and architecture, configuration and administration.
Functional training
Training in use of and support for commonly used Sakai tools.
Prerequisites
Attendees for the first 3 days are expected to have Sakai 2.8 installed and setup on your laptop before you attend if you plan to participate in the exercises. Note that this is not required as you are welcome to simply come and listen. However, we cannot spend time getting everyone's system up and running during the workshop so please do not delay the rest of the participants by not setting up your system beforehand.