This presentation was shown at Spring Framework Meeting 2009 in Cagliari (Sardinia - Italy).
http://www.jugsardegna.org/vqwiki/jsp/Wiki?27giugno2009
Abstract:
Alfresco is the leading open source enterprise content management system and two of the most appreciated aspects of Alfresco are: the wide customization model and the high quality of source code.
Alfresco is strongly based on Spring Framework and thanks to this adoption we can find many ways to extend and inject our components. In this presentation will be shown many ways to extend Alfresco features and interfaces using Spring application context configuration.
2. About me
Open Source Product Specialist Contributions
content management DbDep Plugin
system integration Apache Ivy
web / portal Apache Maven
CMIS Portlet
Alfresco ECM Project Leader - JBoss Wiki
Certified Alfresco Trainer Committer - JBoss Labs
Forum supporter (en, it) Affiliate Partner at Packt
Editor at oneOpenSource.it
JBoss Portal
Forum supporter
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