Alfresco Developer Guide Table of Contents

Back to BOOK PAGE

Table of Contents

Preface
Chapter 1: The Alfresco Platform
Chapter 2: Getting Started with Alfresco
Chapter 3: Working with Content Models
Chapter 4: Handling Content Automatically with Actions, Behaviors, Transformers, and Extractors
Chapter 5: Customizing the Web Client User Interface
Chapter 6: Exposing Content through a RESTful API with Web Scripts
Chapter 7: Advanced Workflow
Chapter 8: Web Content Management
Chapter 9: Security
Appendix A: API Reference and Examples
Appendix B: Alfresco Configuration Reference
Index

  • Chapter 1: The Alfresco Platform
    • Alfresco in the Real World
      • Basic Document Management
      • Web Content Management
        • Content Authoring Tools
        • Separation of Presentation from Content
        • Systematic Publication or Deployment
        • Alfresco WCM Example
      • Custom Content-Centric Applications
    • Example Used throughout This Book
    • Alfresco Architecture
      • High-Level Architecture
        • Add-Ons
      • Open Source Components
      • Major Standards and Protocols Supported
    • Customizing Alfresco
      • Basic Customization
        • Dashlets
        • Custom Views
        • Rules and Rule Actions
        • Simple Workflow
      • Advanced Customization
        • Examples of Advanced Customizations
        • Extend the Content Model
        • Perform Automatic Operations on Content
        • Customize the Web Client
        • Create a RESTful API
        • Streamline Complex Business Processes with Advanced Workflows
        • Get Your Web sites under Control
        • Integrate with Other Systems
    • Dusting Off Your Toolbox
      • What about Adobe Flex?
    • Understanding Alfresco's Editions
      • Significant Feature Differences
      • What's Used in This Book
    • Summary
  • Chapter 2: Getting Started with Alfresco
    • Obtaining the SDK
      • Step-by-Step: Building Alfresco from Source
    • Setting up the SDK in Eclipse
      • Step-by-Step: Importing the SDK into Eclipse
    • Extending Alfresco
      • Understanding the Extension Mechanism
        • Standard Java Web Application Files
        • Framework Files
    • Packaging and Deploying Customizations
      • Separating Server-Specific Customizations
      • Step-by-Step: Packaging and Deploying a Simple Customization
        • Taking a Look at the Build File
    • Troubleshooting
      • Log4j
      • Step-by-Step: Debugging from within Eclipse
      • Node Browser
    • Starting Over
    • Summary
  • Chapter 3: Working with Content Models
    • Defining SomeCo's Content Model
      • Step-by-Step: Starting the Custom Content Model with Custom Types
        • Types
      • Step-by-Step: Adding Properties to Types
        • Properties and Property Types
        • Constraints
      • Step-by-Step: Relating Types with Associations
        • Associations
      • Step-by-Step: Adding Aspects to the Content Model
        • Aspects
      • Step-by-Step: Finishing up the Model
    • Modeling Summary
      • Custom Behavior
    • Modeling Best Practices
      • Out of the Box Models
    • Configuring the UI
      • Step-by-Step: Adding Properties to the Property Sheet
        • Externalizing Display Labels
        • Making Properties Read-Only
      • Step-by-Step: Adding Types and Aspects to WebClient Dropdowns
      • Step-by-Step: Adding Properties and Types to Advanced Search
      • Step-by-Step: Setting Externalized Label Values
        • Setting up Additional Locales
    • Working with Content Programmatically
      • Step-by-Step: Creating Content with JavaScript
        • Leveraging Root Objects
        • Knowing When to Save Documents
        • Using JavaScript for Batch Manipulation
        • Writing Content to the Content Property
      • Creating Content with Java Web Services
        • Step-by-Step: Run SomeCoDataCreator Class to Create Content
      • Creating Content with PHP Web Services
      • Creating Associations
      • Searching for Content
        • Step-by-Step: Run SomeCoDataQueries Class to See Lucene Example
      • Deleting Content
        • Step-by-Step: Running SomeCoDataCleaner Class to Delete Content
    • Summary
  • Chapter 4: Handling Content Automatically with Actions, Behaviors, Transformers, and Extractors
    • Encapsulating Content Operations in Actions
      • Step-by-Step: Creating a Basic Action
      • Hiding the Action from End Users
      • Creating Actions that Require User-Specified Parameters
        • Step-by-Step: Creating an Action that Accepts Parameters
      • Incorporating Parameter Values in the Action Description
      • Specifying Parameters when Code Executes an Action
    • Binding Logic to Custom Types with Behaviors
      • Step-by-Step: Writing a Simple Behavior in Java
      • Binding to Multiple Types/Aspects
      • Frequency
      • Figuring Out to Which Policies to Bind
      • Step-by-Step: Writing a Simple Behavior in JavaScript
      • Binding Behavior to Child Types
        • Step-by-Step: Writing a User Ratings Calculator
        • Step-by-Step: Testing the New Rating Behavior
      • Handling Deleted Ratings
    • Extracting Metadata from Files
      • Customizing Metadata Extractors
        • Step-by-step: Customizing the Metadata Mapping
      • Overriding the Default Mapping
      • Leveraging Out of the box Metadata Extractors
      • Digging into an Extractor Class
        • Step-by-Step: Customizing a Metadata Extractor Class
    • Transforming Content from One Format to Another
      • Step-by-Step: Writing a Custom Transformer
    • Summary
  • 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
      • Step-by-Step: Adding a Simple UI Action
      • Showing/Hiding the Label
      • Leveraging Out of the Box Examples
      • Using Other Types of UI Actions
      • Step-by-Step: Adding a UI Action to Set the Web Flag
      • Restricting the UI Action by Permission
    • Writing Action Evaluators to Show/Hide UI Actions
      • Step-by-Step: Evaluating Whether or Not to Show the Set Web Flag UI Actions
    • Changing How the Web Client Renders Data with Custom Component Renderers
      • Step-by-Step: Making a Text Field a Specific Size
      • What Just Happened
      • Overriding the Generator for All Properties
      • Step-by-Step: Changing the Status Field on the Details Page to Display as a Stoplight Indicator
      • Overriding and Customizing Components
    • Creating Custom Dialogs
      • Step-by-Step: Creating a Dialog to Execute Scripts
      • Passing the Context to the Dialog
      • Understanding the JSP
      • Enabling and Disabling the OK Button
    • Creating Custom Wizards
      • Step-by-Step: Stubbing Out the Wizard
      • Step-by-Step: Finishing Out the Wizard
      • Adding Conditions to Wizard Step Pages
      • Receiving Interview Feedback via Email
      • Persisting Interviewer Choices
      • Copying Alfresco's Code into Your Customizations
    • Customizing Web Client JSP Pages
      • Overriding Navigation Rules with Type-specific Settings
    • Summary
  • Chapter 6: Exposing Content through a RESTful API with Web Scripts
    • Introducing the Web Script Framework
      • Step-by-Step: Hello World Web Script
      • What Just Happened?
      • Following the Model-View-Controller Pattern
      • Adding Controller Logic
      • Configuring the Web Script
        • Specifying the HTTP Method
        • Specifying Arguments
        • Specifying the Response Format
      • Deploying Web Scripts
      • Building Solutions with the Web Script Framework
    • Planning the SomeCo Whitepapers and Ratings API
    • Retrieving Data with Web Scripts
      • Step-by-Step: Writing a Web Script to List Whitepapers
      • Debugging
      • Fast Facts
      • Organizing Web Scripts
      • Overriding Web Scripts
      • Choosing a URL
      • Choosing between the Repository and the File System
      • Step-by-Step: Retrieving the Rating for a Whitepaper
      • Specifying Optional Arguments
      • Handling Errors
    • Writing Java-Backed Web Scripts
      • Step-by-Step: Writing a Java-Backed Web Script to Handle Ratings Posts
      • Using the Correct ID for Web Script Beans
      • Using both Java and JavaScript for Controller Logic
    • Wiring a Web Script to UI Widgets
      • Step-by-Step: Using a Widget to Post Ratings
      • Implementing the Delete Ratings Link
      • Adding the Web Script Calls to SomeCo's Whitepaper Web Page
      • Making Other Types of Content "Rateable"
      • Dealing with the Cross-Domain Scripting Limitation
    • Handling Form Data
      • Step-by-Step: Implementing a Form-Based Hello World
      • Step-by-Step: Using File Upload in a Multipart Request
    • Customizing the Web Client with Web Scripts
      • Step-by-Step: Running a Web Script as a Dashlet
      • Understanding Web Script Runtimes
    • Advanced Web Scripts
      • Running Web Scripts as JSR-168 Portlets
      • Dealing with Web Script Authentication
      • Controlling Web Script Cache
      • Executing Remote Web Scripts
        • Refactoring the Rating Service
    • Summary
  • Chapter 7: Advanced Workflow
    • What is a Workflow?
      • Workflow Options
    • Creating Process Definitions
      • Step-by-Step: Creating a Hello World Process Definition
      • Organizing Processes
    • Using the jBPM Graphical Process Designer
      • Step-by-Step: Using jBPM Process Designer to Create and Deploy Processes
        • Tokens
        • Node Types
        • Versioning Process Definitions
        • Deploying Dependencies
        • Using Alternative Deployment Methods
    • Wiring a Process to the Alfresco UI
      • Step-by-Step: Grabbing the Hello World Argument from the User
        • Understanding Workflow-Specific Content Models
    • Assigning Tasks to Users and Groups
      • Step-by-Step: Creating the Initial Whitepaper Submission Workflow
      • Controlling What Actions Can Be Taken from the Task Management Dialog
      • Enabling the Workflow Initiator to Select Users and Groups
    • Adding Logic to Workflows with Actions and Process Variables
      • Storing Data in Process Variables
      • Step-by-Step: Adding Logic to the Whitepaper Submission Workflow
      • Using Java Classes for Decisions
      • Getting Access to the Content in the Workflow
      • Selecting the Right Event for Your Logic
      • Using ForEachFork
    • Using the Workflow API
      • Step-by-Step: Implementing Third-Party Review
      • Using a Task-Node Instead of a State
      • Making the Third-Party Review More Robust
    • Using Timers
      • Step-by-Step: Adding a Timer to the Third-Party Review
      • Understanding Timer Syntax
    • Debugging Workflows
    • Comparing Alfresco Workflow Options
    • Summary
  • Chapter 8: Web Content Management
    • Understanding the Difference between Alfresco DM and Alfresco WCM
    • Obtaining Alfresco WCM
      • Step-by-Step: Installing Alfresco WCM
    • Creating Web Projects
      • Step-by-Step: Creating the SomeCo Web Project
      • What Just Happened
      • Playing Nicely in the Sandbox
      • Inviting Users
      • Mounting Sandboxes via CIFS
      • Virtualization and Layering
    • Creating Web Forms
      • Step-by-Step: Creating a SomeCo Press Release Web Form
      • Mapping XML Schema Types to Web Form Controls
        • Localizing Web Forms with Labels and Alerts
      • Generating XSD Dynamically
      • Step-by-Step: Creating a Press Release Index Page
      • Making Changes to an Existing Web Form
      • Using Web Forms Outside the WCM User Interface
    • Deploying Content
      • Step-by-Step: Deploying Content Using the File System Receiver (FSR)
      • Setting the FSR Target User and Password
      • Viewing Deployment Reports
      • Deploying to Test Servers
      • Enabling Deployment Targets for Auto Deploy
      • Step-by-Step: Deploying to an Alfresco System Receiver (ASR)
    • Performing Post-Deployment Processing
      • Step-by-Step: Running Post-Deployment Code in an FSR Deployment
      • Handling Deletes
      • Step-by-Step: Implementing ASR Deployment Callbacks
    • Modifying and Creating WCM Workflows
      • Using Launch Dates, Expiration Dates, and Link Checking
        • Launch Dates
        • Expiration Dates
        • Link Checking
      • Step-by-Step: Creating a No-Approval Workflow for Job Postings
    • Working with the AVM API
      • Step-by-Step: Writing a Web Script to Query AVMNodes
      • Step-by-Step: Writing a Web Script to Trigger Deployments
        • Implementing a Web Script for Submit
    • Using the AVM Console
    • Summary
  • Chapter 9: Security
    • Authenticating and Synchronizing with LDAP
      • Step-by-Step: Setting Up a Local OpenLDAP Server
      • Step-by-Step: Configuring Alfresco to Authenticate against LDAP
      • Step-by-Step: Configuring Chaining
      • Step-by-Step: Synchronizing LDAP with Alfresco
        • Handling Large Directories
    • Setting Up Single Sign-On (SSO)
      • Step-by-Step: Implementing SSO
        • Logging Out
      • Step-by-Step: Configuring CAS to Use LDAP for Authentication
    • Working with Security Services
      • Securing the Admin User
      • Granting Additional Users Admin Rights
        • Step-by-Step: Making tpublisher1 an Admin
      • Creating Users and Groups Programmatically
        • Step-by-Step: Creating Users and Groups through the API
      • Understanding Permission Definitions
        • Permission Groups
        • Permissions
        • Permission Sets
        • Step-by-Step: Setting Up A Portal Publisher Custom Role
        • Global Permissions
        • Mapping Permissions to Methods
    • Summary
  • Appendix A: API Reference and Examples
    • Foundation API Public Services
      • ActionService
      • ActivityService (3.0 Labs)
      • AttributeService
      • AuditService
      • AuthenticationService
      • AuthorityService
      • AVMService
      • AVMLockingService
      • AVMSyncService
      • CategoryService
      • CheckOutCheckInService
      • ConfigurableService
      • ContentUsageService (3.0 Labs)
      • ContentService
      • CopyService
      • CrossRepositoryCopyService
      • DeploymentService
      • DescriptorService
      • DictionaryService
      • EditionService
      • EmailService
      • ExporterService
      • FileFolderService
      • ImporterService
      • LinkValidationService
      • LockService
      • MailService
      • MimetypeService
      • ModuleService
      • MultilingualContentService
      • NamespaceService
      • NodeService
      • OwnableService
      • PermissionService
      • PersonService
      • RegistryService
      • RepoAdminService (3.0 Labs)
      • RepositoryExporterService
      • RuleService
      • SearchService
      • ScriptService
      • SiteService (3.0 Labs)
      • TaggingService (3.0 Labs)
      • TemplateService
      • ThumbnailService (3.0 Labs)
      • TransactionService
      • VersionService
      • WorkflowService
    • Lucene Queries
      • Basic Lucene Syntax
      • Property Search
      • Proximity Search
      • Range Search
      • Field Search
    • JavaScript
      • Root Objects
      • JavaScript API
    • API Examples
      • Create a Node
      • Perform a Search
      • Persist Content
      • Add an Aspect
      • Set a Property
      • Set Permissions
      • Start a Workflow
  • Appendix B: Alfresco Configuration Reference
    • Actions
      • Actions Available in both Enterprise and Labs
      • Actions Available in Labs Only
    • Web Client Config Elements
      • Conditional Configuration Elements
      • Unconditional Configuration Elements
    • Action Groups
      • Core Web Client Action Groups
      • Forums-Related UI Action Groups
      • Workflow-Related Action Groups
      • WCM-Related Action Groups
    • Metadata Extractors
    • Transformers
    • Graphical View of the Alfresco Content Model
      • System Model
      • User Model
      • Content Model
      • App Model
      • BPM Model
      • Workflow Model
      • WCM Model
      • WCM App Model
      • WCM Workflow Model

Back to BOOK PAGE

Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Sort A-Z