spring in alfresco ecm
DESCRIPTION
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.TRANSCRIPT
![Page 1: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/1.jpg)
Spring in Alfresco ECMA success story
![Page 2: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/2.jpg)
About me
Open Source Product Specialistcontent managementsystem integrationweb / portal
Alfresco ECM
Certified Alfresco TrainerForum supporter (en, it)
JBoss Portal
Forum supporter
Contributions DbDep Plugin
Apache IvyApache Maven
CMIS PortletProject Leader - JBoss WikiCommitter - JBoss LabsAffiliate Partner at PacktEditor at oneOpenSource.it
![Page 3: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/3.jpg)
Agenda
1. ECM in the real world2. Alfresco ECM3. Spring in Alfresco
![Page 4: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/4.jpg)
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.
WikipediaA system for organizing and facilitating collaborative creation of documents and other contentAble to monitor content through its lifecycle, and track changes to content, and users of the contentSometimes a web application used for managing websites and web contentIn many cases, content management systems require special client software for editing and constructing articles
![Page 5: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/5.jpg)
ECM architecture - step 1
![Page 6: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/6.jpg)
ECM architecture - step 2
![Page 7: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/7.jpg)
What is Alfresco
Centralized Repository / Services Interfaces
Alfresco Web Client (JSF Client)FTP/WebDAV/CIFS (network share)Office 2003/7 Plug-in + SharePoint ProtocolCMIS (Content Management Interoperability Services)Web Services APIJCR API
Authentication and Security
Alfresco managed accountsLDAP, OpenLDAP, Apache DS Active DirectoryKerberos
![Page 8: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/8.jpg)
What is Alfresco
Standard JEE Applicationbased on Spring Framework
Easily Extendable FreemarkerJavaScriptWeb ServicesWeb Scripts (REST)Java APIPlug in new technology through Spring
Business Processe Orchestration
Simple WorkflowAdvanced – based on jBPM
![Page 9: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/9.jpg)
Alfresco - software architecture
![Page 10: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/10.jpg)
Alfresco - software architecture
![Page 11: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/11.jpg)
Alfresco - Spring conventions
Foundation Repository ServicesPublic Services
Springbean IDs begin with uppercase letter Private Components
Springbean IDs begin with lowercase letterApplication context = Spring contextSpring AOPSpring Security (ex Acegi)
![Page 12: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/12.jpg)
Alfresco - web.xml
![Page 13: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/13.jpg)
Alfresco - web-application-context.xml
![Page 14: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/14.jpg)
Alfresco - application-context.xml
![Page 15: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/15.jpg)
Alfresco - Foundation Services APITransaction-aware (more methods invocation)A unique API defined by a Spring Context for
Application interfacesWS APICMIS APIJCR APIWebScript API
JavaScript Server Side (Mozilla Rhino)Virtual File Systems
CIFSFTPSharePoint Protocol
![Page 16: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/16.jpg)
Alfresco - Foundation Services API
To create your own Alfresco extension get a service using ServiceRegistry provided by Alfrescouse Spring getBean() methodeach component can be injected using IoC
public setterXML bean ref
![Page 17: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/17.jpg)
Alfresco - public-services-context.xml
![Page 18: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/18.jpg)
Alfresco - content-services-context.xml
![Page 19: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/19.jpg)
Alfresco - contentService (Spring bean)
![Page 20: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/20.jpg)
Alfresco - RoutingContentService.java
![Page 21: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/21.jpg)
Alfresco - RoutingContentService.java
![Page 22: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/22.jpg)
Alfresco - Spring Configuration Filescustom-repository-context.xml
![Page 23: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/23.jpg)
Alfresco - Configuration Files example
![Page 24: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/24.jpg)
Alfresco - Configuration Files example
![Page 25: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/25.jpg)
Alfresco - Configuration Files example
![Page 26: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/26.jpg)
Alfresco - Spring AOP Proxies
ProxyFactoryBeandefine an array of interfaces implemented by targetdefine a list of advisors (interceptor names)
ordering is significantthe first interceptor will be the first to be able to intercept the method call
![Page 27: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/27.jpg)
Alfresco - Spring AOP - Advisor
An advisor is based on these components:Pointcuts
WHERE Advice
ACTION
![Page 28: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/28.jpg)
Alfresco - Spring AOP - Pointcuts
![Page 29: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/29.jpg)
Alfresco - Spring AOP Proxies
![Page 30: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/30.jpg)
Alfresco - Spring Security (ex Acegi)
Authentication management forLDAPHTTPNTLMX509RESTPluggable IoC XML
![Page 31: Spring In Alfresco Ecm](https://reader034.vdocument.in/reader034/viewer/2022052619/5552f6ddb4c90587048b4e72/html5/thumbnails/31.jpg)
Alfresco - Spring Security (ex Acegi)