This document discusses using Spring in Alfresco ECM. It provides an overview of ECM and Alfresco, and then discusses how Alfresco is built on Spring and can be extended using Spring. Key points include that Alfresco is a JEE application based on Spring, with services exposed through Spring beans. It uses Spring conventions like naming beans and configuration files. Extensions can inject services and be configured via Spring as well. Security is also managed through Spring Security.
2. About me
Open Source Product Specialist
content management
system integration
web / portal
Alfresco ECM
Certified Alfresco Trainer
Forum supporter (en, it)
JBoss Portal
Forum supporter
Contributions
DbDep Plugin
Apache Ivy
Apache Maven
CMIS Portlet
Project Leader - JBoss Wiki
Committer - JBoss Labs
Affiliate Partner at Packt
Editor at oneOpenSource.it
3. Agenda
1. ECM in the real world
2. Alfresco ECM
3. Spring in Alfresco
4. ECM=Enterprise Content Management
AIIM Definition (Association for Information and Image Management)
Enterprise Content Management embodies the technologies used to capture, manage,
store, preserve and deliver content and documents related to organizational processes.
Wikipedia
A system for organizing and facilitating collaborative creation of documents and
other content
Able to monitor content through its lifecycle, and track changes to content, and
users of the content
Sometimes a web application used for managing websites and web content
In many cases, content management systems require special client software for
editing and constructing articles
7. What is Alfresco
Centralized Repository / Services
Interfaces
Alfresco Web Client (JSF Client)
FTP/WebDAV/CIFS (network share)
Office 2003/7 Plug-in + SharePoint Protocol
CMIS (Content Management Interoperability Services)
Web Services API
JCR API
Authentication and Security
Alfresco managed accounts
LDAP, OpenLDAP, Apache DS
Active Directory
Kerberos
8. What is Alfresco
Standard JEE Application
based on Spring Framework
Easily Extendable
Freemarker
JavaScript
Web Services
Web Scripts (REST)
Java API
Plug in new technology through Spring
Business Processe Orchestration
Simple Workflow
Advanced – based on jBPM
11. Alfresco - Spring conventions
Foundation Repository Services
Public Services
Springbean IDs begin with uppercase letter
Private Components
Springbean IDs begin with lowercase letter
Application context = Spring context
Spring AOP
Spring Security (ex Acegi)
15. Alfresco - Foundation Services API
Transaction-aware (more methods invocation)
A unique API defined by a Spring Context for
Application interfaces
WS API
CMIS API
JCR API
WebScript API
JavaScript Server Side (Mozilla Rhino)
Virtual File Systems
CIFS
FTP
SharePoint Protocol
16. Alfresco - Foundation Services API
To create your own Alfresco extension
get a service using ServiceRegistry provided by Alfresco
use Spring getBean() method
each component can be injected using IoC
public setter
XML bean ref
26. Alfresco - Spring AOP Proxies
ProxyFactoryBean
define an array of interfaces implemented by target
define a list of advisors (interceptor names)
ordering is significant
the first interceptor will be the first to be able to
intercept the method call
27. Alfresco - Spring AOP - Advisor
An advisor is based on these components:
Pointcuts
WHERE
Advice
ACTION