The DSpace Services Framework provides the infrastructure of a more componentized realization of DSpace. Services, plugins, and providers are registered with the framework so that they can find each other without having to know each other too intimately. This should make it easier to maintain, extend, and understand DSpace as it evolves.

The framework consists of:

kernel
initializes and starts the framework, grants ready access to core services
service manager
instantiates, configures, and controls services
core services
configuration, events, and the like
utilities
includes the DSpace object, a starting point in using the framework

To use the Services Framework, start by creating a running kernel instance.

  • In a standalone application, you can call DSpaceKernelInit.getKernel(java.lang.String) to get a reference to one.
  • In a Spring container, you need to ensure that spring/spring-dspace-applicationContext.xml and spring/spring-dspace-core-services.xml are loaded. Then you can wire references to
    • org.dspace.services.CachingService
    • org.dspace.services.SessionService
    • org.dspace.services.RequestService
    • org.dspace.services.EventService
    into your beans as needed.
  • In a servlet container, you should configure a context listener to instantiate the kernel and a filter to establish the connection between the web application and the framework.
Packages 
Package Description
org.dspace.kernel
The DSpace Services kernel and service manager.
org.dspace.kernel.config  
org.dspace.kernel.mixins
Interfaces for interacting with the startup, shutdown, or reconfiguration of the framework.
org.dspace.providers
Pluggable alternatives for some core functions.
org.dspace.servicemanager
Register, configure, manipulate, locate services.
org.dspace.servicemanager.config
The configuration service.
org.dspace.servicemanager.example
Sample service implementations.
org.dspace.servicemanager.servlet
Support for using DSpace Services in a servlet context.
org.dspace.servicemanager.spring
Spring extensions and adaptors for DSpace.
org.dspace.services
Core DSpace service definitions.
org.dspace.services.caching
Implementation of the core Caching service.
org.dspace.services.caching.model
Implementations of the Cache type, for various purposes.
org.dspace.services.email
Manages a JavaMail session for code which wants to send email.
org.dspace.services.events
Implementation of the event service.
org.dspace.services.factory  
org.dspace.services.model
Defines types managed by the core services.
org.dspace.services.sessions
Implement the session service.
org.dspace.services.sessions.model
Implement the session type.
org.dspace.utils
Utility classes and starting points.
org.dspace.utils.servicemanager
Handy types to support ServiceManagers.
org.dspace.utils.servlet
Connect a servlet container with the DSpace Services framework, in a web application context.