Free Sample
+ Collection

Alfresco Developer Guide

Jeff Potts

Customizing Alfresco with actions, web scripts, web forms, workflows, and more
RRP $35.99
RRP $59.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781847193117
Paperback556 pages

About This Book

  • Learn to customize the entire Alfresco platform, including both Document Management and Web Content Management
  • Jam-packed with real-world, step-by-step examples to jump start your development
  • Content modeling, custom actions, Java API, RESTful web scripts, advanced workflow
  • This book covers Alfresco Enterprise Edition version 2.2

Appendix C

Who This Book Is For

This book will be most useful to developers who are writing code to customize Alfresco for their organization or who are creating custom applications that sit on top of Alfresco.

This book is for Java developers, and you will get most from the book if you already work with Java but you need not have prior experience on Alfresco. Although Alfresco makes heavy use of open source frameworks such as Spring, Hibernate, JavaServer Faces, and Lucene, no prior experience using these is assumed or necessary.

Table of Contents

Chapter 1: The Alfresco Platform
Alfresco in the Real World
Example Used throughout This Book
Alfresco Architecture
Customizing Alfresco
Dusting Off Your Toolbox
Understanding Alfresco's Editions
Chapter 2: Getting Started with Alfresco
Obtaining the SDK
Setting up the SDK in Eclipse
Extending Alfresco
Packaging and Deploying Customizations
Starting Over
Chapter 3: Working with Content Models
Defining SomeCo's Content Model
Step-by-Step: Relating Types with Associations
Step-by-Step: Adding Aspects to the Content Model
Step-by-Step: Finishing up the Model
Modeling Summary
Modeling Best Practices
Configuring the UI
Working with Content Programmatically
Chapter 4: Handling Content Automatically with Actions, Behaviors, Transformers, and Extractors
Encapsulating Content Operations in Actions
Binding Logic to Custom Types with Behaviors
Extracting Metadata from Files
Transforming Content from One Format to Another
Chapter 5: Customizing the Web Client User Interface
Knowing When to Customize Alfresco's Web Client and When to Write Your Own
Adding New Menu Items with UI Actions
Writing Action Evaluators to Show/Hide UI Actions
Changing How the Web Client Renders Data with Custom Component Renderers
Creating Custom Dialogs
Creating Custom Wizards
Customizing Web Client JSP Pages
Chapter 6: Exposing Content through a RESTful API with Web Scripts
Introducing the Web Script Framework
Planning the SomeCo Whitepapers and Ratings API
Retrieving Data with Web Scripts
Writing Java-Backed Web Scripts
Wiring a Web Script to UI Widgets
Handling Form Data
Customizing the Web Client with Web Scripts
Advanced Web Scripts
Chapter 7: Advanced Workflow
What is a Workflow?
Creating Process Definitions
Using the jBPM Graphical Process Designer
Wiring a Process to the Alfresco UI
Assigning Tasks to Users and Groups
Adding Logic to Workflows with Actions and Process Variables
Using the Workflow API
Using Timers
Debugging Workflows
Comparing Alfresco Workflow Options
Chapter 8: Web Content Management
Understanding the Difference between Alfresco DM and Alfresco WCM
Obtaining Alfresco WCM
Creating Web Projects
Creating Web Forms
Deploying Content
Performing Post-Deployment Processing
Modifying and Creating WCM Workflows
Working with the AVM API
Using the AVM Console
Chapter 9: Security
Authenticating and Synchronizing with LDAP
Setting Up Single Sign-On (SSO)
Working with Security Services

What You Will Learn

  • Set up your development environment using Eclipse, Apache Ant, and MySQL
  • Extend Alfresco's content model with business-specific metadata
  • Write custom actions, metadata extractors, content transformers, and behaviors using Java and JavaScript
  • Customize the Alfresco web client with new UI actions, JavaServer Faces components, custom JSPs, dialogs, and wizards
  • Roll your own REST API to enable a front-end web site to interact with the repository via AJAX
  • Automate business processes using the embedded JBoss jBPM engine, adding logic to business processes using Alfresco's JavaScript and Java API's, and expose the business process to non-Alfresco users via a REST API
  • Create a web form to allow non-technical content owners to contribute content into the repository, transform the content using XSLT and FreeMarker, and expos the content via REST
  • Learn how to write a Java service that is accessible from the JavaScript API
  • Expose the WCM deployment actions external to the Alfresco web client using the AVM API and RESTful web scripts
  • Secure the repository by defining custom roles, configuring Alfresco to authenticate against LDAP (including setting up your own OpenLDAP server), and integrating Alfresco with JA-SIG CAS, an open source Single Sign-On (SSO) solution

In Detail

Alfresco is an open source platform for Enterprise Content Management (ECM) solutions. ECM includes things like Document Management, Web Content Management, Collaboration/Enterprise 2.0, Digital Asset Management, Records Management, and Imaging. At its core is a repository for rich content like documents, web assets, XML, and multimedia. The repository is surrounded by a services layer (supporting both SOAP and REST) that makes getting content into and out of the repository a breeze, which is why so many next generation Internet solutions are built on Alfresco.

Implementing Alfresco usually involves extending the repository to accommodate your business-specific metadata and business logic. These extensions are done using some combination of Java, JavaScript, XML, and FreeMarker.
This book takes you through a set of exercises as if you were rolling out and customizing the platform for a fictional organization called SomeCo, which wants to roll out Alfresco enterprise-wide. Each department has a set of requirements that need addressed. We will show you how to extend Alfresco to meet these requirements. By the time you've worked through the entire book, you will be familiar with the entire platform. You'll be prepared to make your own customizations whether they are part of a Document Management solution, a web site that uses Alfresco for content storage, or an entire custom application built on Alfresco's REST API. This book will give you the knowledge and confidence you need to make Alfresco do what you need it to do


Read More