Sakai 2.0 Framework Guide

Glenn R. Golden, March 23, 2005

The Sakai Framework is organized into a few modules with many projects. This
document describes this organization.

kernel Module

The kernel of the framework is in the module kernel in the sakai2 cvs. It is composed of projects that support the following features:

  • ID generation
  • Current (ThreadLocal) Support
  • Developer Logging
  • Components
  • Tools
  • Sessions
  • Request Conditioning

The kernel also provides standard components implementing the kernel APIs. These are packaged into a components package by another kernel module project.

ID Generation

The kernel supports the UUID generation needs for Sakai. This is done using the
IdManager. A standard component of the IdManager is provided that produces IEFT V4
UUIDs using the Apache Commons Id package.

Projects:

Project Name Description
id Id API
id-component IETF UUID Version 4 Apache Commons Id based implementation
of the Id API

Artifacts:

Project Name Artifact Name Type Deployment
id sakai2-id jar shared
id-component sakai2-id-component jar kernel-components

Current (Thread Local) Support

The CurrentManager helps code access data bound to the current request processing
thread, using a "thread local" like mechanism. Data can be cached for the current request here. APIs can support their "current" access (such as the SessionManager's
getCurrentSession) by using the CurrentManager.

The CurrentManager is supported by the RequestFilter, to assure that all values bound to the current request processing thread are cleaned up when the thread is complete.

Projects:

Project Name Description
current Current API
current-component Standard implementation of the Current API

Artifacts:

Project Name Artifact Name Type Deployment
current sakai2-current jar shared
current-component sakai2-current-component jar kernel-components

Developer Logging

Support for runtime message logging to capture normal and unusual and error
programming conditions is provided by the LogManager. The kernel also provisions the environment to support Apache Commons logging and Log4J logging, see [Sakai 2.0 Logging].

Projects:

Project Name Description
log Log API
log-component Standard implementation of the Log API
log-configure Log4J configuration for Sakai

Artifacts:

Project Name Artifact Name Type Deployment
log sakai2-log jar shared
log-component sakai2-log-component jar kernel-components
log-configure sakai2-log-configure jar common

Components

Sakai supports API programming practices by providing a dynamic binding component
loading, injection and discovery system. The kernel also provisions the environment to support direct use of the SpringFramework's component management. See [Sakai 2.0 Components]

Projects:

Project Name Description
component Component API and implementation
components-loader Components Package loader utility, used by the Component
API implementation

Artifacts:

Project Name Artifact Name Type Deployment
component sakai2-component jar shared
components-loader sakai2-components-loader jar shared

Tools

Support for Sakai tools is provided in the kernel. Tools are registered and invoked with kernel support. Tools may be used by dispatchers, navigators, portals, and aggregators, and by other tools in a helper mode.

The ActiveTool API and component support the invocation of Tools - this is dependent on the Servlet API. The Tool API supports the registration and discovery of tools and tool configuration and other meta-data. This is not dependent on the Servlet API. See Sakai 2.0 Tools.

Projects:

Project Name Description
tool Tool API
active-tool ActiveTool API
tool-component Standard implementation of the Tool API
active-tool-component Standard implementation of the ActiveTool API
tool-registration Tool registration Servlet Context Listener

Artifacts:

Project Name Artifact Name Type Deployment
tool sakai2-tool jar shared
active-tool sakai2-active-tool jar shared
tool-component sakai2-tool-component jar kernel-components
active-tool-component sakai2-active-tool-component jar kernel-components
tool-registration sakai2-tool-registration jar shared

Session

Sakai supports a Sakai-wide http-like Session, ToolSessions scoped for each tool
placement, and a synthetic HttpSession. See Sakai 2.0 Sessions

Projects:

Project Name Description
session Session API
session-component Standard implementation of the Session API

Artifacts:

Project Name Artifact Name Type Deployment
session sakai2-session jar shared
session-component sakai2-session-component jar kernel-components

Request

The kernel provides support to condition each http request in the form of a Servlet Filter that is used in front of all Sakai Servlet technology tool implementations. See [Sakai 2.0 Requests]

Projects:

Project Name Description
request Request processing Servlet Filter utility

Artifacts:

Project Name Artifact Name Type Deployment
request sakai2-request jar shared

Standard Components

The kernel provides standard implementations of the Kernel APIs and packages them into a components package.

Projects:

Project Name Description
kernel-components Components Package for the kernel components

Artifacts:

Project Name Artifact Name Type Deployment
kernel-components sakai2-kernel-components war components packages

jsf Module

The integration support for JavaServer Faces (JSF) is provided by the projects in the module jsf in the sakai2 cvs.

jsf Projects

tbd.

common Module

The common APIs of the framework is in the module common in the sakai2 cvs.

common Projects

tbd.

edu Module

The common educational APIs of the framework is in the module edu in the sakai2 cvs.

edu Projects

tbd.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.