Alfresco 3 Web Services


Alfresco 3 Web Services
eBook: $35.99
Formats: PDF, PacktLib, ePub and Mobi formats
$30.59
save 15%!
Print + free eBook + free PacktLib access to the book: $95.98    Print cover: $59.99
$59.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Gain a comprehensive overview of the specifications of Web services
  • Implement the Alfresco specific Web Services
  • Get to grips with the Alfresco WebScripts and the Alfresco extensible RESTful API
  • Manipulate contents in Alfresco using different operations and APIs
  • Learn about the CMIS specification and its Alfresco implementation
  • Hands-on approach with examples built over the course of the book

 

Book Details

Language : English
Paperback : 436 pages [ 235mm x 191mm ]
Release Date : August 2010
ISBN : 1849511527
ISBN 13 : 9781849511520
Author(s) : Ugo Cei , Piergiorgio Lucidi
Topics and Technologies : Alfresco, All Books, CMS and eCommerce, Content Management (CMS), Java, Open Source, Web Services


Table of Contents

Preface
Chapter 1: Introducing the SOAP Web Services API
Chapter 2: Creating and Modifying Content
Chapter 3: Collaboration and Administration
Chapter 4: A Complete Example
Chapter 5: Using the Alfresco Web Services from .NET
Chapter 6: Introducing the Web Scripts Framework
Chapter 7: Templating with FreeMarker
Chapter 8: Writing a Web Script Controller in JavaScript and Java
Chapter 9: Putting it All Together
Chapter 10: Overview of CMIS
Chapter 11: The CMIS AtomPub Binding
Chapter 12: Developing a CMIS Client using Apache Chemistry
Chapter 13: The Web Services Binding
Chapter 14: A Complete CMIS Client Application
Appendix: The CMIS Query Language
Index
  • Chapter 1: Introducing the SOAP Web Services API
    • Web Services
      • Web Services in Alfresco
      • Introducing SOAP
        • SOAP vs. REST
        • The format of SOAP messages
        • The Web Services Description Language
    • Using Alfresco Web Services
      • Using the Alfresco Web Services client SDK
      • Setting up the Alfresco SDK
      • Testing the Web Services client
    • Summary
  • Chapter 2: Creating and Modifying Content
    • The Content Manipulation Language (CML)
      • Setting up the Java classpath
        • Using the precompiled client
        • Using third-party frameworks
    • Authentication
      • Setting the endpoint address with a properties file
      • Setting the endpoint address programmatically
    • Performing operations on nodes
      • Creating nodes
      • Creating content
        • Creating content using the content service
      • Removing nodes
      • Moving nodes
      • Copying nodes
    • Associations
      • Adding child nodes
      • Removing child nodes
    • Versioning
      • Updating nodes without versioning
      • Getting the version history
    • Aspects
      • Adding aspects
      • Removing aspects
    • Searching the repository
      • Performing Lucene queries
      • Querying associated nodes
        • Association
      • Querying child nodes
      • Querying parent nodes
    • Summary
  • Chapter 3: Collaboration and Administration
    • Creating collaborative content
      • Performing a check-out
      • Check-in
        • Check-in with versioning
        • Check-in—importing external content
      • Cancelling a check-out
    • Managing versioning explicitly
      • Creating a new version
      • Deleting all the versions
      • Getting the version history
      • Reverting a version
    • Managing locking explicitly
      • Locking
      • Unlocking
      • Getting the lock status
    • Classification and categories
      • Getting classifications
      • Describing a classification
      • Getting categories
      • Adding categories
      • Getting child categories
    • Authorization
      • Setting owners
      • Adding permissions
      • Creating authorities
      • Managing actions
        • Getting action definitions
      • Default actions
        • Getting an action definition
        • Executing actions
        • Saving actions
        • Getting actions
        • Removing actions
    • Managing rules
      • Default Conditions
      • Adding rules
    • Managing users
      • Adding users
      • Deleting users
      • Updating users
      • Changing passwords
      • Getting user information
      • Searching users
    • Summary
  • Chapter 4: A Complete Example
    • Setting up the project
    • The Bookshop model
      • Sign in page
      • Home page
      • Configure the bookshop repository
      • Book details page
      • Getting book properties
      • Checking the cart space
      • Getting all the associated reviews
    • Adding a book to the cart
      • Checking if the cart space exists
      • Creating the cart space
      • Adding a book in the cart
    • Cart page
      • Removing a book from the cart
      • Adding a review
    • Managing reviews page
      • Accepting reviews
      • Rejecting reviews
    • Changing user details
    • Summary
  • Chapter 5: Using the Alfresco Web Services from .NET
    • Setting up the project
      • Testing the .NET sample client
    • Searching the repository
    • Performing operations
      • Authentication
      • CRUD operations
        • Creating nodes
        • Creating content
        • Updating nodes
        • Copying nodes
        • Moving nodes
        • Removing nodes
    • Managing child associations
      • Adding child nodes
      • Removing child nodes
    • Summary
  • Chapter 6: Introducing the Web Scripts Framework
    • A lightweight alternative to SOAP Web Services
    • REST concepts
      • Constraints
      • Resources
      • Representations
      • REST in practice
        • Use URLs to identify resources
        • Use HTTP methods properly
      • Avoiding tight coupling
      • Use hyperlinks to drive the application state
    • Your first Web Script
      • Components of a Web Script
      • Creating your first Web Script
      • Invoking your first Web Script
      • Adding a controller
    • The Model-View-Controller pattern
    • URL matching
    • Authentication
      • Run as
      • The Login service
    • Transactions
    • Requesting a specific format
      • Status
    • Configuring Web Scripts
    • Cache control
    • Deployment
    • Summary
  • Chapter 7: Templating with FreeMarker
    • FreeMarker concepts
    • Variable interpolation
      • FreeMarker expressions
        • Scalars
        • Containers
        • Operators
        • Missing values
        • Built-ins
    • Directives
      • Assign
      • If
      • List
      • Include
      • Macro
        • Nested content
        • Macros with parameters
    • Comments
    • Using FreeMarker in Web Scripts
      • The TemplateNode API
        • Searching
    • A simple example
    • Generating an Atom Categories Document
      • Atom
      • The Alfresco Bookshop
      • Categories in Atom
      • Categories in Alfresco
      • Creating the Web Script
        • The descriptor
        • The controller
        • The template
        • Using the Web Script
      • Categories as JSON
    • Summary
  • Chapter 8: Writing a Web Script Controller in JavaScript and Java
    • Providing a Web Script with a JavaScript controller
    • Root objects
    • General scripting techniques
      • Importing scripts
      • Logging
      • Debugging
    • Searching the repository
      • Performing a simple Lucene search
        • A primer on Lucene query syntax
        • Sorting results
    • The ScriptNode API
      • Properties of nodes
        • Writing properties
      • Navigating the repository
      • Performing operations on nodes
        • Creating new nodes
        • Deleting nodes
        • Copying and moving nodes
      • Manipulating content
    • A step-by-step example—posting reviews
      • Requirements
      • The protocol
      • Representations
      • Implementing the first version
        • Extending the content model
        • Configuring the Alfresco Explorer
        • Creating the Web Script descriptor
        • Creating the controller
        • Creating the template
        • Testing the Web Script
      • Using Atom
        • Anatomy of an Atom entry
        • A controller that accepts Atom entries
      • Checking for duplicate reviews
        • Finding duplicates
        • The revised controller
    • Writing Web Scripts in Java
      • Types of Java-backed Web Scripts
        • Declarative Web Scripts
      • Posting reviews: The Java version
    • Summary
  • Chapter 9: Putting it All Together
    • The Atom Publishing Protocol
      • A bit of history
        • Enter AtomPub
      • AtomPub concepts
        • Resources and entries
        • Collections and feeds
      • The Service Document
      • Creating resources
        • Entry and media resources
      • Updating resources
      • Deleting resources
    • Listing books by category
      • Service URI
      • Response format
      • Implementing the service
        • The descriptor
        • The controller
        • The template
      • Testing the service
        • Using curl
        • A simple Java client
    • Creating a new book
      • Service URI
      • Request format
      • Implementing the service
        • The descriptor
        • The controller
        • The template
      • Uploading content
        • The descriptor
        • The controller
        • The template
      • Testing the service
        • Using curl
        • A simple Java client
    • Updating an existing book
      • The implementation
      • Testing with curl
      • Dealing with concurrent edits
        • Implementation
      • The Java client
    • Deleting a book
      • Testing deletion
    • Summary
  • Chapter 10: Overview of CMIS
    • A bit of history
      • A word of warning
    • Objectives of CMIS
      • What CMIS does not include
    • CMIS vs. JCR
    • The CMIS domain model
      • Objects
        • Documents
        • Folders
        • Relationships
        • Policies
        • Custom object types
      • Properties
    • Services
      • Repository Services
      • Navigation Services
      • Object Services
      • Multi-filing Services
      • Discovery Services
      • Versioning Services
      • Relationship Services
      • Policy Services
      • ACL Services
    • Capabilities
      • Navigation capabilities
      • Object capabilities
      • Filing capabilities
      • Versioning capabilities
      • Query capabilities
      • ACL capabilities
      • Capabilities supported by Alfresco
    • Protocol bindings
      • The AtomPub binding
      • The Web Services binding
    • CMIS in action
      • CMIS-enabled servers
        • Alfresco
        • Nuxeo
        • eXo
        • KnowledgeTree
        • Sense/Net
        • The closed-source world
      • Client toolkits
        • Apache Chemistry and OpenCMIS
        • Drupal
    • Summary
  • Chapter 11: The CMIS AtomPub Binding
    • The CMIS AtomPub binding
      • Authenticating
      • Getting the Service Document
        • Collections
        • Repository info and URI templates
      • Navigating the repository
      • Reading entries
      • Reading type information
      • Creating new objects
        • Creating a new folder
        • Creating a new document
      • Updating a document's metadata
      • Deleting a document
      • Performing a search
        • Paging search results
        • Queries
    • Summary
  • Chapter 12: Developing a CMIS Client using Apache Chemistry
    • Introducing Apache Chemistry
      • Chemistry, OpenCMIS, and the Alfresco TCK
    • Downloading and installing Chemistry
      • Building Chemistry
      • Importing Chemistry into Eclipse
    • The modules of the Chemistry client API
      • The main client classes
    • Setting up a connection
      • Setting up a connection with AtomPub
      • Setting up a connection with Web Services
    • Code samples
      • Listing the server's capabilities
      • Listing repository types
      • Getting a type definition
      • Listing the root folder
      • Creating a new folder
      • Creating a new text document
      • Uploading a binary document
      • Reading a document's content
      • Updating properties
      • Deleting a document
      • Searching
      • Listing relationships
    • Summary
  • Chapter 13: The Web Services Binding
    • Getting at the WSDLs
      • Setting up the client project
      • Declaring the CMIS client bean
    • Some necessary pieces: WS-Security and WS-I Basic Profile
    • Browsing the repository
    • Inspecting objects
    • Acting upon objects
      • Creating a new text document
      • Creating a new folder
      • Updating a text document
      • Updating properties
      • Deleting a document
      • Searching a document
    • Summary
  • Chapter 14: A Complete CMIS Client Application
    • CMISWiki—a CMIS-based wiki
      • Requirements
      • Software building blocks
        • The Google Web Toolkit
        • The Mylyn WikiText parser
    • Building and running CMISWiki
    • The user interface
    • Implementation
      • Client-side code
        • The GWT UiBinder
        • Links and the browser history
      • Server-side code
      • Implementation of use cases
        • Creating a new page
        • Loading an existing page
        • Uploading an image
        • Displaying an image
        • Searching
    • Summary
  • Appendix: The CMIS Query Language
    • The relational view projection
      • Hierarchy of types and the relational view
    • Results of queries
    • Grammar of queries
      • The SELECT clause
      • The FROM clause
        • Joins
      • The WHERE clause
      • Comparison operators
      • Testing multi-valued properties
      • Full-text search using CONTAINS
        • The IN_FOLDER predicate
        • The IN_TREE predicate
      • The ORDER BY clause
    • Escaping special characters

Ugo Cei

Ugo Cei is Solutions Delivery Manager at Sourcesense Italy. He has over 20 years of experience in the IT sector. His areas of expertise include Web application development, content management systems, database, and search technologies. He has a Ph.D. in Engineering from the University of Pavia, Italy.Ugo is a long-time active contributor to numerous Open Source project and a member of the Apache Software Foundation.Besides his interests in computer-related matters, Ugo is a passionate photographer. He sometimes dreams of leaving the IT field to pursue his passion full-time, and travel the world with a camera.


Piergiorgio Lucidi

Piergiorgio Lucidi is an open source ECM Specialist at Sourcesense. Sourcesense is a European open source systems integrator providing consultancy, support, and services around key open source technologies. He works as Software Engineer, and he has 8 years of experience in the areas of Enterprise Content Management (ECM), system integrations, web, and mobile applications. He is an expert in integrating ECM solutions in web and portal applications. He contributes as PMC member, Project Leader, and Committer at the Apache Software Foundation for the project Apache ManifoldCF; he also contributes on ECM connectors such as CMIS, Alfresco, and ElasticSearch. He is a Project Leader and Committer of the JBoss Community, and he contributes to some of the projects of the JBoss Portal platform. He is a Speaker at conferences dedicated to ECM, Java, Spring Framework, and open source products and technologies. He is an Author, Technical Reviewer, and Affiliate Partner at Packt Publishing, for whom he wrote the technical book Alfresco 3 Web Services. As Technical Reviewer, he contributed to both Alfresco 3 Cookbook and Alfresco Share. As Affiliate Partner, he writes and publishes book reviews on his website Open4Dev (http://www.open4dev.com/).
Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Alfresco 3 Web Services +    Oracle E-Business Suite Financials R12: A Functionality Guide =
50% Off
the second eBook
Price for both: £34.45

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Gain a comprehensive overview of the specifications of Web services
  • Learn how to manipulate contents in Alfresco using different operations and APIs
  • Build applications on top of Alfresco using Alfresco Web Services API
  • Extend the Alfresco RESTful API using WebScripts
  • Make your own different output renditions using FreeMarker
  • Explore the CMIS specification with all the details about the Alfresco implementation
  • Learn how to contact Alfresco with your client using one of the bindings of CMIS
  • Make your CMIS integration more standard using the Apache Chemistry project

 

In Detail

Alfresco 3 is the leading open source enterprise content management system that offers powerful features for interacting with the content in its repository from outside the system. These include the support for the Content Management Interoperability Services (CMIS) implementation, reusable web scripts, and a Web Services API.

This is the first book to show you how to use Web Services in Alfresco. Packed with examples, you'll learn how to build applications using Alfresco remote APIs based on SOAP and REST. You'll see how to use different APIs and bindings such as WebServices, WebScripts, and CMIS.

Alfresco 3 Web Services starts off by showing you the services exposed by the Alfresco Web Services API, and how the API fits into the Alfresco software architecture.You learn to develop your application firstly by setting up and testing your Java development environment using the Alfresco SDK in Eclipse IDE and secondly by associating the Alfresco source code and Javadocs in Eclipse.

With the help of real world practical examples, you learn how to do things like create, sort, and call Web Scripts, and invoke remote calls to Alfresco repository. To get the most from the Web Services API, you need to know about the basics of the Content Manipulation Language (CML), and the book takes you through this.

Examples such as the bookshop application show you how to sign in, change user sessions, get, remove and change public and private associated contents, manage a cart for your e-commerce application, and so on.Next, by implementing a Microsoft .NET application using the Alfresco Web Services API, you see how to perform operations against the repository from your .NET application.The book provides you with REST and SOAP concepts, their comparison, basics of the FreeMarker language, Atom Publishing Protocol, JavaScript controllers, and the Apache Chemistry project.

By the end of this book, you will be able to put together your knowledge about CMIS and the Apache Chemistry toolkit to develop a complete working application that uses Alfresco, via CMIS, as a back-end storage. Last but not the least, this book also covers the WebServices security profiles— the best practices for Web Services to promote better interoperability.

A step-by-step guide to implementing the SOAP API, Web Scripts, and CMIS.

Approach

The book is a detailed guide to building integrations on top of Alfresco filled with tons of examples and sample code. It is intended to be a complete overview to help developers choose a specific API with related method invocations.

Who this book is for

If you are a web developer who wants to build business applications on top of Alfresco, then this is the book for you. Basic understanding of XML, Web development concepts (HTTP, MVC) and Web Services is required.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
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