万本电子书0元读

万本电子书0元读

顶部广告

Alfresco Developer Guide电子书

售       价:¥

2人正在读 | 0人评论 9.8

作       者:Jeff Potts

出  版  社:Packt Publishing

出版时间:2008-10-31

字       数:649.6万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
This book focuses on teaching by example. Every chapter provides a bit of an overview, and then dives right in to hands-on examples so you can see and play with the solution in your own environment. All code samples run on both the latest Enterprise and Labs release. 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.
目录展开

Alfresco Developer Guide

Table of Contents

Alfresco Developer Guide

Credits

About the Author

About the Reviewers

Preface

What This Book Covers

What You Need for This Book

Who This Book is For

Conventions

Reader Feedback

Customer Support

Downloading the Example Code for the Book

Errata

Piracy

Questions

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

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

Spring Configuration Files

JavaServer Faces Configuration Files

Alfresco Configuration Files

Solution-Specific Files

Avoid Modifying Alfresco Code and Configuration

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

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

Step-by-Step: Run SomeCoDataRelater Class to Create Association

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

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

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

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

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

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)

Running Multiple FSR Hosts and Multiple FSR Targets

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

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

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

TYPE and ASPECT

ID

PARENT

PATH

QNAME

TEXT

Category

Using Saved Searches as Examples

JavaScript

Root Objects

JavaScript API

General

Association

ChildAssociation

ScriptNode

ScriptUtils

Root object: cache

Root object: crossRepoCopy

Root object: logger

Root object: status

Actions API

Root object: actions

ScriptAction

AVM API

Root object: avm

AVMNode (extends ScriptNode)

AVMScriptStore

Classification API

Root node: classification

CategoryNode (extends ScriptNode)

People API

Root node: people

Presence API (3.0 Labs)

presence

Search API

search

API Examples

Create a Node

Foundation

JavaScript

Web Services

Perform a Search

Foundation

JavaScript

Web Services

Persist Content

Foundation

JavaScript

Web Services

Add an Aspect

Foundation

JavaScript

Web Services

Set a Property

Foundation

JavaScript

Web Services

Set Permissions

Foundation

JavaScript

Web Services

Start a Workflow

Foundation

JavaScript

Web Services

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

Index

累计评论(0条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部