Nuxeo Document Management - Version 5.3

The Reference guide

Julien Anguenot, Eric Barroca, Benoit Delbosc, Thierry Delprat, Damien Dupraz, Laurent Doguin, Alain Escaffre, Stefane Fermigier, Laurent Godard, Olivier Grisel, Florent Guillaume, Solen Guitter, Jean-Marc Orliaguet, Narcis Paslaru, Georges Racinet, Thibault Soulcie, Bogdan Stefanescu, Anahide Tchertchian, Quentin Lamerand, M.-A. Darche, Julien Carsique, Catalin Baican, Stephane Lacoin, Thomas Roger

5.3

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2; with Invariant Section “Commercial Support”, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at the URL: http://www.gnu.org/copyleft/fdl.html


Table of Contents

I. Introduction
1. Preface
1.1. What this Book Covers
1.2. What this book doesn't cover
1.3. Target Audience
1.4. About Nuxeo
1.5. About Open Source
2. Introduction
2.1. Enterprise Content Management
2.1.1. Why ECM?
2.2. The Nuxeo ECM platform
2.3. Introduction FAQ
2.3.1. What are Nuxeo EP 5, Nuxeo EP and Nuxeo RCP?
2.4. Intended audience
2.5. What this book covers
3. Getting Started
3.1. Overview
3.2. Prerequisites
3.3. Eclipse Plugins v Command Line
3.4. Learning from the project sample
3.5. Setting up the sample project
3.5.1. Some handy environment settings
3.5.2. Checking the sample project out of mercurial
3.5.3. Initialize the Eclipse workspace
3.5.4. Setting up your project for importing into Eclipse
3.5.5. Importing the sample project into Eclipse
3.5.6. Running JUnit tests on the sample code
3.5.7. Building the jar file from the sample project
3.5.8. Deploying the jar file to the Nuxeo server
3.5.9. Starting the nuxeo server
3.5.10. Viewing your changes via the UI
3.5.11. Using Ant
3.6. Understanding the sample code
3.6.1. Two types of changes
3.6.2. The layout of our sample project
3.6.3. A bit about extension points
3.6.4. Declaring the 'Book' document type
3.6.5. Displaying book documents
3.6.6. Actions, tabs and behavior
3.6.7. Making book documents indexable and searchable
3.6.8. Enabling drag&drop creation (plus creating our own extension points)
3.6.9. Regulating book states
3.6.10. Workflow
3.6.11. Listening for events
3.7. Starting a new project
3.8. Using Documentation
3.9. Other IDEs: IntelliJ IDEA and NetBeans
3.9.1. IDEA
3.9.2. NetBeans
4. General Overview
4.1. Introduction
4.1.1. Architecture Goals
4.1.2. Main concepts and design
4.2. Nuxeo 5 Architecture Overview
4.3. Nuxeo Runtime: the Nuxeo EP component model
4.3.1. The motivations for the runtime layer
4.3.2. Extensible component model
4.3.3. Flexible deployment system
4.4. Nuxeo EP layered architecture
4.4.1. Layers in Nuxeo EP
4.4.2. API and Packaging impacts
4.5. Core Layer overview
4.5.1. Features of Nuxeo Core
4.5.2. Nuxeo Core main modules
4.5.3. Schemas and document types
4.5.4. The life cycle associated with documents
4.5.5. Security model
4.5.6. Core events system
4.5.7. Query system
4.5.8. Versioning system
4.5.9. Repository and SPI Model
4.5.10. DocumentModel
4.5.11. Proxies
4.5.12. Core API
4.6. Service Layer overview
4.6.1. Role of services in Nuxeo EP architecture
4.6.2. Services implementation patterns
4.6.3. Platform API
4.6.4. Adapters
4.6.5. Some examples of Nuxeo EP services
4.7. Web presentation layer overview
4.7.1. Technology choices
4.7.2. Componentized web application
5. Schemas and Documents
5.1. Introduction
5.1.1. Concepts
5.2. Schemas
5.3. Core Document Types
5.4. ECM Document Types
5.4.1. Label and Icon
5.4.2. Default view
5.4.3. Layout
5.4.4. Containment rules
5.4.5. Hidden cases
5.4.6. Summary
II. Platform Services
6. Exception Handling
6.1. Introduction
6.2. Extension Points
6.2.1. requestdump
6.2.2. listener
6.2.3. errorhandlers
7. Actions, Views, Navigation URLs and JSF tags
7.1. Introduction
7.2. Actions
7.2.1. Concepts
7.2.2. Manage actions
7.3. Views
7.3.1. UI Views
7.3.2. Manage views
7.4. Navigation URLs
7.4.1. Document view codec service
7.4.2. URL policy service
7.4.3. Additional configuration
7.4.4. URL JSF tags
7.5. Nuxeo Document Lists Manager
7.6. Nuxeo File Manager
7.7. Nuxeo JSF tags
8. Layouts
8.1. Introduction
8.1.1. Layouts
8.1.2. Widgets
8.1.3. Widget types
8.1.4. Modes
8.2. Manage layouts
8.2.1. Layout registration
8.2.2. Layout definition
8.2.3. Widget definition
8.2.4. Listing layout definition
8.2.5. EL expressions in layouts and widgets
8.3. Document layouts
8.4. Layout display
8.5. Standard widget types
8.5.1. text
8.5.2. int
8.5.3. secret
8.5.4. textarea
8.5.5. datetime
8.5.6. template
8.5.7. file
8.5.8. htmltext
8.5.9. selectOneDirectory
8.5.10. selectManyDirectory
8.5.11. list
8.5.12. checkbox
8.6. Custom templates
8.6.1. Custom layout template
8.6.2. Listing template
8.6.3. Custom widget template
8.6.4. Builtin templates to handle complex properties
8.7. Custom widget types
8.8. Generic layout usage
9. Event Listeners and Scheduling
9.1. Introduction
9.2. Concepts
9.3. Adding an event listener
9.4. Upgrading an event listener
9.5. Adding an event
9.6. From CoreEvents to JMS Messages
9.7. Adding a JMS message listener
9.8. Scheduling
10. User Notification Service
10.1. Introduction
10.2. Notification concept
10.3. Notification channels
10.4. E-mail notifications
11. Indexing & Searching
11.1. Introduction
11.2. Configuration
11.2.1. Concepts
11.2.2. The indexableDocType extension point
11.2.3. The resource extension point
11.2.4. Field configuration
11.2.5. Text fields and analyzers
11.2.6. Boolean attributes
11.2.7. Schema resources and fields without configuration
11.2.8. Schema resources
11.2.9. Automatic fields configuration
11.3. Programmatic Searching
11.3.1. Fields and literals
11.3.2. WHERE statements
11.4. The Compass plugin
11.4.1. Configuring Compass
11.4.2. Global configuration
11.4.3. Mappings for Nuxeo
11.4.4. Text fields behavior
11.5. Building a search UI with QueryModel
12. Look and feel
12.1. Introduction
12.2. Principle
12.3. Mechanism
12.3.1. The Elements
12.3.2. The format
12.3.3. The negotiation
12.3.4. The engine
12.3.5. Resource management
12.3.6. Application
12.4. Customizing the theme
12.4.1. Modifying the current theme using theme-default.xml
12.4.2. Modifying the current theme
12.4.3. Adding a new theme and its pages
13. Authentication, Users & Groups Management
13.1. Introduction
13.2. Users and Groups configuration
13.2.1. Schemas
13.2.2. Directories
13.2.3. UserManager
13.2.4. User Management Interface
13.3. Authentication
13.3.1. Authentication Framework Overview
13.3.2. Pluggable JAAS Login Module
13.3.3. Pluggable Web Authentication Filter
14. Security Policy Service
14.1. Introduction
14.2. Architecture
14.3. Policy contributions
14.3.1. Core policy contribution
14.3.2. Search policy contribution
15. Workflow & jBPM
15.1. Workflow in Nuxeo 5.1
15.1.1. Deploying process definitions
15.2. Workflow from Nuxeo 5.2: the jBPM Service
15.2.1. Introduction
15.2.2. jBPM service configuration
15.2.3. Document management
15.2.4. Default processes
15.2.5. Nuxeo jBPM How-to
16. Document Versioning
16.1. Setting the version of a document
16.2. Modifying automatically the version of a document
16.3. Accessing document from previous version
16.4. The versioning service implementation
17. Audit Service
17.1. Introduction
17.2. Features
17.3. Architecture
17.4. Retrieving entries
17.5. Contributing the audit service
17.5.1. Recording new events types
17.5.2. Recording additional informations
18. Tag Service
18.1. Introduction
18.2. Features
18.3. Architecture
19. Directories and Vocabularies
19.1. Introduction
19.2. Directory with a Relational Database Management System (SQL) server as backend
19.3. Directory with an LDAP server as backend
19.3.1. Server definition
19.3.2. Directory declaration
19.4. Handling references between directory entries
19.4.1. References defined by a many-to-many SQL table
19.4.2. Static reference as a dn-valued LDAP attribute
19.4.3. Dynamic reference as a ldapUrl-valued LDAP attribute
19.4.4. LDAP tree reference
19.4.5. Defining inverse references
19.5. Combining multiple directories into a single virtual directory
19.5.1. Multi-directory sources
19.5.2. Sub-directories
19.6. The Directory API
19.7.
19.7.1. Building custom option lists in forms with directories
19.7.2. Vocabularies/Directories management
20. Binary content
20.1. Introduction
20.2. Standard blob management
20.3. External blob management
20.4. About BlobHolder
21. Mimetype detection
21.1. Introduction
21.2. MimetypeRegistry
21.3. Mimetype sniffing
21.4. Invoking the mimetype detection
22. Content Transformation
22.1. Introduction
22.2. Plugins module
22.2.1. Creating a plugin
22.2.2. Declaring a plugin module
22.2.3. Using a transform plugin
22.3. Available transforms
22.3.1. Document conversion
22.3.2. Pdfbox
22.3.3. OLE objects extraction
22.3.4. Office files merger
22.3.5. XSL Transformation
23. Nuxeo Conversion Service
23.1. Conversion Service vs Transformation Service
23.1.1. Motivations for this API changes
23.1.2. What has been improved
23.1.3. About compatibility
23.2. Using Conversion Service
23.2.1. built-in converters
23.2.2. Conversion Service API
23.2.3. Configuring the Convertion Service
23.2.4. Contributing converters
23.2.5. Converters based on external command line tools
24. Relations
24.1. Introduction
24.2. Concepts
24.3. Configuration
24.3.1. Graph instances
24.3.2. Resource adapters
24.4. Manage relations
24.5. Display relations
24.6. Architecture overview
25. Placeful Configuration
25.1. Introduction
25.2. Using Placeful Configuration
25.3. Contributing a placeful configuration
25.4. Available storage
25.4.1. In memory storage
25.4.2. Directory storage
25.5. Exemple of extension definition
26. Content Template Service
26.1. Introduction
26.2. Contributing a content factory
26.2.1. Factory Binding
26.2.2. Template
26.2.3. ACL
26.3. How to Register your own Factory
27. Nuxeo's Management Service
27.1. Integrating Nuxeo monitoring in your management system
27.1.1. Inventory (nx:*,management=inventory)
27.1.2. Metric (nx:*,metric=*,management=metric)
27.1.3. Quality (nx:*,usecase=*,management=usecase)
27.2. Integrating management in nuxeo server
27.2.1. nuxeo-runtime-management
27.2.2. nuxeo-platform-management
27.2.3. nuxeo-webengine-management
27.3. Contributing management
27.3.1. Publishing
27.3.2. Providing shortcuts
27.3.3. Reporting quality
28. Publisher Service
28.1. Overview
28.2. Local sections
28.3. Remote sections
28.3.1. Server configuration
28.3.2. Client configuration
28.4. File system
III. Core Services
29. Nuxeo Runtime
29.1. Overview
29.1.1. Main Goals
29.1.2. Main Features
29.2. What is OSGi?
29.3. OSGi Support
29.3.1. Supported Features
29.3.2. Unsupported Features
29.3.3. Planned Features
29.4. Component Model
29.4.1. What are components?
29.4.2. Main Features
29.4.3. Planned Features
29.4.4. Adapting Components
29.4.5. Flexible Model
29.4.6. Component Life Cycle
29.4.7. Component Extensibility
29.5. Supported Host Platforms
29.5.1. JBoss Integration
29.5.2. Eclipse Integration
29.6. Using Nuxeo Runtime
29.6.1. Creating Components
29.6.2. Using components
29.6.3. XML Component Descriptors
29.7. Integration tests for Nuxeo Runtime applications
29.7.1. The NXRuntimeTestCase base class
29.7.2. Frequent patterns
29.8. Detailed Architecture
29.9. References
30. Nuxeo Core Documentation
30.1. TODO: BS
30.2. Overview
30.2.1. Main goals
30.2.2. Nuxeo Core Components
30.3. Nuxeo Core Architecture
30.3.1. Model Layer (or Internal API)
30.3.2. Implementation Layer
30.3.3. Facade Layer (or Public API)
30.3.4. Deployment
30.3.5. Client Session
30.4. The Repository Model
30.4.1. Document and Schemas
30.4.2. Document Facets
30.4.3. Document Annotations
30.4.4. Document Access Control
30.4.5. Life Cycle
30.4.6. Query Engine
30.4.7. The Public API
30.4.8. Integration with Applications Servers
30.5. Extension Points
30.5.1. Session Factories
30.5.2. LifeCycle Managers
31. Nuxeo Core Import / Export API
31.1. Export Format
31.1.1. document.xml format
31.1.2. Inlining Blobs
31.2. Document Pipe
31.3. Document Reader
31.4. Document Writer
31.5. Document Transformer
31.6. API Examples
31.6.1. Exporting data from a Nuxeo repository to a Zip archive
31.6.2. Importing data from a Zip archive to a Nuxeo repository
31.6.3. Export a single document as an XML with blobs inlined.
32. Nuxeo Event Service
32.1. Nuxeo event model
32.1.1. Event
32.1.2. EventContext
32.1.3. EventListener
32.1.4. Transactions and Events
32.1.5. EventBundle
32.1.6. PostCommitEventListener
32.2. Using Events
32.2.1. Firing Events
32.2.2. Contributing an EventListener
32.2.3. Contributing a PostCommitEventListener
32.3. JMS and Nuxeo Events
32.3.1. JMS integration
32.3.2. Enabling JMS bridge
32.3.3. From 5.1 event model to 5.2
33. Experimental Topics
33.1. Introduction
33.2. Runtime Support for Scripting Languages
33.2.1. Introduction
33.2.2. Supported languages
33.2.3. Running a Script
IV. SOA, Web Services and various integration solutions
34. The Nuxeo Restlet API
34.1. Restlet Integration
34.1.1. Restlet types in Nuxeo 5
34.1.2. Restlet URL and parameters mapping
34.1.3. Contributing a new restlet
34.2. Nuxeo default restlets
34.2.1. Browse restlet
34.2.2. Export restlet
34.2.3. Lock restlet
34.2.4. Plugin upload restlet
34.3. Nuxeo RestPack
34.3.1. Installing the RestPack
34.3.2. Restlets included in the RestPack
34.4. Nuxeo WebEngine Restlets
35. Nuxeo HTTP client
35.1. HTTP Client Library
35.2. HTTP client authentication
36. Web services
36.1. Audit web service
36.2. Remoting web service
36.3. Indexing gateway service
36.4. Metro web services
37. Nuxeo JSR 168 Integration
37.1. Overview
37.2. Testing Nuxeo Portlets
37.2.1. Prerequisites
37.2.2. Generate a sample project with nuxeo-archetype-portlet archetype
37.2.3. Test the newly created portlet
37.3. Developping Nuxeo Portlets
37.3.1. NuxeoPortlet class
37.3.2. Project from nuxeo-archetype-portlet archetype
37.3.3. portlet.xml
37.3.4. Restlets
37.4. Available portlets
37.4.1. Nuxeo Search Portlet
38. Desktop integration tools
38.1. Drag and drop browser extensions
38.1.1. Server side import service: the FileManagerService
38.1.2. Microsoft Internet Explorer plugin
38.1.3. Mozilla Firefox plugin
38.2. Online document editing with LiveEdit
38.2.1. Functional overview
38.2.2. Functional use cases
38.2.3. Architectural overview
38.2.4. The Web Service component
38.2.5. More on editor launch
38.2.6. More on pre- and post-editing actions
38.3. Configuring LiveEdit links
38.3.1. Configuration policies
38.3.2. Changing the configuration policy
39. Nuxeo WebDAV interface
39.1. WebDAV clients
39.1.1. Path vs displayName
39.1.2. Filesystem resource vs Nuxeo DocumentModel artifact
39.1.3. MS Web Folder client
39.2. Fooling WebDAV clients
39.2.1. Available hacks
39.2.2. Configuring Nuxeo WebDAV connector for each client.
39.3. Nuxeo EP WebDAV implementation
39.3.1. Nuxeo EP WebDAV-specific features
39.3.2. Known limitations
39.4. Using the Nuxeo WebDAV connector
39.4.1. Installing the WebDAV connector
39.4.2. Connecting a client to Nuxeo WebDAV connector
40. Reporting: Eclipse BIRT Driver
40.1. Overview
40.2. How to use it
40.3. Tomcat integration HOWTO
41. Nuxeo Flex Connector
41.1. Overview
41.2. Development environment
41.3. Build and Deploy
41.3.1. Sample Overview
41.4. Dive In
41.4.1. Data Services Configuration
41.4.2. Your First Flex application
41.4.3. Granite DS configuration
V. Administration overview
42. OS requirements, existing and recommended configuration
42.1. Required software
42.2. Recommended configuration
42.2.1. Hardware configuration
42.2.2. Default configuration
42.2.3. For optimal performances
42.3. Known working configurations
42.3.1. OS
42.3.2. JVM
42.3.3. Storage backends
42.3.4. LDAP
43. SMTP Server configuration
44. RDBMS Storage and Database Configuration
44.1. Storages in Nuxeo EP
44.2. Installing the JDBC driver
44.3. Configuring Nuxeo Core Storage
44.3.1. Visible Content Store configuration
44.3.2. JCR backend configuration
44.3.3. Set up your RDBMS
44.3.4. Start Nuxeo EP
44.4. Configuring Storage for other Nuxeo Services
44.4.1. Configuring datasources
44.4.2. Relation service configuration
44.4.3. Tag service configuration
44.4.4. Compass search engine dialect configuration
44.5. Setting up a new repository configuration
44.5.1. Add the new repository configuration
44.5.2. Declare the new repository to the platform
45. LDAP Integration
45.1. For users/groups storage backend
46. OpenOffice.org server installation
46.1. Installation
46.1.1. Start server
46.1.2. Parameters
46.1.3. Installing an extension
46.1.4. Notes
46.2. Running OpenOffice as a Daemon
46.2.1. Nuxeo OOo Daemon
46.2.2. Configuring Nuxeo OOo Daemon
47. Run Nuxeo EP with a specific IP binding
48. Backup, restore and reset
48.1. Backup
48.2. Backup before an upgrade
48.3. Restore
48.4. Reset
49. Offline client synchronization
49.1. Working environment
49.2. Use case
49.3. User guide
49.4. How does it work?
50. Replication tool
50.1. Functional Objective
50.2. Use cases
50.3. User guide
50.4. How does it work?
50.5. Customizing the import code
51. Monitoring Nuxeo
51.1. Configure Nuxeo to use a single JMX server.
51.1.1. Configuration from Nuxeo 5.3.0
51.1.2. Configuration for Nuxeo 5.2.0
51.1.3. Configuration for Nuxeo before 5.2.0
51.2. Interesting data to monitor.
51.3. Persisting and analysind data.
51.4. Querying the JMX server remotely
52. The Nuxeo Shell
52.1. Overview
52.2. User Manual
52.2.1. Command Options
52.2.2. Commands
52.3. Troubleshooting
52.3.1. Check listened IP
52.3.2. Check connected server
52.3.3. Multi-machine case
52.4. Extending the shell
52.4.1. Registering New Custom Commands
52.4.2. Java Code for the new commands
52.4.3. Building the shell plugin
52.4.4. Deploying the shell plugin
53. Build Nuxeo distributions from sources
53.1. Requirements
53.2. Limitations
53.3. Download Nuxeo distribution sources
53.3.1. Download archive
53.3.2. Download sources with Mercurial
53.4. Build from sources
53.4.1. Available packages
53.4.2. Usage
VI. Core developer guide
54. Coding and Design Guidelines
54.1. Introduction
54.2. External Coding Standards
54.3. Some points that need attention
54.3.1. Java code formating
54.3.2. XML code formatting
54.3.3. Design
54.3.4. Unit tests
54.3.5. Security
54.3.6. Naming convention
54.3.7. Information hiding
54.3.8. Use modern Java features
54.3.9. Logging
54.3.10. Documentation: Comments and Javadoc
54.3.11. Deprecation
54.4. Methodology tips
54.4.1. Use the power of your IDE (and its plugins)
54.4.2. Refactor
54.5. Important references
55. Development Tools and Process
55.1. Mercurial usage
55.1.1. Overview and online documentation
55.1.2. Nuxeo common usage
55.1.3. Best practices
55.1.4. Useful scripts, commands and tips
55.1.5. Advanced usage and specific use cases
55.2. Maven usage
55.2.1. Overview and online documentation
55.2.2. Generate a new project with the nuxeo-archetype-start archetype
55.3. Code Quality with Eclipse Plugins
55.3.1. Using Checkstyle
55.3.2. Using TPTP
55.3.3. Using FindBugs
55.4. Profiling with NetBeans Profiler
55.5. NXPointDoc Documentation tool
55.5.1. Documenting a component
55.5.2. Creating the NxPointDoc site
55.5.3. Browsing NxPointDoc
55.6. Quality Assurance with continuous integration
55.6.1. Rules and means
55.6.2. Quality directives for Nuxeo developers
55.7. Release process
55.7.1. Overview
55.7.2. Continuous integration coverage
55.7.3. Help testing release candidates
56. Packaging Nuxeo EAR
56.1. Introduction
56.2. Basic project structure
56.3. The EAR module
56.3.1. Assembly descriptor
56.3.2. Add some resources
56.4. Improve usability
56.4.1. Thanks to Maven
56.4.2. Thanks to Ant
56.5. Recommended multi-machine packagings
56.5.1. Bi-machine: stateful/stateless
57. Release Management
57.1. Introduction
57.2. Let's release!
57.2.1. Remove all dependencies on SNAPSHOT versions
57.2.2. Checkout the code and clean your repository
57.2.3. Test the release
57.2.4. Perform the release
57.2.5. You're done
VII. Add-ons
58. Add-ons
58.1. Introduction
59. Nuxeo Annotation Service
59.1. Introduction
59.1.1. W3C Annotea
59.1.2. Logical architecture overview
59.1.3. XPointer integration and extension.
59.2. Annotation Service Core
59.2.1. Overview
59.2.2. Implementation
59.2.3. Storage
59.2.4. uriResolver
59.2.5. urlPatternFilter
59.2.6. metadata
59.2.7. permissionManager and permissionMapper
59.2.8. annotabilityManager
59.2.9. UID Generation
59.2.10. Event management
59.3. NXAS Repository Plugin
59.3.1. Overview
59.3.2. Default contribution
59.3.3. Extension Point
59.3.4. documentEventListener
59.3.5. securityManager
59.3.6. jcrLifecycleEventId and graphManagerEventListener
59.4. NXAS Web
59.4.1. Overview
59.4.2. Extension Point
59.4.3. Configuration
59.5. Annotation Service Facade
59.6. Annotation Service HTTP Gateway
59.6.1. Overview
59.7. References
60. Virtual Navigation
60.1. Virtual Navigation
60.1.1. Virtual Navigation presentation
60.1.2. Virtual Navigation configuration
61. Metadata Extraction Service
61.1. Introduction
61.2. Metadata extraction module
61.2.1. Defining a contribution for metadata extraction
61.2.2. Specifying input parameters
61.2.3. Chaining extractions
61.2.4. Creating a plugin for metadata extraction
61.2.5. Using a metadata extraction plugin
62. Unicity Service
62.1. How does it works ?
62.2. What you need:
62.3. Configuration
62.4. Snippets
63. Nuxeo Mail Service
63.1. Presentation
63.2. Basic Use
63.2.1. Configuration
63.3. Advanced Use
64. Imaging
64.1. Introduction
64.2. Imaging API
64.3. Imaging transform
64.4. Imaging web
64.5. Imaging core
65. Nuxeo Preview Addon
65.1. Overview
65.2. Installing the Preview Addon
65.2.1. Deploy the Addon
65.2.2. Configure Transformers
65.3. Extensions and Pluggability
65.3.1. Pluggable Adapters
65.3.2. Pluggable HTML Transformers
65.4. Previews and URLs
66. Nuxeo Tiling service Addon
66.1. Overview
66.2. How tiles are defined and computed
66.3. Installing the picture tiling Addon
66.3.1. Requirements
66.3.2. Deploy the addon
66.3.3. Configuration
66.4. Testing the tiling service
66.4.1. URL and restAPI
66.4.2. simple test client
67. Nuxeo DocumentLink Addon
67.1. Overview
67.2. How does it work
67.3. DocumentLink and Repository
67.4. Using DocumentLink
67.4.1. Using the adapter
67.4.2. Using the DocRepository
68. Nuxeo Search Center
68.1. Overview
68.2. Installing and testing the search center
68.2.1. Building from source
68.2.2. Deploying on a Nuxeo server
68.2.3. Using the Search Center
68.3. How does it work
68.3.1. The GWT client
68.3.2. The JAX-RS server
68.3.3. The SearchCenterService
68.4. How to customize the list of available filters
68.4.1. FilterWidgets
68.4.2. FilterSets
68.5. How to build new GWT filter widgets
68.5.1. Setting up a GWT eclipse development environment
68.5.2. Existing filter widgets
68.5.3. TODO: layout and extension points
VIII. Annexes
A. FAQs
A.1. Deployment and Operations
B. Detailed Development Software Installation Instructions
B.1. Installing Java
B.1.1. Using the Sun Java Development Kit (Windows and linux)
B.1.2. Using a package management systems (Linux)
B.1.3. Manual installation (Linux)
B.1.4. Setting up JAVA_HOME (Windows, Linux, Mac OS)
B.2. Installing Ant
B.3. Installing Maven
B.3.1. What is Maven?
B.3.2. Installing Maven
B.4. Installing JBoss AS
B.4.1. JBoss documentation
B.4.2. Enable EJB3 support
B.4.3. JBoss AS listening ports customization
B.4.4. Affected JBoss services
B.5. Installing a Subversion client
B.5.1. Generic subversion clients with linux
B.5.2. Windows
B.6. Installing mercurial
B.6.1. Linux
B.6.2. Windows
B.6.3. Mac OS
B.6.4. Setting a username
B.6.5. Activating pre-integrated extensions
B.6.6. Using forest
B.7. Chapter Key Point
C. Commercial Support
C.1. About Us
C.2. Contact information
C.2.1. General
C.2.2. Europe
C.2.3. USA