Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more - Helion
ebook
Autor: Jeff Potts, Alfresco.comTytuł oryginału: Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more
ISBN: 9781847193124
stron: 556, Format: ebook
Data wydania: 2008-10-31
Księgarnia: Helion
Cena książki: 170,10 zł (poprzednio: 189,00 zł)
Oszczędzasz: 10% (-18,90 zł)
Osoby które kupowały "Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Scrum. O zwinnym zarządzaniu projektami. Wydanie II rozszerzone 58,64 zł, (12,90 zł -78%)
- Od hierarchii do turkusu, czyli jak zarządzać w XXI wieku 58,64 zł, (12,90 zł -78%)
Spis treści
Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more eBook -- spis treści
- 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
- High-Level Architecture
- 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
- Basic Customization
- Dusting Off Your Toolbox
- What about Adobe Flex?
- Understanding Alfrescos Editions
- Significant Feature Differences
- What's Used in This Book
- Summary
- Alfresco in the Real World
- 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
- Understanding the Extension Mechanism
- 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
- Obtaining the SDK
- 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: Starting the Custom Content Model with Custom Types
- 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
- Step-by-Step: Adding Properties to the Property Sheet
- 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
- Step-by-Step: Creating Content with JavaScript
- Summary
- Defining SomeCo's Content Model
- 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
- Customizing Metadata Extractors
- Transforming Content from One Format to Another
- Step-by-Step: Writing a Custom Transformer
- Summary
- Encapsulating Content Operations in Actions
- 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
- Introducing the Web Script Framework
- 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
- Step-by-Step: Using jBPM Process Designer to Create and Deploy Processes
- Wiring a Process to the Alfresco UI
- Step-by-Step: Grabbing the Hello World Argument from the User
- Understanding Workflow-Specific Content Models
- Step-by-Step: Grabbing the Hello World Argument from the User
- 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
- What is a Workflow?
- 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)
- Step-by-Step: Deploying Content Using the File System Receiver (FSR)
- 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
- Using Launch Dates, Expiration Dates, and Link Checking
- 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
- Step-by-Step: Implementing SSO
- 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
- Authenticating and Synchronizing with LDAP
- 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
- General
- 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
- Create a Node
- Foundation API Public 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
- Actions
- Index