eXo Platform 3.5 Documentation
User Guide
eXo Platform
Contribute to documentation
Introduction
About eXo Platform
Browser compatibility
Get Started
Glossary
Portlet
Navigation
Gadget
Drive
Podcast
File Plan
eXo Platform 3.5 interface
Manage accounts
Register new account
Sign in & Sign out
Change account settings
Retrieve account and password
Manage language
Change the display language permanently
Change the display language for another user
Manage Your Organization
Manage Your Portals
Manage permissions
Manage sites
Manage navigation nodes
Manage pages
Manage page navigation
Portal's page navigation
User's page navigation
Group's page navigation
Edit a group's page navigation
Create a new page navigation
Change priority of page's navigation
Delete a group's navigation
Manage applications
Inside a portal
Manage portlets and gadgets
Import portlets and gadgets
View/Edit detailed information of a portlet/gadget
Edit a specific portlet
Add a gadget
Add a new gadget from Dashboard
Edit a gadget
Dashboard portlet
Use the Dashboard workspace
Change gadget preferences
Add more external gadgets from Dashboard
Use Gadgets in your dashboards
Engagement gadgets
Latest Forum Posts
Top Voted Topics
Forum Statistics
Friend Suggestions
Audit gadgets
Login History
Collab gadgets
eXo Calendar Gadget
Management and Monitoring Gadgets
Memory Charts
Cache Levels
Applications Statistics
All Template Statistics
10 Slowest Templates
Services Management
eXo Scripting Console
Inside Desktop
Add an application
Open an application
Quit an application
Change the Desktop title and background
Organize Your Content
Structure content
Access Sites Explorer
Drives
Private drive
Public drive
Personal Documents drive
Drive of a specific group
Hide/Show the sidebar in a drive
Views
Admin view
Cover Flow view
Icons view
Thumbnails view
Slide Show view
Timeline view
Functions on action tabs
Add a category
Add a document
Add a folder
Add translations to a document
Add a Symlink
Comment
Edit a document
Export nodes
Import nodes
Manage actions
Add an action
View actions
Edit an action
Delete an action
Manage auditing
Manage categories
Assign a category to a node
Delete a category
Show/Hide a content
Manage publication
Manage relations
Add a relation
Delete a relation
View relations
Manage versions
Add versions to a node
Add/Remove labels for versions
View versions
Restore a version
Delete a version
Multi-Languages
Overload thumbnails
Request approval
Approve a content
Publish a content
Show drives
Show JCR Structure
Tag documents
Upload files into folders
View metadata
View node types
View permissions
View properties
View relations
Vote for a document
Watch documents
Actions on folders and documents
Add to favorites
Copy/Paste & Cut/Paste
Edit documents
Delete folders and documents
Drag and drop folders and documents
Lock/Unlock folders and documents
Rename folders and documents
Add a Symlink
View WebDAV
View information
View document
Copy a URL to the clipboard
Manage tags
Content Administration
Categories and Tags
Manage tags
Edit a tag style
Delete a tag style
Tag Permission Manager
Manage categories
Add a category tree
Edit a category tree
Content Presentation
Manage a template
Manage metadata
Manage views
Views tab
ECM Templates tab
Manage drives
Add a new drive
Edit a drive
Delete a drive
Content Types
Namespace registry
Manage node types
View node types
Advanced Configuration
Manage queries
Manage Scripts
Create an action type
Manage locks
Manage content
Contribute content
Edit mode
InContext Editing
Add a content
Edit a content
Manage content
Preferences
Inline Editing
CKEditor
Publication process
Content inside categories
Create a content inside a category
Manage content in Sites Explorer
Create a new web content
Edit a webcontent
Delete a webcontent
Publish a webcontent
Preferences
Search in Sites Explorer
Quick search
Advanced search
Search by Name
Search with constraints
Methods to add the required constraints
Search by creating a new query
Search by existing queries
Search with saved queries
Manage content with WebDAV
How to use WebDAV in eXo Platform?
Add new content to a specific site
Delete a web content
Manage contents with Fast Content Creator
Configuration of Fast Content Creator
Create a new content
View a content
Manage contents list viewer by query
Create content templates with Form Builder
Manage Category Navigation
Manage SEO
Print content
Manage newsletters
Manage workflows
Holiday process
Create a holiday process
Manage a holiday process
Pay raise process
Create a pay raise process
Manage a pay raise process
Upload a process
View process detail
Collaborate With Your Colleagues
Manage your calendar
Calendar views
Manage a calendar group
Add a new calendar group
Edit a calendar group
Delete a calendar group
Create a calendar
Create a personal calendar
Create a group calendar
Create a remote calendar
Edit a calendar
Set the calendar color
Delete a calendar
Export/Import a calendar
Share a personal calendar
Schedule an event
View details of an event
Create a new event
Quick add an event
Add a detailed event
Create a recurring event
Create a reminder for upcoming events
Add participants to an event
View the availability time of participants
Edit an event
Drag and drop an event
Export/Import an event
Delete an event
Schedule a task
View task details
Create a new task
Quick add a task
Add a detailed task
Assign a task delegation
Create a reminder
Edit task details
Drag and drop a task
Export/Import a task
Delete a task
Search for events/tasks
Quick search
Advanced Search
More actions
Generate RSS
Edit Calendar settings
Manage categories
Add a new category
Edit/Delete a category
Add Agenda gadget to your page
Add My Tasks gadget to your page
Manage your contacts
View contacts
Create a new contact
Edit contact details
Tag a contact
Edit a tag
Delete a tag
Send a mail to a contact
Copy/Paste a contact
Move a contact
Delete a contact
Export contacts
Import contacts
Print contacts
Print an Address Book
Share contacts
Search for contacts
Quick search
Advanced search
Manage Address Books
Create an address book
Edit an address book
Remove an address book
Export an address book
Import an address book
Share a personal address book
Grant permissions on a public address book
Email your contacts
Create a Mail account
Edit your account details
Delete your account
More about Incoming & Outgoing mail server settings
Get mails
Mail views
List view
Thread view
Conversation view
Read an email
Download an attached file
Download and save attachments to server
View all headers of a message
Mark/Unmark a message as read
Star/Unstar a message
Move a message to other folders
Report a message as spam
Delete a message
Compose a new message
Attach a file to a message
Attach a server file
Save a message as draft
Set a priority level
Change the message signature
Change message preferences
Reply to a message
Forward a message
Print a message
Export a message
Import a message
Categorize messages by folders/tags/filters
Folder
Create a new folder
Manage Personal Folders
Create a sub-folder
Rename a folder
Remove a folder
Mark a folder as read
Tag
Create a tag
Assign a tag to a message
Edit a tag
Remove a tag
Empty a tag
Change the tag color
Filter
Create a filter
Edit a filter
Delete a filter
Search for messages
Quick search
Advanced search
Add an event
Manage Address Book in Mail
Add a new address book
Add a new contact
Edit contact details
Delete a contact
Change Mail settings
Chat with your contacts
Add contacts to your friend list
Remove a contact
Chat with a contact
Send messages
Set your status
Send a file
Export the Chat history
Show chat history at a specific time
Create a chat room
Add people to a room
Join a chat room
Leave a chat room
Configure a chat room
Organize Your Knowledge
About user roles
How to access knowledge applications
Build a wiki
Overview
The page hierarchy in Wiki
Wiki Spaces
Work with Wiki pages
Create a page
Edit a page
Move a page to another location
Delete a page
View page information
Add a related page
View a page history
Watch a page
Work with attachments
View all attachments of a page
Add an attachment to a page
Insert image
Use the WYSIWYG Editor (Rich Text editor)
Syntax Help
Work with Macros
Work with page versions
View versions of a page
Compare page versions
Restore a page version to the current version
Work with Spaces
Search
Quick Search
Advanced Search
Wiki Administration
Set up space settings
Manage Permissions
Space Permissions
Add space permissions
Delete space permissions
Page Permissions
Manage a page template
Search for a template
Create a new template
Edit a template
Delete a template
Set up the wiki syntax
Build a forum
Administrator
Set up the Forum portlet
Specify the category scoping
Enable/Disable Forum components
Enable/Disable a bookmarkable Forum URL
Manage categories
Add a new category
Edit a category
Delete a category
Manage forums
Add a new forum
Configure the moderation settings
Delete a forum
Manage users
Promote a user
Modify user's forum settings
Ban users
Administrative tasks
Set up Sort Settings
Define censored keywords
Customize an email notification template
Customize a BBCode
Add a new BBCode
Edit a BBCode
Delete a BBCode
Activate/Deactivate a BBCode
Set up auto-pruning
Create a topic type
Ban IPs
Back up a category & forum
Export a category
Export a forum
Import a category
Import a forum
Regular users
View details of the Forum application
Search
Quick search
Advanced search
Topics
Start a topic
Select a topic icon
Set the topic options
Set topic permissions
Edit a topic
Create a poll
Rate a topic
Tag/Untag a topic
Post
Post a quick reply
Post an advanced reply
Post a private reply
Reply with a quote
Edit a post
Delete a post
Use BBCodes
Public user profile
Private messages
Send a private message
Receive a private message
Bookmarks
Add a bookmark
View bookmarks
Delete a bookmark
Subscribe to RSS feeds
Watch
Permanent links
User settings
Edit a profile
Change forum settings
Edit a subscription
Moderator
Moderate forums
Edit a forum
Lock/Unlock a forum
Close/Open a forum
Move a forum
Moderate topics
Approve a topic
Edit a topic
Close/Open a topic
Move a topic
Delete a topic
Lock/Unlock a topic
Stick/Unstick a topic
Merge topics
Split a topic
Moderate posts
Approve a post
Delete a post
Move a post
Hide a post
Show a post
Uncensor a post
View all pending moderation tasks
Ban IPs
Build an Answers & FAQs system
Administrator
Set up the Answers portlet
Change the display mode
Customize the email notification template
Enable the "Discuss in Forum" feature
Define the default category for discussions
Set up the FAQ portlet
Moderator
Manage categories
Add a new category
Edit category properties
Delete a category
Move a category
Export/Import a category
Moderate questions
View all questions
Edit a question
Approve/Disapprove a question
Activate/Deactivate a question
Delete a question
Move a question
Moderate an answer
Approve/Disapprove an answer
Activate/Deactivate an answer
Delete an answer
Promote a comment to answer
Regular user
View details of Answers
Submit a question
Edit a question
Answer a question
Edit an answer
Comment on a question
Send a question to others
Discuss a question in forum
Rate a question
Vote for an answer
Watch/Unwatch a category
Subscribe to RSS feeds
Edit user settings
View public user profile
Search
Quick search
Advanced search
Print
Build Social Network
Manage your profile
Edit your information
Upload your profile avatar
Update your current position
Manage spaces
Create a space
Edit a space
Change space information
Change visibility
Manage members
Invite new members
Revoke your invitations
Promote/Demote a member
Remove a member
Manage space applications
Add a new space application
Delete applications
Edit space navigation
Join/Leave a space
View details of a space
Delete a space
Search for spaces
Accept/Deny invitations
Build networks
Search for your contact
Send connection requests
Revoke a connection request
Accept/Deny a connection request
Disconnect from your contacts
Follow activities in your organization
Update status
Share a link
Share a file
Delete activities/comments
Comment on activities
Like/Unlike activities
Administrator Guide
Introduction
About this guide
About eXo Platform 3.5
Installation
Install the Tomcat bundle
Start up the server.
Shut down the server.
Start up eXo Platform by running built-in startup scripts.
Customize environment variables in tomcat
Install JBoss EARs
Profiles of eXo Platform
Configuration
eXo Platform configuration
Portal Containers, Customization and Configurations
Database configuration
Connect to a production database
FAQs of database configuration
File system paths
JCR system and default Workspaces
Transaction Service
Mail server
WebDAV cache control
Chat server
XMPPMessenger
Chat server configuration
Ports
OpenOffice server
Log-in
JCR
Cache configuration
Portal Cache Configuration
Social Cache Configuration
ECMS Cache Configuration
Users configurations
Super-user configuration
Default users list definition of eXo Platform
Grant users access to toolbar
Grant all users access to toolbar but not CMS
Grant all new users access to toolbar and CMS
Gadget configuration
Gadget proxy configuration
How does it work
Default OAuth key configuration
JCR Links cleaner job
Other properties
Management
Introduction to eXo Platform management
JMX interface
REST interface
Management views of eXo Platform
PortalContainer management view
Cache management view
Cache instances
CacheManager
PicketLinkIDMCacheService
eXo Content management view
WCMComposer
FriendlyService
WCMService
JCR management view
SessionRegistry
LockManager
Repository
Workspace
Portal management view
Template statistics
Template management
Skin management
TokenStore
Portal statistics
Application statistics
eXo Knowledge management view
Forum
Job
Plugin
RoleRulesPlugin
BBCodePlugin
ForumInitialDataPlugin
InitialDataPlugin
Storage
eXo Collaboration management view
Security
Change the JAAS realm
Tomcat
Common changes
configuration.properties
portal.war
rest.war
Backup
Pre-backup
eXo Platform backup
Restore
Third-party tools
Clustering
About clustering in eXo Platform
Set up the eXo Platform cluster
Shared file system
Set up eXo Platform cluster
Advanced configuration
JBossCache
Shared file system
Local JCR index in cluster
FAQs of clustering
Deployment
Remove sample applications
Remove Acme website/Acme Social Intranet
Remove crash
Deploy a custom extension
Set up Apache front-end
Base configuration for Apache
Connect via HTTP protocol (Apache mod_proxy)
Connect via AJP protocol
AJP proxy module
Apache Tomcat's AJP connector
Configure the session timeout for the web server
Tomcat server
JBoss server
Organization Integration
Terminology
Integrate the organizational model
eXo Platform start-up
User login
Manual sync
Scheduled/Periodic sync
Use REST
Use JMX
Legacy Organization Models
Legacy organization configurations
Hibernate Organization Service configuration
LDAP Organization Service configuration
AD Organization Service configuration
Developers Guide
Introduction
Welcome to eXo Platform 3.5
About this guide
Glossary
Set Up Your Project
eXo Architecture Primer
Kernel
Containers
Services
Service configuration
Kernel XML Schema
Components
Parameters
Value-param
Object-param
Rest of parameter types
Plugins
Configuration loading sequence
GateIn extensions
Default Portal Container
Register Extension
Java Content Repository
Repositories and workspaces
Tree structure: working with nodes and properties
Create Your Own Portal
Create your extension project
Structure of portal, pages and menus
Page layout
Visibility of pages
Page access permission
Add/remove languages
Add new languages
Remove languages
Create custom look and feel
Structure stylesheet
Page skin Elements
Portlet Specification CSS Classes
Portlet skins
Best practices to customize a skin
Name files and folders
Folder structure
Configure skin in GateIn
Select skins within the configuration files
Skins in the page markup
SkinService
Configure skins
ResourceRequestFilter
Default skin
Create new skins
Create new portal skins
Configure portal skins
Portal skin preview icon
Create new window styles
Configure window styles
Window style CSS
Set the default window style
Create new portlet skins
Change portlet icons
Configure right-to-left skins
Override skins with extension
Configure skin in WCM
Goal
Assumptions
Customize portal's layout
Customize page's layouts
Customize portal and page's style
Customize CLV portlet's template
Customize CLV template's style
Customize Document's skin
Create and apply Global stylesheet
Create and apply the global stylesheet by Content Explorer
Create and apply the global stylesheet by configuration
Check display of global stylesheets
How to customize the Admin bar
Change the color scheme
Change the content of the Admin bar
Add JavaScript to your portal
Work with Content
Document types
WCM templates
Document type
Dialog Syntax
Interceptors
Hidden fields
Non-value field
Non-editable fields
Create node type or mixin type
Hidden field with default value
Visible without null fields
WYSIWYG widget
Simple select box widget
Advanced dynamic select box
Widget with selector
Multi-valued widget
Manage template service
Taxonomies
Work with Applications
Application integration
Develop your own applications
Gadget vs Portlet
Gadget development in eXo Platform
Preface
Get the consistent look and feel
Portlet Bridges
System Integration
Authentication
Single-Sign-On (SSO)
Central Authentication Service (CAS)
Kerberos SSO on Active Directory
Users integration
Organization Service
Memberships, Groups and Users
Organization API
LDAP Integration
Connection Settings
Organization Service Configuration
Users
Main parameters
User mapping
Groups
Membership types
Memberships
User profiles
Active Directory sample configuration
Picketlink IDM
Email
eXo Platform 3.5 APIs
Definitions of API Levels
Use Provisional or Experimental APIs
Platform APIs
Java APIs
JavaScript APIs
Web Services
Provisional APIs
Java APIs
Cookbook
How to Copy a Site
New Features
Navigation by content
What is Navigation By Content?
Actual content navigation
How-To
Actions on Navigation By Content
Create a new product
Develop your product content
IDE User Guide
Introduction
Introduction
Requirements
Basic Operations
Select Workspace
Open Folder
Open File
Refresh Selected Folder
View and Copy File's URL
Copy/Cut/Paste Files and Folders
Operations With Folder
Create Folder
Delete Folder
Rename Folder
Download Zipped Folder
Operations With File
Create File
Save/Save As... File
Save All Files
Delete File
Rename File
Change MIME Type of File
Lock File
Open Files with the Non-default Editor
Go to Folder
Download File from Server
Open Local File
Upload File
Upload Zipped Folder
Open File by Path
Use File Template
Save File as Template
Create File from Template
Remove Non-default File Template
Use Project Template
Create Project Template
Modify the Project Template Structure
Create Project From Template
Remove Project Template
Open/Select/Close/Browse tabs
Undo/Redo Editing
Undo
Redo
Edit Files in the Code Editor
Format File
Show/Hide Line Numbers
Go to Line
Watch the cursor position in the Status Bar
Delete line
Find/Replace
Code Autocomplete
JavaScript Specific Autocomplete List
CSS Specific Autocomplete List
HTML Specific Autocomplete List
XML Specific Autocomplete List
ECM Template Autocomplete List
Netvibes Widget Autocomplete List
Groovy Code Specific Autocomplete List
Class Name
Object's Fields and Methods Autocomplation
Static Fields and Methods Autocompletion
Annotations Autocompletion
Local Variables and Parameters Autocomplation
Validate Java Types and Fix Import Statements
Code Outline
Code Outline for Groovy Code
Edit File in the WYSIWYG Editor
Preview File Properties
Preview HTML File
Search Files
REST Service Operations
Validate REST Service
Deploy/Undeploy REST Service
Use Autoload Property
Launch REST Service with set parameters and Preview Server Console Messages in the Output Tab
Get URL of REST Service
Review of the response headers from REST Service
Deploy to Sandbox, Undeploy from Sanbox, Run in Sandbox
REST Service Discovery
Configure Classpath
Add Source to Classpath
Remove Source from Classpath
Example: REST service with complex media types output preview
Operations With POGO File
Operations With Google Gadget
Create Google Gadget
Preview Google Gadget
Operations With Templates
Create and Edit Template
View Template's Properties
Preview Template
Operations With Netvibes Widget
Create Netvibes Widget
Preview Netvibes Widget
Deploy Netvibes Widget To Netvibes Ecosystem
View Netvibes Documentation
Chromattic Data Object Usage
Create Data Object
Preview Node Type
Create Node Type
Versioning
View Version History
Version Navigation
Restore File to the Older Version
Miscellaneous and Tips
View information about eXo IDE
Customize Toolbar
Customize Hotkeys
Links
Reference Guide / eXo JCR
eXoJCR
Introduction in eXoJCR
JCR (JSR-170) API main concepts
Data model
Why use JCR?
What is JCR?
Why use JCR?
What does eXo do?
Further Reading
eXo JCR Implementation
Related Documents
How it works
Workspace Data Model
Advantages of eXo JCR
Advantages for application developers:
Advantages for managers
Compatibility Levels
Introduction
Level 1
Level 2
Optional features
Using JCR
1 Using eXo JCR in an application
Obtaining a Repository object
JCR Session common considerations
JCR Application practices
Simplifying the management of a multi-workspace application
Reusing SessionProvider
JCR Extensions
JCR Service Extensions
Concept
Implementation
Configuration
Related Pages
eXo JCR Application Model
NodeType Registration
Interfaces and methods
ExtendedNodeTypeManager
NodeTypeValue
NodeDefinitionValue
PropertyDefinitionValue
ItemDefinitionValue
Node type registration
Run time registration from xml file.
Run time registration using NodeTypeValue.
Changing existing node type
Removing node type
Practical How to
Adding new PropertyDefinition
Adding new child NodeDefinition
Changing or removing existing PropertyDefinition or child NodeDefinition
Changing the list of super types
Registry Service
Concept
The API
Configuration
Namespace altering
Adding new namespace
Changing existing namespace
Removing existing namespace
Node Types and Namespaces
Introduction
Node Types definition
Namespaces definition
eXo JCR configuration
Related documents
Portal and Standalone configuration
JCR Configuration
Repository service configuration (JCR repositories configuration)
Repository configuration:
Workspace configuration:
Workspace data container configuration:
Value Storage plugin configuration (for data container):
Initializer configuration (optional):
Cache configuration:
Query Handler configuration:
Lock Manager configuration:
Help application to prohibit the use of closed sessions
Multilanguage support in eXo JCR RDB backend
Introduction
Oracle
DB2
MySQL
PostgreSQL
Search Configuration
XML Configuration
Configuration parameters
Global Search Index
Global Search Index Configuration
Customized Search Indexes and Analyzers
Creating the filter
Creating the analyzer
Creating the search index
Configuring your application to use your SearchIndex
Configure your application to use your Analyzer
Indexing Adjustments
IndexingConfiguration
Indexing rules
Node Scope Limit
Indexing Boost Value
Conditional Index Rules
Exclusion from the Node Scope Index
Indexing Aggregates
Property-Level Analyzers
Example
Characteristics of Node Scope Searches
Advanced features
JCR Configuration persister
Idea
Usage
JDBC Data Container Config
Introduction
Multi-database Configuration
Single-database configuration
Configuration without DataSource
Dynamic Workspace Creation
Simple and Complex queries
Forse Query Hints
Notes for Microsoft Windows users
External Value Storages
Introduction
Tree File Value Storage
Simple File Value Storage
Content Addressable Value storage (CAS) support
Disabling value storage
Workspace Data Container
REST Services on Groovy
Concept
Usage
Configuring JBoss AS with eXo JCR in cluster
Launching Cluster
Deploying eXo JCR to JBoss As
Configuring JCR to use external configuration
Requirements
Environment requirements
Configuration requirements
JBoss Cache configuration
JBoss cache configuration for indexer, lock manager and data container
JGroups configuration
Allow to share JBoss Cache instances
Shipped JBoss Cache configuration templates
Data container template
Lock manager template
Query handler (indexer) template
LockManager configuration
Introduction
LockManagerImpl
CacheableLockManagerImpl
Configuration
Simple JbossCache Configuration
Template JBossCache Configuration
Data Types in Different Databases
Lock migration from 1.12.x
QueryHandler configuration
Indexing in clustered environment
Configuration
Query-handler configuration overview
Standalone strategy
Cluster-ready indexing strategies
Local Index Recovery Filters
JBoss-Cache template configuration
Asynchronous reindexing
On startup indexing
Hot Asynchronous Workspace Reindexing via JMX
Notices
Advanced tuning
Lucene tuning
JBossTransactionsService
Introduction
Configuration
TransactionManagerLookup
Configuration
RepositoryCreationService
Intro
Dependencies
How it works
Configuration
RepositoryCreationService Interface
Conclusions and restrictions
JCR Query Usecases
Intro
Query Lifecycle
Query Creation and Execution
Query Result Processing
Scoring
Query result settings
Type Constraints
Property Constraints
Path Constraint
Ordering specifing
Fulltext Search
Indexing rules and additional features
Query Examples
SetOffset and SetLimit
Common info
Repository structure
Query execution
Fetching result
Finding All Nodes
Repository structure:
Query execution
Fetching result
Finding Nodes by Primary Type
Repository structure:
Query execution
Fetching result
Finding Nodes by Mixin Type
Repository structure:
Query execution
Fetching result
Property Comparison
Repository structure:
Query execution
Fetching result
LIKE Constraint
Repository structure:
Query execution
Fetching result
Escaping in LIKE Statements
Repository structure
Query execution
Fetching result
NOT Constraint
Repository Structure
Query execution
Fetching the result
AND Constraint
Repository Structure:
Query execution
Fetching the Result
OR Constraint
Repository Structure
Query Execution
Fetching the Result
Property Existence Constraint
Repository Structure
Query Execution
Fetching the Result
Finding Nodes in a Case-Insensitive Way
Repository Structure
Query Execution
Fetching the Result
Date Property Comparison
Repository Structure
Query Execution
Fetching the result
Node Name Constraint
Repository Structure
Query execution
Fetching the Result
Multivalue Property Comparison
Repository Structure
Query Execution
Fetching the Result
Exact Path Constraint
Repository Structure
Query Execution
Fetching the Result
Child Node Constraint
Repository Structure
Query Execution
Fetching the Result
Finding All Descendant Nodes
Repository Structure
Query Execution
Fetching the Result
Sorting Nodes by Property
Repository Structure
Query Execution
Fetching the Result
Ordering by Descendant Nodes Property (XPath only)
Repository structure:
Query Execution
Fetching the Result
Ordering by Score
Info
Repository Structure
Query Execution
Fetching the Result
Ordering by Path or Name
Fulltext Search by Property
Repository Structure
Query Execution
Fetching the Result
Fulltext Search by All Properties in Node
Repository structure:
Query execution
Fetching result
Ignoring Accent Symbols. New Analyzer Setting.
Repository structure:
Query execution
Fetching result
Finding nt:file node by content of child jcr:content node
Repository structure:
Query execution
Fetching the result
Changing Priority of Node
Indexing configuration
Repository structure:
Query execution
Fetching result
Removing Nodes Property From Indexing Scope
Repository structure:
Query execution
Fetching result
Regular Expression as Property Name in Indexing Rules
Repository structure:
Query execution
Fetching result
High-lighting Result of Fulltext Search
Base info
Repository structure:
Query execution
Fetching result
Searching By Synonim
Repository structure:
Query execution
Fetching result
Checking the spelling of Phrase
Repository structure:
Query execution
Fetching result
Finding Similar Nodes
Repository structure:
Query execution
Fetching result
Tips and tricks
XPath queries containing node names starting with a number
Searching Repository Content
Introduction
Bi-directional RangeIterator (since 1.9)
Fuzzy Searches (since 1.0)
SynonymSearch (since 1.9)
High-lighting (Since 1.9)
DefaultXMLExcerpt
DefaultHTMLExcerpt
How to use it
SpellChecker
How do I use it?
Similarity (Since 1.12)
Fulltext Search And Affecting Settings
Property content indexing
Lucene Analyzers
How are different properties indexed?
Fulltext search query examples
Different analyzers in action
JCR API Extensions
"Lazy" child nodes iteration
Concept
API and usage
Configuration
Implementation notices
WebDAV
Related documents
Introduction
Configuration
Screenshots
MS Internet Explorer
Dav Explorer
Xythos Drive
Microsoft Office 2003
Ubuntu Linux
Comparison table of WebDav and JCR commands
Restrictions
Windows 7
Microsoft Office 2010
FTP
Introdution
Configuration Parameters
command-port:
data-min-port & data-max-port
system
client-side-encoding
def-folder-node-type
def-file-node-type
def-file-mime-type
cache-folder-name
upload-speed-limit
download-speed-limit
timeout
eXo JCR Backup Service
Concept
How it works
Implementation details
Work basics
Configuration
RDBMS backup
Usage
Performing a Backup
Performing a Restore
Restoring into an existing workspace
System workspace
Repository and Workspace initialization from backup
Restore the Workspace over BackupWorksaceInitializer
Restore the Repository over BackupWorksaceInitializer
Scheduling (experimental)
Restore existing workspace or repository
Restore a workspace or a repository using original configuration
Backup set portability
HTTPBackupAgent and backup client
Introduction
HTTPBackupAgent
HTTPBackupAgent methods
Starting Backup Service
Stopping Backup Service
Backup Info Service
Dropping Workspace Service
Backup Info
Current Backups Information
Completed Backups Information
Workspace-specific Backup Information
Single Backup Information
Restores on a Workspace Information
Restores Information
Restoring Service
Default Workspace Information
HTTPBackupAgent Configuration
Backup Client
Backup Client Usage
Building application
Running application
Getting information about backup service
Starting full backup
Starting full and incremental backup on a single workspace
Getting information about the current backups (in progress)
Getting information about the current backup by 'backup_id'
Stopping backup by "backup_id"
Getting information about the completed (ready to restore) backups
Restoring to workspace
Getting information about the current restore
Restoring workspace and remove exists workspace
Restoring workspace from backup set
Restoring workspace from backup set and remove exists workspace
Restoring workspace with original configuation
Restoring workspace with original configuation and remove exists workspace
Restoring workspace from backup set with original configuation
Restoring workspace from backup set with original configuation and remove exists workspace
Restoring repository
Restoring repository and remove exists repository
Restoring repository from backup set
Restoring repository from backup set and remove exists repository
Restoring repository with original configuation
Restoring repository with original configuation and remove exists repository
Restoring repository from backup set with original configuation
Restoring repository from backup set with original configuation and remove exists repository
Full example about creating backup and restoring it for workspace 'backup'
Creating backup
Getting information about current backups
Stopping backup by id
Deleting the workspace "backup" and close opened sessions on this workspace
Restoring the workspace "backup"
Getting information about restore for workspace /repository/backup
Full example about creating backup and restoring it for repository 'repository'
Creating backup
Getting information about current backups
Stopping backup by id
Deleting the repository "repository" and close all opened sessions
Restoring the repository "repository"
Getting information about restore for repository 'repository'
Use external backup tool
Repository suspending
Backup
Repository resuming
eXo JCR statistics
Statistics on the Database Access Layer
Statistics on the JCR API accesses
Statistics Manager
Checking repository integrity and consistency
JMX-based consistency tool
JTA
The JCA Resource Adapter
Overview
The SessionFactory
Configuration
Deployment
Access Control
Standard Action Permissions
eXo Access Control
Principal and Identity
ACL
Privilegeable
Ownable
ACL Inheritance
Default ACL of the root node
Notes
Example
XML Example
Inheritance Examples
Permission validation
Java API
Access Control Extension
Prerequisites
Overview
Access Context Action
The Invocation Context
Custom Extended Access Manager
Example of a custom Access Manager
Link Producer Service
Binary Values Processing
Configuration
Usage
Value implementations
JCR Resources:
JCR Workspace Data Container (architecture contract)
Goals
Concepts
Container and connection
Value storages
Lifecycle
Value storage lifecycle
Requirements
Read operations
Write operations
State operations
Validation of write operations
Consistency of save
Value storages API
Storages provider:
Value storage plugin
Value I/O channel
Transaction support via channel
How-to implement Workspace Data Container
Short intro about Workspace data container implementation practices:
Notes on Value storage usage:
DBCleanService
API
JCR Performance Tuning Guide
Introduction
JCR Performance and Scalability
Cluster configuration
JCR Clustered Performance
Performance Tuning Guide
JBoss AS Tuning
JCR Cache Tuning
Clustering
JVM parameters
eXoKernel
eXo Kernel
eXo Kernel introduction
ExoContainer info
Container hierarchy
Service Configuration for Beginners
Objective
Requirements
Services
Configuration File
Execution Modes
Containers
Configuration Retrieval
RootContainer
PortalContainer
StandaloneContainer
Service instantiation
Miscellaneous
Startable interface
Inversion of Control
More Containers
Single Implementation Services
Configuration properties
Configuration Logging
Further Reading
Service Configuration in Detail
Objectives
Requirements
Sample Service
Java Class
First configuration file
Init Parameters
Service Access
Parameters
Value-Param
Properties-Param
Object-Param
Collection
External Plugin
Import
System properties
Container Configuration
Intro
Kernel configuration namespace
Understanding how configuration files are loaded
Configuration Retrieval
Configuration retrieval order for the PortalContainer
Configuration retrieval for a StandaloneContainer
General notes about the configuration retrieval
Configuration retrieval log
Getting the effective configuration at Runtime
Advanced concepts for the PortalContainers
Add new configuration files from a WAR file
Creating your PortalContainers from a WAR file
Defining a PortalContainer with its dependencies and its settings
PortalContainer settings
Adding dynamically settings and/or dependencies to a PortalContainer
The existing implementations of PortalContainerDefinitionChange
AddDependencies
AddDependenciesBefore
AddDependenciesAfter
AddSettings
Disable dynamically a portal container
System property configuration
Properties init param
Properties URL init param
System Property configuration of the properties URL
Variable Syntaxes
Runtime configuration profiles
Profiles activation
Profiles configuration
Profiles definition
Profiles capable configuration elements
Component element
Component plugin element
Import element
Init param element
Value collection element
Field configuration element
Component request life cycle
Component request life cycle contract
Request life cycle
Scheduling a component request life cycle
Scheduling a container request life cycle
When request life cycle is triggered
Portal request life cycle
JMX request Life Cycle
Inversion Of Control
Overview
How
Injection
Side effects
Services Wiring
Overview
Portal Instance
Introduction to the XML schema of the configuration.xml file
Configuration retrieval and log of this retrieval
Component Plugin Priority
Understanding the ListenerService
Objectives
What is the ListenerService ?
How does it work?
Registering a listener
Triggering an event
How to configure a listener?
Concrete Example
Initial Context Binder
API
Job Scheduler Service
What is Job Scheduler?
Where is Job Scheduler Service used in eXo Products?
How does Job Scheduler work?
How can Job Scheduler Service be used in Kernel?
Samples
Define a job
Job configuration
Run the project
Reference
eXo Cache
Basic concepts
Advanced concepts
Invalidation
FutureExoCache
eXo Cache extension
eXo Cache based on JBoss Cache
Configuring the ExoCacheFactory
Adding specific configuration for a cache
Adding a cache creator
Understanding a cache creator
Registering a cache creator
The cache creators available
LRU Cache Creator - Least Recently Used
FIFO Cache Creator - First In, First Out
MRU Cache Creator - Most Recently Used
LFU Cache Creator - Least Frequently Used
EA Cache Creator - Expiration Algorithm
Defining a cache
How to define a cache?
At CacheService initialization
With an "external plugin"
How to define a distributed or a local cache?
How to share a JBoss Cache instance between multiple eXo Cache instances
LRU Cache - Least Recently Used
FIFO Cache - First In, First Out
MRU Cache - Most Recently Used
LFU Cache - Least Frequently Used
EA Cache - Expiration Algorithm
eXo Cache based on Infinispan
Configure the ExoCacheFactory
Add specific configuration for a cache
Add a cache creator
Understanding a cache creator
Register a cache creator
The cache creators available
Generic Cache Creator
Define an infinispan cache instance
How to define a distributed or a local cache?
How to define an infinispan cache instance
TransactionService
Base information
Existing TransactionService implementations
JOTM in standalone mode
Generic TransactionService based on the TransactionManagerLookup of JBoss Cache
Specific GenericTransactionService for JBoss Cache and Arjuna
Generic TransactionService based on the TransactionManagerLookup of Infinispan
Specific GenericTransactionService for Infinispan and Arjuna
A very specific TransactionService for JBoss AS
TransactionsEssentials in standalone mode
The data source provider
Description
Configuration
JNDI naming
Prerequisites
How it works
JNDI System property initialization
JNDI reference binding
Configuration examples
Recommendations for Application Developers
InitialContextInitializer API
Logs configuration
Introdution
Logs configuration initializer
Configuration examples
Log4J
Assigning logger level for classes or components
JDK Logging
Commons Logging SimpleLogss
Tips and Troubleshooting
JBoss tips
Other tips
Manageability
Introduction
Managed framework API
Annotations
@org.exoplatform.management.annotations.Managed annotation
@org.exoplatform.management.annotations.ManagedDescription
@org.exoplatform.management.annotations.ManagedName
@org.exoplatform.management.annotations.ManagedBy
JMX Management View
JMX Annotations
@org.exoplatform.management.jmx.annotations.Property annotation
@org.exoplatform.management.jmx.annotations.NameTemplate annotation
@org.exoplatform.management.jmx.annotations.NamingContext annotation
Example
CacheService example
ListenerService
Asynchronous Event Broadcast
RPC Service
Description
Configuration
The SingleMethodCallCommand
eXoCore
eXo Core
eXo Core introduction
Database Creator
About
API
A configuration examples
An examples of a DDL script
Security Service
1 Overview
1 Framework
1.1 ConversationState and ConversationRegistry
1.1 Authenticator
Usage
JAAS login module
1.1 Predefinded JAAS login modules
1.1 J2EE container authentication
Spring Security Integration
Introduction
Installation
Configuration
JAAS disabling
Enabling spring security
security-context.xml
Login portlet example
Building the portlet
Setting up the login portal page
Customization of portal login and logout urls
A look at the login page
Integration strategies
Replication
Integration with eXo portal
Security context propagation to portlets
Portal side filter
Portlet side filter
Conclusion
Organization Service
Overview
Organizational Model
User
Group
Membership
Related articles and how-tos
Organization Service Initializer
Organization Listener
Overview
Writing your own listeners
UserEventListener
GroupEventListener
MembershipEventListener
Registering your listeners
Update ConversationState when user's Membership changed
DB Schema creator service (JDBC implementation)
Database Configuration for Hibernate
Generic configuration
Example DB configuration
Registering custom Hibernate XML files into the service
LDAP Configuration
Overview
Quickstart
Configuration
Connection Settings
Organization Service Configuration
Users
Main parameters
User mapping
Groups
Membership Types
Memberships
User Profiles
Advanced topics
Automatic directory population
Active Directory sample configuration
OpenLDAP dynlist overlays
Organization Service TCK tests configuration
Introduction
Maven pom.xml file configuration
Standalone container and Organization Service configuration
Tika Document Reader Service
Intro
Architecture
Configuration
Old-style DocumentReaders and Tika Parsers
How to make and register own DocumentReader
TikaDocumentReader features and notes
Digest Authentication
Overview
Server configuration
Tomcat Server configuration
Jetty server configuration
JBoss server configuration
OrganizationService implementation requirements
eXoWS
eXo Web Services
eXo Web Services introduction
Introduction to the Representational State Transfer (REST)
Introduction
OverwriteDefaultProviders
Motivation
Usage
Example
RestServicesList Service
Overview.
Usage
HTML format
JSON format
Groovy Scripts as REST Services
Overview
Loading script and save it in JCR
Instantiation
Deploying newly created Class as RESTful service
Script Lifecycle Management
Getting node UUID example
Groovy script restrictions
Framework for cross-domain AJAX
Motivation
Scheme (how it works)
A Working Sequence:
How to use it
Frequently Asked Question
JCR FAQ
Kernel
What is the best, standardized way to get the instance of a service ?
JCR
JCR core
Is it better to use Session.getNodeByUUID or Session.getItem?
Does it make sense to have all the node referencable to use getNodeByUUID all the time?
What should I use to check if an Item exists before getting the Value?
How to use Observation properly?
Is it better to use queries that to access the data by the JCR API?
What is default query ordering?
Is ordering by jcr:path or Item name supported?
How eXo JCR indexer uses content encoding?
Which database server is better for eXo JCR?
How to setup eXo JCR for mutilingial content on MySQL?
Does MySQL have limitation affecting on eXo JCR features?
Does use of Sybase database need special options in eXo JCR configuration?
How to open and close a session properly to avoid memory leaks?
Can I use Session after loging out?
How to configure jcr for cluster ?
How to use lucene spellchecker?
How can I affect to spellchecker results?
JCR extensions
How to restore repository to existing repository ?
How to restore workspace to existing worksapce?
Does JCR support hot backup?
WebDAV
I uploaded a file to WebDAV server using Mac OS Finder, but the file size is '0', what is wrong ?
Can I manage 'cache-control' value for different media-types from server configuration ?
How to perform WebDAV requests using curl ?
How eXo JCR WebDAV server treats content encoding?
eXo JCR with GateIn
How to extend my GateIn instance?
Introduction
Overview
Motivations
Prerequisites
Removing all the hard coded portal container name (i.e. "portal")
Removing all the hard coded rest context name (i.e. "rest")
Removing all the hard coded realm name (i.e. "exo-domain")
Making your Http Filters compatible
Making your HttpServlets compatible
Making your HttpSessionListeners compatible
Use init tasks if you need a PortalContainer to initialize an Http Filter or an HttpServlet
Making your LoginModules compatible
Avoiding static modifier on component dependency
Avoid component initialization based on component dependency in the constructor
FAQ
What has changed since the previous versions?
What is the main purpose of a portal extension?
What is the main purpose of the starter?
How a portal and a portal container are related?
How to define and register a PortalContainerDefinition?
How the platform interprets the dependency order defined into the PortalContainerDefinition?
How to change the ServletContext name, the realm name and/or the rest context name of my portal without using a PortalContainerDefinition?
On JBoss (tested on JBoss 5.1.0.GA)
On Tomcat (tested on Tomcat 6.0.20)
How to add new configuration file to a given portal from a war file?
How to create/define a portal extension?
How to deploy a portal extension?
How to create/define a new portal?
How to deploy a new portal?
How to import properly a configuration file using the prefix "war:"?
How to avoid duplicating configuration files just to rename a simple value?
How to add or change a Repository and/or a Workspace?
How to add new ResourceBundles to my portal?
How to overwrite existing ResourceBundles in my portal?
How to replace a groovy template of my portal?
How to add new Portal Configurations, Navigations, Pages or Portlet Preferences to my portal?
How to add new Http Filters to my portal without modifying the portal binary?
How to add new HttpSessionListeners and/or ServletContextListeners to my portal without modifying the portal binary?
How to add new HttpServlet to my portal without modifying the portal binary?
How to override or add a Context Parameter to my portal without modifying the portal binary?
Where can I found an example of how to extend my portal?
How to deploy the sample extension?
On JBoss (tested on JBoss 5.1.0.GA)
On Tomcat (tested on Tomcat 6.0.20)
Where can I find an example of how to create a new portal?
How to deploy the sample portal?
On JBoss (tested on JBoss 5.1.0.GA)
On Tomcat (tested on Tomcat 6.0.20)
I get "java.lang.IllegalStateException: No pre init tasks can be added to the portal container 'portal', because it has already been initialized." what can I do to fix it?
Recommendations
Don't ship your configuration files with your jar files?
Using a dedicated workspace/repository for your extension?
How to use AS Managed DataSource under JBoss AS
Configurations Steps
Declaring the datasources in the AS
Do not let eXo bind datasources explicitly
Reference Guide / GateIn
Introduction
Related Links
Configuration
Database Configuration
Overview
Configure the database for JCR
Configure the database for the default identity store
Email Service Configuration
Overview
Configure the outgoing e-mail account
Portal Development
Skin the portal
Overview
Skin Components
Skin Selection
Skin Selection Through the User Interface
Setting the Default Skin within the Configuration Files
Skins in Page Markups
The Skin Service
Skin configuration
Resource Request Filter
The Default Skin
Create New Skins
Creating a New Portal Skin
Portal Skin Configuration
Portal Skin Preview Icon
Creating a New Window Style
Window Style Configuration
Window Style CSS
How to Set the Default Window Style
How to Create New Portlet skins
Change portlet icons
How to create a new Portlet Specification CSS Classes
Tips and Tricks
Easier CSS debugging
Some CSS techniques
Decorator pattern
Left margin left pattern
Portal Lifecycle
Overview
Application Server start and stop
The Command Servlet
Default Portal Configuration
Overview
Configuration
Tips
Delete Portals Definition by Configuration
Set the info bar shown by default for portlet
Portal Default Permission Configuration
Overview
Overwrite Portal Default Permissions
Portal Navigation Configuration
Overview
Portal Navigation
Group Navigation
User Navigation
Data Import Strategy
Introduction
Import Mode
Data Import Strategy
Navigation Data
Portal Config
Page Data
Internationalization Configuration
Overview
Locales configuration
ResourceBundleService
Navigation Resource Bundles
Portlets
Standard portlet resource keys
Debugging resource bundle usage
Translate the language selection form
RTL (Right To Left) Framework
Groovy templates
Stylesheet
Images
Client side JavaScript
XML Resources Bundles
Motivation
XML format
Portal support
JavaScript Inter Application Communication
Overview
Library
Syntax
Example of Javascript events usage
Upload Component
Upload Service
Deactivation of the Ajax Loading Mask Layer
Purpose
Synchronous issue
JavaScript Configuration
Navigation Controller
Description
Controller in Action
Controller
Building controller
Controller Configuration (controller.xml)
Route parameters
Path parameters - Regular expression support
Request parameters
Route precedence
Route nesting
Integrate to GateIn WebUI framework
Routing
Rendering
PortalURL
NodeURL
ComponentURL
Portlet URLs
Webui URLBuilder
Groovy Templates
Changes and migration from GateIn 3.1.x
Migration of navigation node URL
Security changes
Default handler
Legacy handler
Static resource handler
portal.war's web.xml changes
Dashboard changes
Remove unused files
Portlet development
Portlet Primer
JSR-168 and JSR-286 overview
Portal Pages
Rendering Modes
Window States
Tutorials
Deploying your first Portlet
Compiling
Package Structure
Portlet Class
Application Descriptors
JavaServer Pages Portlet Example
Package Structure
Portlet Class
JSP files and the Portlet Tag Library
JSF example using the JBoss Portlet Bridge
Global porlet.xml file
Global portlet.xml usecase
Global metadata
Location
Global metadata elements
Portlet filter
Portlet Mode and Window State
Gadget development
Gadgets
Existing Gadgets
Create a new Gadget
Remote Gadget
Gadget Importing
Gadget Web Editing
Gadget IDE Editing
Dashboard Viewing
Set up a Gadget Server
Virtual servers for gadget rendering
Configuration
Security key
Gadget proxy and concat configuration
Proxy
Authentication and Identity
Predefined User Configuration
Overview
Plugin for adding users, groups and membership types
Membership types
Groups
Users
Plugin for monitoring user creation
Authentication Token Configuration
What is Token Service?
Implement the Token Service API
Configure token services
PicketLink IDM integration
Configuration files
Organization API
Access User Profile
Single-Sign-On (SSO)
Overview
Prerequisites
Central Authentication Service (CAS)
CAS server
Obtaining CAS
Modifying the CAS server
Set up the CAS client
Redirect to CAS
JOSSO
JOSSO server
Obtaining JOSSO
Modifying the JOSSO server
Set up the JOSSO client
Set up the portal to redirect to JOSSO
OpenSSO - The Open Web SSO project
OpenSSO server
Obtaining OpenSSO
Modifying the OpenSSO server
Set up the OpenSSO client.
Set up the portal to redirect to OpenSSO
SPNEGO
SPNEGO Server Configuration
Clients
GateIn 3.2 Configuration
Web Services for Remote Portlets (WSRP)
Introduction
Level of support in GateIn 3.2
Deploy GateIn's WSRP services
WSRP use when running GateIn on a non-default port or hostname
Considerations to use WSRP with SSL
Make a portlet remotable
Consume GateIn's WSRP portlets from a remote Consumer
Consume remote WSRP portlets in GateIn
Overview
Configure a remote producer walk-through
Using the configuration portlet
Using XML
Adding remote portlets to categories
Configure access to remote producers via XML
Required configuration information
Optional configuration
Examples
Consumers maintenance
Modify a currently held registration
Registration modification for service upgrade
Registration modification on producer error
Consumer operations
Import and export portlets
Erase local registration data
Configure GateIn's WSRP Producer
Overview
Default configuration
Registration configuration
Customization of Registration handling behavior
WSRP validation mode
Advanced Development
Foundations
GateIn Kernel
Configure services
Configuration syntax
Components
External Plugins
Includes, and special URLs
Special variables
InitParams configuration object
Configure a portal container
GateIn Extension Mechanism and Portal Extensions
Run Multiple Portals
Reference Guide / Content Functions
Preface
Get Started with eXo Content
Package
Applications
Portlets
Content Detail
Content List
Search
Content Explorer
Administration
Fast Content Creator
Form Builder
Authoring
Newsletter
SEO portlet
Configuration
Components
ActionServiceContainer
ApplicationTemplateManagerService
FragmentCacheService
JodConverterService
LiveLinkManagerService
LockService
NewsletterInitializationService
NewsletterManagerService
SiteSearchService
SEOService
QueryService
TaxonomyService
ThumbnailService
TimelineService
WatchDocumentService
WCMService
External Component Plugins
AuthoringPublicationPlugin
BaseActionPlugin
BPActionPlugin
ContentTypeFilterPlugin
ContextPlugin
CreatePortalPlugin
ExcludeIncludeDataTypePlugin
FriendlyPlugin
ImageThumbnailPlugin
InitialWebcontentPlugin
LinkDeploymentPlugin
LockGroupsOrUsersPlugin
ManageDrivePlugin
ManageViewPlugin
PDFThumbnailPlugin
PorletTemplatePlugin
PredefinedProcessesPlugin
PublicationPlugin
QueryPlugin
RemovePortalPlugin
RemoveTaxonomyPlugin
ScriptActionPlugin
ScriptPlugin
StageAndVersionPublicationPlugin
StatesLifecyclePlugin
TagPermissionPlugin
TagStylePlugin
TaxonomyPlugin
TemplatePlugin
XMLdeploymentPlugin
Developer references
WCM Templates
Content types
Dialog
Common parameters
Text Field
Hidden Field
Text Area Field
Rich Text Field
Calendar Field
Upload Field
Radio Field
Select box Field
Checkbox Field
Mixin Field
Action Field
Interceptors
How to add a new ECM template with tabs
How to prevent XSS attacks
View
List of Contents
Content List Template
Category Navigation Template
WCM Explorer
CSS
CKEditor
Extensions
REST Services
Overview
Restful Web Service
HTTP Methods
Formats
Data Format
REST configuration
Create a REST service
UI Extensions
Overview
How to add your own tab in ECM Administration
Add your own UIAction
Add your own ActionListener
Register your UI Action
Run your own UI extension sample
Authoring Extension
Extended Publication Plugin
States
Start/End publication dates
New Publication Mixin
Publication Manager
Lifecycle
Listen to a lifecycle
Context
New Authoring Mixin
Public REST APIs
ThumbnailRESTService
RssConnector
FCKCoreRESTConnector
ResourceBundleConnector
VoteConnector
DriverConnector
GadgetConnector
PortalLinkConnector
GetEditedDocumentRESTService
PublicationGetDocumentRESTService
FavoriteRESTService
RESTImagesRendererService
LifecycleConnector
CopyContentFile
PDFViewerRESTService
Public Java APIs
TaxonomyService
LinkManager
PublicationManager
WCMComposer
NewFolksonomy
ApplicationTemplateManager
NodeFinder
JodConverter
SiteSearchService
SEOService
Deprecated portlets
FAQ
How to deploy a workflow?
Deploy a workflow inside a .war file
Deploy a workflow inside a .jar file
Reference Guide / CMIS Developer
Introduction
About CMIS
About xCMIS
About eXo CMIS
CMIS specification
xCMIS project
CMIS features
CMIS Domain Model
CMIS Services
Integration with eXo WCM
JCR namespaces and nodetypes
WCM drives as CMIS Repositories
Use Case: Browse Drives via getRepository
WCM Symlinks
Use Case: Follow Symlinks
Modify WCM via CMIS
CMIS search
Query examples
Simple query
Find document by several constraints
Full-text search
Extended full-text search
Date property comparison
Boolean property comparison
IN Constraint
Select all documents where longprop property NOT IN set
Select all documents where longprop property NOT NOT IN set
IN_FOLDER constarint
Select all documents that are in specified folder
Select all documents where query supertype is cmis:article
IN_TREE constraint
LIKE Comparison
Test LIKE constraint with escape symbols
NOT constraint
Property existence
ORDER BY
ORDER BY ASC
ORDER BY DESC
ORDER BY SCORE (as columns)
Not equal comparison (decimal)
Not equal comparison (string)
More than comparison (>)
CMIS Usage code examples
References
Reference Guide / CMIS Administrator
Introduction
CMIS Specification
xCMIS project
eXo CMIS
Configuration
CMIS Configuration
Required nodetypes and namespaces in JCR
Authenticator and organization service configuration
CMIS search and index
CMIS Relational View
Query Capabilities
Configuration
Index atomicity and durability
Service JARs
Miscellaneous and Tips
Links
Reference Guide / Collaboration Functions
Prerequisites
Applications
Portlets
Calendar portlet
Description
Portlet.xml
Chatbar portlet
Description
Portlet preferences
Portlet.xml
Chat Portlet
Description
Portlet.xml
Contact Portlet
Description
Portlet.xml
Mail Portlet
Description
Portlet.xml
RSSreader Portlet
Description
Portlet.xml
Gadgets
Eventslist
Description
Links to used REST services
Taskslist
Description
Links to used REST services
Messageslist
Description
Links to used REST services
Configurations
Components in eXo Collaboration Configuration
CalendarService
HistoryImpl
XMPPMessenger
DefaultPresenceStatus
ContactService
External Component Plugins
Calendar Configuration
NewUserListener
NewGroupListener
NewMembershipListener
ReminderPeriodJob
PopupReminderPeriodJob
AddActionsPlugin
Chat Configuration
HistoryPeriodJob
RequestFilterComponentPlugin
AuthenticationLoginListener and AuthenticationLogoutListener
AuthenticationLoginListener
AuthenticationLogoutListener
Contact Configuration
NewUserListener
NewMembershipListener
UpdateUserProfileListener
Content Configuration
RSSContentPluginDescriptionPlugin
DescriptionPlugin
Mail Configuration
AuthenticationLogoutListener
MailSettingConfigPlugin
Social Integration Configuration
CalendarDataInitialize
ContactDataInitialize
ContactSpaceActivityPublisher
CalendarSpaceActivityPublisher
PortletPreferenceRequiredPlugin
Data Injectors
ContactDataInjector
CalendarDataInjector
MailDataInjector
Usage of MailDataInjector
eXo Chatserver Configuration
Openfire Configuration
Configuration in Openfire.xml
eXo specific configuration
System Configuration
AS configuration
JCR Structure
Calendar JCR Structure
calendars
eventCategories
categories
eXoCalendarFeed
Y%yyyy%
calendarSetting
Chat JCR Structure
Address Book JCR Structure
Contacts
ContactGroup
tags
Shared
Mail JCR Structure
RSS JCR Structure
Developer reference
Extension points
ContentDAO
ContactLifeCycle
Transport
EventLifeCycle
Public REST APIs
Calendar application
Mail application
Chat application
RESTXMPPService
FileExchangeService
Reference Guide / Knowledge Functions
Prerequisites
Applications
Portlets
Forum Portlet
Overview
Portlet.xml
Preferences
Events
ForumLinkEvent
ReLoadPortletEvent
OpenLink
ForumPollEvent
ForumModerateEvent
ForumRuleEvent
QuickReplyEvent
Answers Portlet
Overview
Portlet.xml
Portlet Preferences
FAQ Portlet
Overview
Portlet.xml
Portlet Preferences
Polls Portlet
Overview
Portlet.xml
Portlet Preferences
Gadgets
Overview
Preferences
Links to used REST services
Configuration
Components
Components of eXo Knowledge
Components of Forum
Components of Answers
Components of Polls
External-component-plugin
Init data configuration
Init data
Configuration
Initialize the conf-part for loading repository-configuration.xml
Initialize workspace name and repository name in storage-configuration.xml
Initialize data
Roles Configuration
Overview
Configuration
ProfileProvider Configuration
Overview
Configuration
Use ContactProvider
By DefaultContactProvider
By SocialContactProvider
Forum Configuration
BBCode Configuration
Overview
Configuration
Default BBCode data
Forums Initializer
Overview
Configuration
Default forum data
Forum array
Forum topics
Initial Data Plugin
Auto-prune
Overview
Configuration
User Statistics
Overview
Configuration
Update Statistic Data
Overview
Configuration
Default User Profile
Overview
Configuration
Answer Configuration
Answers Initializer
Overview
Configuration
Answers Email Templates Configuration
Overview
Configuration
Poll Configuration
Overview
Configuration
Default Poll data
Data Injector Servive
Technical details
Configuration
ForumDataInjector
Wiki Data injector
AnswerDataInjector
How to use?
JCR structure
Overview
Forum JCR structure
Forum System
User Profile and User Profile Home
Statistic and Statistic Home
Ban IP and Ban IP Home
Administration and Administration Home
Forum Data
Category and Category home
Forum
Topic
Post
Tag and Tag home
BBCode and BBCode home
Topic type and Topic type home
FAQ JCR structure
Category
Sub-category
RSS
Question and Question Home
Multilanguages
Answer, Comment and Attachment
FAQ setting
Template for FAQ
Poll JCR structure
Wiki JCR structure
Wiki data
WikiHome
Preferences
LinkRegistry
Trash
Template Container
Wiki metadata
Developer reference
Extension points
ForumEventLifeCycle
Overview
Configuration plug-in
Tutorial
AnswerEventLifeCycle
Overview
Configuration plug-in
Tutorial
BBCodeRenderer
Internal API
Forum application
Answers application
Polls application
FAQ Template Configuration
Configuration plug-in
How to change look and feel
Plug-in
Edit Mode
API provided by the UIComponent (UIViewer.java)
Reference Guide / Social Functions
Applications
List of Portlets in Social
List of Gadgets in Social
Activity Stream
Social RSS Reader
My Connections
My Spaces
Configuration
Components
ActivityManager
SpaceService
IdentityManager
ProfileConfig
ServiceProviderStore
External component plugins
MentionsProcessor
PortletPreferenceRequiredPlugin
SpaceApplicationConfigPlugin
AddNodeTypePlugin
RelationshipManager
SpaceIdentityProvider
SpaceApplicationHandler
ExoPeopleService
Space Service
Description
Components configuration
External plug-in configuration
PortletPreferenceRequiredPlugin
SpaceApplicationConfigPlugin
Activity Manager
Description
Component plug-in configuration
External plug-in configuration
Identity Manager
Description
Component plug-in configuration
OpenSocial Rest Context Configuration
Description
Component plug-in configuration
Spaces Template configuration
Configure the oauth 2 legged scenario
Generate the certificates
Configure the property file
Developers References
UI Extensions
About Activity Plugin
How to create activity plugin
Create a custom UI component for displaying the activity based on its type
What is ActivityBuilder?
Create a composer extension for composing activity on the UI composer and display it on the activity stream
Overridable Components
Public Java APIs
ActivityManager
IdentityManager
RelationshipManager
SpaceService
Java APIs sample code/ tutorial
Activity Stream
Publish an activity
Publish an activity for a user
Publish an activity for a space
Configure an activity processor
Publish an RSS feed with feedmash
Sample Code
OpenSocial
Gadget
Supported APIs
REST/RPC API
Configure the security
Publish an activity into a space
Tutorial
People
Identity
IdentityProvider
IdentityManager
ProfileListener
Connections
Users connection
RelationshipListener
Spaces
Spaces Management
Space's applications management
Add an application to a space
Remove an application from a space
Space's members management
Listener to a space lifecycle
Space widget tutorial
Basic version
Advanced version
Configure
How to extend the activities rendering
Objective
Requirements
Why would you need to do this?
Write an ActivityProcessor
Configure the processor
XMLProcessor component
Objectives
XMLProccessor Component
Built-in XMLProcessor Plugins
Public REST APIs
Activities REST service
Apps REST service
Identity REST service
Linkshare REST service
People Rest Service
Spaces REST service
Widget Rest Service
Location
Rest Service APIs (v1-alpha1)
Activity Resources
activity
POST activity.format
GET activity/:activityId.format
DELETE activity/:activityId.format
POST activity/destroy/:activityId.format
activity/:activityId/comments
GET activity/activity:id/comments.format
activity/:activityId/comment
POST activity/:activityId/comment.format
DELETE activity/:activityId/comment/:commentId.format
POST activity/:activityId/comment/destroy/:commentId.format
activity/:activityId/like
POST activity/:activityId/like.format
DELETE activity/:activityId/like.format
POST activity/:activityId/like/destroy.format
Activity Stream Resources
activity_stream/:identityId/user
GET activity_stream/:identityId/user/default.format
GET activity_stream/:identityId/user/newer/:activityBaseId.format
GET activity_stream/:identityId/user/older/:activityBaseId.format
activity_stream/:identityId/feed
GET activity_stream/:identityId/feed/default.format
GET activity_stream/:identityId/feed/newer/:activityBaseId.format
GET activity_stream/:identityId/feed/older/:activityBaseId.format
activity_stream/:identityId/connections
GET activity_stream/:identityId/connections/default.format
GET activity_stream/:identityId/connections/newer/:activityBaseId.format
GET activity_stream/:identityId/connections/older/:activityBaseId.format
activity_stream/:identityId/spaces
GET activity_stream/:identityId/spaces/default.format
GET activity_stream/:identityId/spaces/newer/:activityBaseId.format
GET activity_stream/:identityId/spaces/older/:activityBaseId.format
Identity Resources
identity
GET identity/:identityId.format
Notes
GET: {rest_context_name}/{portal_container_name}/social/identity/:username/id/show.json
Version Resources
version/latest
GET version/latest.format
version/supported
GET version/supported.format
Public Javascript APIs
Social JCR Structure
Overview
soc:providers
soc:<providername>
soc:spaces
User Guide
eXo Platform
Contribute to documentation
Introduction
About eXo Platform
Browser compatibility
Get Started
Glossary
Portlet
Navigation
Gadget
Drive
Podcast
File Plan
eXo Platform 3.5 interface
Manage accounts
Register new account
Sign in & Sign out
Change account settings
Retrieve account and password
Manage language
Change the display language permanently
Change the display language for another user
Manage Your Organization
Manage Your Portals
Manage permissions
Manage sites
Manage navigation nodes
Manage pages
Manage page navigation
Portal's page navigation
User's page navigation
Group's page navigation
Edit a group's page navigation
Create a new page navigation
Change priority of page's navigation
Delete a group's navigation
Manage applications
Inside a portal
Manage portlets and gadgets
Import portlets and gadgets
View/Edit detailed information of a portlet/gadget
Edit a specific portlet
Add a gadget
Add a new gadget from Dashboard
Edit a gadget
Dashboard portlet
Use the Dashboard workspace
Change gadget preferences
Add more external gadgets from Dashboard
Use Gadgets in your dashboards
Engagement gadgets
Latest Forum Posts
Top Voted Topics
Forum Statistics
Friend Suggestions
Audit gadgets
Login History
Collab gadgets
eXo Calendar Gadget
Management and Monitoring Gadgets
Memory Charts
Cache Levels
Applications Statistics
All Template Statistics
10 Slowest Templates
Services Management
eXo Scripting Console
Inside Desktop
Add an application
Open an application
Quit an application
Change the Desktop title and background
Organize Your Content
Structure content
Access Sites Explorer
Drives
Private drive
Public drive
Personal Documents drive
Drive of a specific group
Hide/Show the sidebar in a drive
Views
Admin view
Cover Flow view
Icons view
Thumbnails view
Slide Show view
Timeline view
Functions on action tabs
Add a category
Add a document
Add a folder
Add translations to a document
Add a Symlink
Comment
Edit a document
Export nodes
Import nodes
Manage actions
Add an action
View actions
Edit an action
Delete an action
Manage auditing
Manage categories
Assign a category to a node
Delete a category
Show/Hide a content
Manage publication
Manage relations
Add a relation
Delete a relation
View relations
Manage versions
Add versions to a node
Add/Remove labels for versions
View versions
Restore a version
Delete a version
Multi-Languages
Overload thumbnails
Request approval
Approve a content
Publish a content
Show drives
Show JCR Structure
Tag documents
Upload files into folders
View metadata
View node types
View permissions
View properties
View relations
Vote for a document
Watch documents
Actions on folders and documents
Add to favorites
Copy/Paste & Cut/Paste
Edit documents
Delete folders and documents
Drag and drop folders and documents
Lock/Unlock folders and documents
Rename folders and documents
Add a Symlink
View WebDAV
View information
View document
Copy a URL to the clipboard
Manage tags
Content Administration
Categories and Tags
Manage tags
Edit a tag style
Delete a tag style
Tag Permission Manager
Manage categories
Add a category tree
Edit a category tree
Content Presentation
Manage a template
Manage metadata
Manage views
Views tab
ECM Templates tab
Manage drives
Add a new drive
Edit a drive
Delete a drive
Content Types
Namespace registry
Manage node types
View node types
Advanced Configuration
Manage queries
Manage Scripts
Create an action type
Manage locks
Manage content
Contribute content
Edit mode
InContext Editing
Add a content
Edit a content
Manage content
Preferences
Inline Editing
CKEditor
Publication process
Content inside categories
Create a content inside a category
Manage content in Sites Explorer
Create a new web content
Edit a webcontent
Delete a webcontent
Publish a webcontent
Preferences
Search in Sites Explorer
Quick search
Advanced search
Search by Name
Search with constraints
Methods to add the required constraints
Search by creating a new query
Search by existing queries
Search with saved queries
Manage content with WebDAV
How to use WebDAV in eXo Platform?
Add new content to a specific site
Delete a web content
Manage contents with Fast Content Creator
Configuration of Fast Content Creator
Create a new content
View a content
Manage contents list viewer by query
Create content templates with Form Builder
Manage Category Navigation
Manage SEO
Print content
Manage newsletters
Manage workflows
Holiday process
Create a holiday process
Manage a holiday process
Pay raise process
Create a pay raise process
Manage a pay raise process
Upload a process
View process detail
Collaborate With Your Colleagues
Manage your calendar
Calendar views
Manage a calendar group
Add a new calendar group
Edit a calendar group
Delete a calendar group
Create a calendar
Create a personal calendar
Create a group calendar
Create a remote calendar
Edit a calendar
Set the calendar color
Delete a calendar
Export/Import a calendar
Share a personal calendar
Schedule an event
View details of an event
Create a new event
Quick add an event
Add a detailed event
Create a recurring event
Create a reminder for upcoming events
Add participants to an event
View the availability time of participants
Edit an event
Drag and drop an event
Export/Import an event
Delete an event
Schedule a task
View task details
Create a new task
Quick add a task
Add a detailed task
Assign a task delegation
Create a reminder
Edit task details
Drag and drop a task
Export/Import a task
Delete a task
Search for events/tasks
Quick search
Advanced Search
More actions
Generate RSS
Edit Calendar settings
Manage categories
Add a new category
Edit/Delete a category
Add Agenda gadget to your page
Add My Tasks gadget to your page
Manage your contacts
View contacts
Create a new contact
Edit contact details
Tag a contact
Edit a tag
Delete a tag
Send a mail to a contact
Copy/Paste a contact
Move a contact
Delete a contact
Export contacts
Import contacts
Print contacts
Print an Address Book
Share contacts
Search for contacts
Quick search
Advanced search
Manage Address Books
Create an address book
Edit an address book
Remove an address book
Export an address book
Import an address book
Share a personal address book
Grant permissions on a public address book
Email your contacts
Create a Mail account
Edit your account details
Delete your account
More about Incoming & Outgoing mail server settings
Get mails
Mail views
List view
Thread view
Conversation view
Read an email
Download an attached file
Download and save attachments to server
View all headers of a message
Mark/Unmark a message as read
Star/Unstar a message
Move a message to other folders
Report a message as spam
Delete a message
Compose a new message
Attach a file to a message
Attach a server file
Save a message as draft
Set a priority level
Change the message signature
Change message preferences
Reply to a message
Forward a message
Print a message
Export a message
Import a message
Categorize messages by folders/tags/filters
Folder
Create a new folder
Manage Personal Folders
Create a sub-folder
Rename a folder
Remove a folder
Mark a folder as read
Tag
Create a tag
Assign a tag to a message
Edit a tag
Remove a tag
Empty a tag
Change the tag color
Filter
Create a filter
Edit a filter
Delete a filter
Search for messages
Quick search
Advanced search
Add an event
Manage Address Book in Mail
Add a new address book
Add a new contact
Edit contact details
Delete a contact
Change Mail settings
Chat with your contacts
Add contacts to your friend list
Remove a contact
Chat with a contact
Send messages
Set your status
Send a file
Export the Chat history
Show chat history at a specific time
Create a chat room
Add people to a room
Join a chat room
Leave a chat room
Configure a chat room
Organize Your Knowledge
About user roles
How to access knowledge applications
Build a wiki
Overview
The page hierarchy in Wiki
Wiki Spaces
Work with Wiki pages
Create a page
Edit a page
Move a page to another location
Delete a page
View page information
Add a related page
View a page history
Watch a page
Work with attachments
View all attachments of a page
Add an attachment to a page
Insert image
Use the WYSIWYG Editor (Rich Text editor)
Syntax Help
Work with Macros
Work with page versions
View versions of a page
Compare page versions
Restore a page version to the current version
Work with Spaces
Search
Quick Search
Advanced Search
Wiki Administration
Set up space settings
Manage Permissions
Space Permissions
Add space permissions
Delete space permissions
Page Permissions
Manage a page template
Search for a template
Create a new template
Edit a template
Delete a template
Set up the wiki syntax
Build a forum
Administrator
Set up the Forum portlet
Specify the category scoping
Enable/Disable Forum components
Enable/Disable a bookmarkable Forum URL
Manage categories
Add a new category
Edit a category
Delete a category
Manage forums
Add a new forum
Configure the moderation settings
Delete a forum
Manage users
Promote a user
Modify user's forum settings
Ban users
Administrative tasks
Set up Sort Settings
Define censored keywords
Customize an email notification template
Customize a BBCode
Add a new BBCode
Edit a BBCode
Delete a BBCode
Activate/Deactivate a BBCode
Set up auto-pruning
Create a topic type
Ban IPs
Back up a category & forum
Export a category
Export a forum
Import a category
Import a forum
Regular users
View details of the Forum application
Search
Quick search
Advanced search
Topics
Start a topic
Select a topic icon
Set the topic options
Set topic permissions
Edit a topic
Create a poll
Rate a topic
Tag/Untag a topic
Post
Post a quick reply
Post an advanced reply
Post a private reply
Reply with a quote
Edit a post
Delete a post
Use BBCodes
Public user profile
Private messages
Send a private message
Receive a private message
Bookmarks
Add a bookmark
View bookmarks
Delete a bookmark
Subscribe to RSS feeds
Watch
Permanent links
User settings
Edit a profile
Change forum settings
Edit a subscription
Moderator
Moderate forums
Edit a forum
Lock/Unlock a forum
Close/Open a forum
Move a forum
Moderate topics
Approve a topic
Edit a topic
Close/Open a topic
Move a topic
Delete a topic
Lock/Unlock a topic
Stick/Unstick a topic
Merge topics
Split a topic
Moderate posts
Approve a post
Delete a post
Move a post
Hide a post
Show a post
Uncensor a post
View all pending moderation tasks
Ban IPs
Build an Answers & FAQs system
Administrator
Set up the Answers portlet
Change the display mode
Customize the email notification template
Enable the "Discuss in Forum" feature
Define the default category for discussions
Set up the FAQ portlet
Moderator
Manage categories
Add a new category
Edit category properties
Delete a category
Move a category
Export/Import a category
Moderate questions
View all questions
Edit a question
Approve/Disapprove a question
Activate/Deactivate a question
Delete a question
Move a question
Moderate an answer
Approve/Disapprove an answer
Activate/Deactivate an answer
Delete an answer
Promote a comment to answer
Regular user
View details of Answers
Submit a question
Edit a question
Answer a question
Edit an answer
Comment on a question
Send a question to others
Discuss a question in forum
Rate a question
Vote for an answer
Watch/Unwatch a category
Subscribe to RSS feeds
Edit user settings
View public user profile
Search
Quick search
Advanced search
Print
Build Social Network
Manage your profile
Edit your information
Upload your profile avatar
Update your current position
Manage spaces
Create a space
Edit a space
Change space information
Change visibility
Manage members
Invite new members
Revoke your invitations
Promote/Demote a member
Remove a member
Manage space applications
Add a new space application
Delete applications
Edit space navigation
Join/Leave a space
View details of a space
Delete a space
Search for spaces
Accept/Deny invitations
Build networks
Search for your contact
Send connection requests
Revoke a connection request
Accept/Deny a connection request
Disconnect from your contacts
Follow activities in your organization
Update status
Share a link
Share a file
Delete activities/comments
Comment on activities
Like/Unlike activities
Administrator Guide
Introduction
About this guide
About eXo Platform 3.5
Installation
Install the Tomcat bundle
Start up the server.
Shut down the server.
Start up eXo Platform by running built-in startup scripts.
Customize environment variables in tomcat
Install JBoss EARs
Profiles of eXo Platform
Configuration
eXo Platform configuration
Portal Containers, Customization and Configurations
Database configuration
Connect to a production database
FAQs of database configuration
File system paths
JCR system and default Workspaces
Transaction Service
Mail server
WebDAV cache control
Chat server
XMPPMessenger
Chat server configuration
Ports
OpenOffice server
Log-in
JCR
Cache configuration
Portal Cache Configuration
Social Cache Configuration
ECMS Cache Configuration
Users configurations
Super-user configuration
Default users list definition of eXo Platform
Grant users access to toolbar
Grant all users access to toolbar but not CMS
Grant all new users access to toolbar and CMS
Gadget configuration
Gadget proxy configuration
How does it work
Default OAuth key configuration
JCR Links cleaner job
Other properties
Management
Introduction to eXo Platform management
JMX interface
REST interface
Management views of eXo Platform
PortalContainer management view
Cache management view
Cache instances
CacheManager
PicketLinkIDMCacheService
eXo Content management view
WCMComposer
FriendlyService
WCMService
JCR management view
SessionRegistry
LockManager
Repository
Workspace
Portal management view
Template statistics
Template management
Skin management
TokenStore
Portal statistics
Application statistics
eXo Knowledge management view
Forum
Job
Plugin
RoleRulesPlugin
BBCodePlugin
ForumInitialDataPlugin
InitialDataPlugin
Storage
eXo Collaboration management view
Security
Change the JAAS realm
Tomcat
Common changes
configuration.properties
portal.war
rest.war
Backup
Pre-backup
eXo Platform backup
Restore
Third-party tools
Clustering
About clustering in eXo Platform
Set up the eXo Platform cluster
Shared file system
Set up eXo Platform cluster
Advanced configuration
JBossCache
Shared file system
Local JCR index in cluster
FAQs of clustering
Deployment
Remove sample applications
Remove Acme website/Acme Social Intranet
Remove crash
Deploy a custom extension
Set up Apache front-end
Base configuration for Apache
Connect via HTTP protocol (Apache mod_proxy)
Connect via AJP protocol
AJP proxy module
Apache Tomcat's AJP connector
Configure the session timeout for the web server
Tomcat server
JBoss server
Organization Integration
Terminology
Integrate the organizational model
eXo Platform start-up
User login
Manual sync
Scheduled/Periodic sync
Use REST
Use JMX
Legacy Organization Models
Legacy organization configurations
Hibernate Organization Service configuration
LDAP Organization Service configuration
AD Organization Service configuration
Developers Guide
Introduction
Welcome to eXo Platform 3.5
About this guide
Glossary
Set Up Your Project
eXo Architecture Primer
Kernel
Containers
Services
Service configuration
Kernel XML Schema
Components
Parameters
Value-param
Object-param
Rest of parameter types
Plugins
Configuration loading sequence
GateIn extensions
Default Portal Container
Register Extension
Java Content Repository
Repositories and workspaces
Tree structure: working with nodes and properties
Create Your Own Portal
Create your extension project
Structure of portal, pages and menus
Page layout
Visibility of pages
Page access permission
Add/remove languages
Add new languages
Remove languages
Create custom look and feel
Structure stylesheet
Page skin Elements
Portlet Specification CSS Classes
Portlet skins
Best practices to customize a skin
Name files and folders
Folder structure
Configure skin in GateIn
Select skins within the configuration files
Skins in the page markup
SkinService
Configure skins
ResourceRequestFilter
Default skin
Create new skins
Create new portal skins
Configure portal skins
Portal skin preview icon
Create new window styles
Configure window styles
Window style CSS
Set the default window style
Create new portlet skins
Change portlet icons
Configure right-to-left skins
Override skins with extension
Configure skin in WCM
Goal
Assumptions
Customize portal's layout
Customize page's layouts
Customize portal and page's style
Customize CLV portlet's template
Customize CLV template's style
Customize Document's skin
Create and apply Global stylesheet
Create and apply the global stylesheet by Content Explorer
Create and apply the global stylesheet by configuration
Check display of global stylesheets
How to customize the Admin bar
Change the color scheme
Change the content of the Admin bar
Add JavaScript to your portal
Work with Content
Document types
WCM templates
Document type
Dialog Syntax
Interceptors
Hidden fields
Non-value field
Non-editable fields
Create node type or mixin type
Hidden field with default value
Visible without null fields
WYSIWYG widget
Simple select box widget
Advanced dynamic select box
Widget with selector
Multi-valued widget
Manage template service
Taxonomies
Work with Applications
Application integration
Develop your own applications
Gadget vs Portlet
Gadget development in eXo Platform
Preface
Get the consistent look and feel
Portlet Bridges
System Integration
Authentication
Single-Sign-On (SSO)
Central Authentication Service (CAS)
Kerberos SSO on Active Directory
Users integration
Organization Service
Memberships, Groups and Users
Organization API
LDAP Integration
Connection Settings
Organization Service Configuration
Users
Main parameters
User mapping
Groups
Membership types
Memberships
User profiles
Active Directory sample configuration
Picketlink IDM
Email
eXo Platform 3.5 APIs
Definitions of API Levels
Use Provisional or Experimental APIs
Platform APIs
Java APIs
JavaScript APIs
Web Services
Provisional APIs
Java APIs
Cookbook
How to Copy a Site
New Features
Navigation by content
What is Navigation By Content?
Actual content navigation
How-To
Actions on Navigation By Content
Create a new product
Develop your product content
IDE User Guide
Introduction
Introduction
Requirements
Basic Operations
Select Workspace
Open Folder
Open File
Refresh Selected Folder
View and Copy File's URL
Copy/Cut/Paste Files and Folders
Operations With Folder
Create Folder
Delete Folder
Rename Folder
Download Zipped Folder
Operations With File
Create File
Save/Save As... File
Save All Files
Delete File
Rename File
Change MIME Type of File
Lock File
Open Files with the Non-default Editor
Go to Folder
Download File from Server
Open Local File
Upload File
Upload Zipped Folder
Open File by Path
Use File Template
Save File as Template
Create File from Template
Remove Non-default File Template
Use Project Template
Create Project Template
Modify the Project Template Structure
Create Project From Template
Remove Project Template
Open/Select/Close/Browse tabs
Undo/Redo Editing
Undo
Redo
Edit Files in the Code Editor
Format File
Show/Hide Line Numbers
Go to Line
Watch the cursor position in the Status Bar
Delete line
Find/Replace
Code Autocomplete
JavaScript Specific Autocomplete List
CSS Specific Autocomplete List
HTML Specific Autocomplete List
XML Specific Autocomplete List
ECM Template Autocomplete List
Netvibes Widget Autocomplete List
Groovy Code Specific Autocomplete List
Class Name
Object's Fields and Methods Autocomplation
Static Fields and Methods Autocompletion
Annotations Autocompletion
Local Variables and Parameters Autocomplation
Validate Java Types and Fix Import Statements
Code Outline
Code Outline for Groovy Code
Edit File in the WYSIWYG Editor
Preview File Properties
Preview HTML File
Search Files
REST Service Operations
Validate REST Service
Deploy/Undeploy REST Service
Use Autoload Property
Launch REST Service with set parameters and Preview Server Console Messages in the Output Tab
Get URL of REST Service
Review of the response headers from REST Service
Deploy to Sandbox, Undeploy from Sanbox, Run in Sandbox
REST Service Discovery
Configure Classpath
Add Source to Classpath
Remove Source from Classpath
Example: REST service with complex media types output preview
Operations With POGO File
Operations With Google Gadget
Create Google Gadget
Preview Google Gadget
Operations With Templates
Create and Edit Template
View Template's Properties
Preview Template
Operations With Netvibes Widget
Create Netvibes Widget
Preview Netvibes Widget
Deploy Netvibes Widget To Netvibes Ecosystem
View Netvibes Documentation
Chromattic Data Object Usage
Create Data Object
Preview Node Type
Create Node Type
Versioning
View Version History
Version Navigation
Restore File to the Older Version
Miscellaneous and Tips
View information about eXo IDE
Customize Toolbar
Customize Hotkeys
Links
Reference Guide / eXo JCR
eXoJCR
Introduction in eXoJCR
JCR (JSR-170) API main concepts
Data model
Why use JCR?
What is JCR?
Why use JCR?
What does eXo do?
Further Reading
eXo JCR Implementation
Related Documents
How it works
Workspace Data Model
Advantages of eXo JCR
Advantages for application developers:
Advantages for managers
Compatibility Levels
Introduction
Level 1
Level 2
Optional features
Using JCR
1 Using eXo JCR in an application
Obtaining a Repository object
JCR Session common considerations
JCR Application practices
Simplifying the management of a multi-workspace application
Reusing SessionProvider
JCR Extensions
JCR Service Extensions
Concept
Implementation
Configuration
Related Pages
eXo JCR Application Model
NodeType Registration
Interfaces and methods
ExtendedNodeTypeManager
NodeTypeValue
NodeDefinitionValue
PropertyDefinitionValue
ItemDefinitionValue
Node type registration
Run time registration from xml file.
Run time registration using NodeTypeValue.
Changing existing node type
Removing node type
Practical How to
Adding new PropertyDefinition
Adding new child NodeDefinition
Changing or removing existing PropertyDefinition or child NodeDefinition
Changing the list of super types
Registry Service
Concept
The API
Configuration
Namespace altering
Adding new namespace
Changing existing namespace
Removing existing namespace
Node Types and Namespaces
Introduction
Node Types definition
Namespaces definition
eXo JCR configuration
Related documents
Portal and Standalone configuration
JCR Configuration
Repository service configuration (JCR repositories configuration)
Repository configuration:
Workspace configuration:
Workspace data container configuration:
Value Storage plugin configuration (for data container):
Initializer configuration (optional):
Cache configuration:
Query Handler configuration:
Lock Manager configuration:
Help application to prohibit the use of closed sessions
Multilanguage support in eXo JCR RDB backend
Introduction
Oracle
DB2
MySQL
PostgreSQL
Search Configuration
XML Configuration
Configuration parameters
Global Search Index
Global Search Index Configuration
Customized Search Indexes and Analyzers
Creating the filter
Creating the analyzer
Creating the search index
Configuring your application to use your SearchIndex
Configure your application to use your Analyzer
Indexing Adjustments
IndexingConfiguration
Indexing rules
Node Scope Limit
Indexing Boost Value
Conditional Index Rules
Exclusion from the Node Scope Index
Indexing Aggregates
Property-Level Analyzers
Example
Characteristics of Node Scope Searches
Advanced features
JCR Configuration persister
Idea
Usage
JDBC Data Container Config
Introduction
Multi-database Configuration
Single-database configuration
Configuration without DataSource
Dynamic Workspace Creation
Simple and Complex queries
Forse Query Hints
Notes for Microsoft Windows users
External Value Storages
Introduction
Tree File Value Storage
Simple File Value Storage
Content Addressable Value storage (CAS) support
Disabling value storage
Workspace Data Container
REST Services on Groovy
Concept
Usage
Configuring JBoss AS with eXo JCR in cluster
Launching Cluster
Deploying eXo JCR to JBoss As
Configuring JCR to use external configuration
Requirements
Environment requirements
Configuration requirements
JBoss Cache configuration
JBoss cache configuration for indexer, lock manager and data container
JGroups configuration
Allow to share JBoss Cache instances
Shipped JBoss Cache configuration templates
Data container template
Lock manager template
Query handler (indexer) template
LockManager configuration
Introduction
LockManagerImpl
CacheableLockManagerImpl
Configuration
Simple JbossCache Configuration
Template JBossCache Configuration
Data Types in Different Databases
Lock migration from 1.12.x
QueryHandler configuration
Indexing in clustered environment
Configuration
Query-handler configuration overview
Standalone strategy
Cluster-ready indexing strategies
Local Index Recovery Filters
JBoss-Cache template configuration
Asynchronous reindexing
On startup indexing
Hot Asynchronous Workspace Reindexing via JMX
Notices
Advanced tuning
Lucene tuning
JBossTransactionsService
Introduction
Configuration
TransactionManagerLookup
Configuration
RepositoryCreationService
Intro
Dependencies
How it works
Configuration
RepositoryCreationService Interface
Conclusions and restrictions
JCR Query Usecases
Intro
Query Lifecycle
Query Creation and Execution
Query Result Processing
Scoring
Query result settings
Type Constraints
Property Constraints
Path Constraint
Ordering specifing
Fulltext Search
Indexing rules and additional features
Query Examples
SetOffset and SetLimit
Common info
Repository structure
Query execution
Fetching result
Finding All Nodes
Repository structure:
Query execution
Fetching result
Finding Nodes by Primary Type
Repository structure:
Query execution
Fetching result
Finding Nodes by Mixin Type
Repository structure:
Query execution
Fetching result
Property Comparison
Repository structure:
Query execution
Fetching result
LIKE Constraint
Repository structure:
Query execution
Fetching result
Escaping in LIKE Statements
Repository structure
Query execution
Fetching result
NOT Constraint
Repository Structure
Query execution
Fetching the result
AND Constraint
Repository Structure:
Query execution
Fetching the Result
OR Constraint
Repository Structure
Query Execution
Fetching the Result
Property Existence Constraint
Repository Structure
Query Execution
Fetching the Result
Finding Nodes in a Case-Insensitive Way
Repository Structure
Query Execution
Fetching the Result
Date Property Comparison
Repository Structure
Query Execution
Fetching the result
Node Name Constraint
Repository Structure
Query execution
Fetching the Result
Multivalue Property Comparison
Repository Structure
Query Execution
Fetching the Result
Exact Path Constraint
Repository Structure
Query Execution
Fetching the Result
Child Node Constraint
Repository Structure
Query Execution
Fetching the Result
Finding All Descendant Nodes
Repository Structure
Query Execution
Fetching the Result
Sorting Nodes by Property
Repository Structure
Query Execution
Fetching the Result
Ordering by Descendant Nodes Property (XPath only)
Repository structure:
Query Execution
Fetching the Result
Ordering by Score
Info
Repository Structure
Query Execution
Fetching the Result
Ordering by Path or Name
Fulltext Search by Property
Repository Structure
Query Execution
Fetching the Result
Fulltext Search by All Properties in Node
Repository structure:
Query execution
Fetching result
Ignoring Accent Symbols. New Analyzer Setting.
Repository structure:
Query execution
Fetching result
Finding nt:file node by content of child jcr:content node
Repository structure:
Query execution
Fetching the result
Changing Priority of Node
Indexing configuration
Repository structure:
Query execution
Fetching result
Removing Nodes Property From Indexing Scope
Repository structure:
Query execution
Fetching result
Regular Expression as Property Name in Indexing Rules
Repository structure:
Query execution
Fetching result
High-lighting Result of Fulltext Search
Base info
Repository structure:
Query execution
Fetching result
Searching By Synonim
Repository structure:
Query execution
Fetching result
Checking the spelling of Phrase
Repository structure:
Query execution
Fetching result
Finding Similar Nodes
Repository structure:
Query execution
Fetching result
Tips and tricks
XPath queries containing node names starting with a number
Searching Repository Content
Introduction
Bi-directional RangeIterator (since 1.9)
Fuzzy Searches (since 1.0)
SynonymSearch (since 1.9)
High-lighting (Since 1.9)
DefaultXMLExcerpt
DefaultHTMLExcerpt
How to use it
SpellChecker
How do I use it?
Similarity (Since 1.12)
Fulltext Search And Affecting Settings
Property content indexing
Lucene Analyzers
How are different properties indexed?
Fulltext search query examples
Different analyzers in action
JCR API Extensions
"Lazy" child nodes iteration
Concept
API and usage
Configuration
Implementation notices
WebDAV
Related documents
Introduction
Configuration
Screenshots
MS Internet Explorer
Dav Explorer
Xythos Drive
Microsoft Office 2003
Ubuntu Linux
Comparison table of WebDav and JCR commands
Restrictions
Windows 7
Microsoft Office 2010
FTP
Introdution
Configuration Parameters
command-port:
data-min-port & data-max-port
system
client-side-encoding
def-folder-node-type
def-file-node-type
def-file-mime-type
cache-folder-name
upload-speed-limit
download-speed-limit
timeout
eXo JCR Backup Service
Concept
How it works
Implementation details
Work basics
Configuration
RDBMS backup
Usage
Performing a Backup
Performing a Restore
Restoring into an existing workspace
System workspace
Repository and Workspace initialization from backup
Restore the Workspace over BackupWorksaceInitializer
Restore the Repository over BackupWorksaceInitializer
Scheduling (experimental)
Restore existing workspace or repository
Restore a workspace or a repository using original configuration
Backup set portability
HTTPBackupAgent and backup client
Introduction
HTTPBackupAgent
HTTPBackupAgent methods
Starting Backup Service
Stopping Backup Service
Backup Info Service
Dropping Workspace Service
Backup Info
Current Backups Information
Completed Backups Information
Workspace-specific Backup Information
Single Backup Information
Restores on a Workspace Information
Restores Information
Restoring Service
Default Workspace Information
HTTPBackupAgent Configuration
Backup Client
Backup Client Usage
Building application
Running application
Getting information about backup service
Starting full backup
Starting full and incremental backup on a single workspace
Getting information about the current backups (in progress)
Getting information about the current backup by 'backup_id'
Stopping backup by "backup_id"
Getting information about the completed (ready to restore) backups
Restoring to workspace
Getting information about the current restore
Restoring workspace and remove exists workspace
Restoring workspace from backup set
Restoring workspace from backup set and remove exists workspace
Restoring workspace with original configuation
Restoring workspace with original configuation and remove exists workspace
Restoring workspace from backup set with original configuation
Restoring workspace from backup set with original configuation and remove exists workspace
Restoring repository
Restoring repository and remove exists repository
Restoring repository from backup set
Restoring repository from backup set and remove exists repository
Restoring repository with original configuation
Restoring repository with original configuation and remove exists repository
Restoring repository from backup set with original configuation
Restoring repository from backup set with original configuation and remove exists repository
Full example about creating backup and restoring it for workspace 'backup'
Creating backup
Getting information about current backups
Stopping backup by id
Deleting the workspace "backup" and close opened sessions on this workspace
Restoring the workspace "backup"
Getting information about restore for workspace /repository/backup
Full example about creating backup and restoring it for repository 'repository'
Creating backup
Getting information about current backups
Stopping backup by id
Deleting the repository "repository" and close all opened sessions
Restoring the repository "repository"
Getting information about restore for repository 'repository'
Use external backup tool
Repository suspending
Backup
Repository resuming
eXo JCR statistics
Statistics on the Database Access Layer
Statistics on the JCR API accesses
Statistics Manager
Checking repository integrity and consistency
JMX-based consistency tool
JTA
The JCA Resource Adapter
Overview
The SessionFactory
Configuration
Deployment
Access Control
Standard Action Permissions
eXo Access Control
Principal and Identity
ACL
Privilegeable
Ownable
ACL Inheritance
Default ACL of the root node
Notes
Example
XML Example
Inheritance Examples
Permission validation
Java API
Access Control Extension
Prerequisites
Overview
Access Context Action
The Invocation Context
Custom Extended Access Manager
Example of a custom Access Manager
Link Producer Service
Binary Values Processing
Configuration
Usage
Value implementations
JCR Resources:
JCR Workspace Data Container (architecture contract)
Goals
Concepts
Container and connection
Value storages
Lifecycle
Value storage lifecycle
Requirements
Read operations
Write operations
State operations
Validation of write operations
Consistency of save
Value storages API
Storages provider:
Value storage plugin
Value I/O channel
Transaction support via channel
How-to implement Workspace Data Container
Short intro about Workspace data container implementation practices:
Notes on Value storage usage:
DBCleanService
API
JCR Performance Tuning Guide
Introduction
JCR Performance and Scalability
Cluster configuration
JCR Clustered Performance
Performance Tuning Guide
JBoss AS Tuning
JCR Cache Tuning
Clustering
JVM parameters
eXoKernel
eXo Kernel
eXo Kernel introduction
ExoContainer info
Container hierarchy
Service Configuration for Beginners
Objective
Requirements
Services
Configuration File
Execution Modes
Containers
Configuration Retrieval
RootContainer
PortalContainer
StandaloneContainer
Service instantiation
Miscellaneous
Startable interface
Inversion of Control
More Containers
Single Implementation Services
Configuration properties
Configuration Logging
Further Reading
Service Configuration in Detail
Objectives
Requirements
Sample Service
Java Class
First configuration file
Init Parameters
Service Access
Parameters
Value-Param
Properties-Param
Object-Param
Collection
External Plugin
Import
System properties
Container Configuration
Intro
Kernel configuration namespace
Understanding how configuration files are loaded
Configuration Retrieval
Configuration retrieval order for the PortalContainer
Configuration retrieval for a StandaloneContainer
General notes about the configuration retrieval
Configuration retrieval log
Getting the effective configuration at Runtime
Advanced concepts for the PortalContainers
Add new configuration files from a WAR file
Creating your PortalContainers from a WAR file
Defining a PortalContainer with its dependencies and its settings
PortalContainer settings
Adding dynamically settings and/or dependencies to a PortalContainer
The existing implementations of PortalContainerDefinitionChange
AddDependencies
AddDependenciesBefore
AddDependenciesAfter
AddSettings
Disable dynamically a portal container
System property configuration
Properties init param
Properties URL init param
System Property configuration of the properties URL
Variable Syntaxes
Runtime configuration profiles
Profiles activation
Profiles configuration
Profiles definition
Profiles capable configuration elements
Component element
Component plugin element
Import element
Init param element
Value collection element
Field configuration element
Component request life cycle
Component request life cycle contract
Request life cycle
Scheduling a component request life cycle
Scheduling a container request life cycle
When request life cycle is triggered
Portal request life cycle
JMX request Life Cycle
Inversion Of Control
Overview
How
Injection
Side effects
Services Wiring
Overview
Portal Instance
Introduction to the XML schema of the configuration.xml file
Configuration retrieval and log of this retrieval
Component Plugin Priority
Understanding the ListenerService
Objectives
What is the ListenerService ?
How does it work?
Registering a listener
Triggering an event
How to configure a listener?
Concrete Example
Initial Context Binder
API
Job Scheduler Service
What is Job Scheduler?
Where is Job Scheduler Service used in eXo Products?
How does Job Scheduler work?
How can Job Scheduler Service be used in Kernel?
Samples
Define a job
Job configuration
Run the project
Reference
eXo Cache
Basic concepts
Advanced concepts
Invalidation
FutureExoCache
eXo Cache extension
eXo Cache based on JBoss Cache
Configuring the ExoCacheFactory
Adding specific configuration for a cache
Adding a cache creator
Understanding a cache creator
Registering a cache creator
The cache creators available
LRU Cache Creator - Least Recently Used
FIFO Cache Creator - First In, First Out
MRU Cache Creator - Most Recently Used
LFU Cache Creator - Least Frequently Used
EA Cache Creator - Expiration Algorithm
Defining a cache
How to define a cache?
At CacheService initialization
With an "external plugin"
How to define a distributed or a local cache?
How to share a JBoss Cache instance between multiple eXo Cache instances
LRU Cache - Least Recently Used
FIFO Cache - First In, First Out
MRU Cache - Most Recently Used
LFU Cache - Least Frequently Used
EA Cache - Expiration Algorithm
eXo Cache based on Infinispan
Configure the ExoCacheFactory
Add specific configuration for a cache
Add a cache creator
Understanding a cache creator
Register a cache creator
The cache creators available
Generic Cache Creator
Define an infinispan cache instance
How to define a distributed or a local cache?
How to define an infinispan cache instance
TransactionService
Base information
Existing TransactionService implementations
JOTM in standalone mode
Generic TransactionService based on the TransactionManagerLookup of JBoss Cache
Specific GenericTransactionService for JBoss Cache and Arjuna
Generic TransactionService based on the TransactionManagerLookup of Infinispan
Specific GenericTransactionService for Infinispan and Arjuna
A very specific TransactionService for JBoss AS
TransactionsEssentials in standalone mode
The data source provider
Description
Configuration
JNDI naming
Prerequisites
How it works
JNDI System property initialization
JNDI reference binding
Configuration examples
Recommendations for Application Developers
InitialContextInitializer API
Logs configuration
Introdution
Logs configuration initializer
Configuration examples
Log4J
Assigning logger level for classes or components
JDK Logging
Commons Logging SimpleLogss
Tips and Troubleshooting
JBoss tips
Other tips
Manageability
Introduction
Managed framework API
Annotations
@org.exoplatform.management.annotations.Managed annotation
@org.exoplatform.management.annotations.ManagedDescription
@org.exoplatform.management.annotations.ManagedName
@org.exoplatform.management.annotations.ManagedBy
JMX Management View
JMX Annotations
@org.exoplatform.management.jmx.annotations.Property annotation
@org.exoplatform.management.jmx.annotations.NameTemplate annotation
@org.exoplatform.management.jmx.annotations.NamingContext annotation
Example
CacheService example
ListenerService
Asynchronous Event Broadcast
RPC Service
Description
Configuration
The SingleMethodCallCommand
eXoCore
eXo Core
eXo Core introduction
Database Creator
About
API
A configuration examples
An examples of a DDL script
Security Service
1 Overview
1 Framework
1.1 ConversationState and ConversationRegistry
1.1 Authenticator
Usage
JAAS login module
1.1 Predefinded JAAS login modules
1.1 J2EE container authentication
Spring Security Integration
Introduction
Installation
Configuration
JAAS disabling
Enabling spring security
security-context.xml
Login portlet example
Building the portlet
Setting up the login portal page
Customization of portal login and logout urls
A look at the login page
Integration strategies
Replication
Integration with eXo portal
Security context propagation to portlets
Portal side filter
Portlet side filter
Conclusion
Organization Service
Overview
Organizational Model
User
Group
Membership
Related articles and how-tos
Organization Service Initializer
Organization Listener
Overview
Writing your own listeners
UserEventListener
GroupEventListener
MembershipEventListener
Registering your listeners
Update ConversationState when user's Membership changed
DB Schema creator service (JDBC implementation)
Database Configuration for Hibernate
Generic configuration
Example DB configuration
Registering custom Hibernate XML files into the service
LDAP Configuration
Overview
Quickstart
Configuration
Connection Settings
Organization Service Configuration
Users
Main parameters
User mapping
Groups
Membership Types
Memberships
User Profiles
Advanced topics
Automatic directory population
Active Directory sample configuration
OpenLDAP dynlist overlays
Organization Service TCK tests configuration
Introduction
Maven pom.xml file configuration
Standalone container and Organization Service configuration
Tika Document Reader Service
Intro
Architecture
Configuration
Old-style DocumentReaders and Tika Parsers
How to make and register own DocumentReader
TikaDocumentReader features and notes
Digest Authentication
Overview
Server configuration
Tomcat Server configuration
Jetty server configuration
JBoss server configuration
OrganizationService implementation requirements
eXoWS
eXo Web Services
eXo Web Services introduction
Introduction to the Representational State Transfer (REST)
Introduction
OverwriteDefaultProviders
Motivation
Usage
Example
RestServicesList Service
Overview.
Usage
HTML format
JSON format
Groovy Scripts as REST Services
Overview
Loading script and save it in JCR
Instantiation
Deploying newly created Class as RESTful service
Script Lifecycle Management
Getting node UUID example
Groovy script restrictions
Framework for cross-domain AJAX
Motivation
Scheme (how it works)
A Working Sequence:
How to use it
Frequently Asked Question
JCR FAQ
Kernel
What is the best, standardized way to get the instance of a service ?
JCR
JCR core
Is it better to use Session.getNodeByUUID or Session.getItem?
Does it make sense to have all the node referencable to use getNodeByUUID all the time?
What should I use to check if an Item exists before getting the Value?
How to use Observation properly?
Is it better to use queries that to access the data by the JCR API?
What is default query ordering?
Is ordering by jcr:path or Item name supported?
How eXo JCR indexer uses content encoding?
Which database server is better for eXo JCR?
How to setup eXo JCR for mutilingial content on MySQL?
Does MySQL have limitation affecting on eXo JCR features?
Does use of Sybase database need special options in eXo JCR configuration?
How to open and close a session properly to avoid memory leaks?
Can I use Session after loging out?
How to configure jcr for cluster ?
How to use lucene spellchecker?
How can I affect to spellchecker results?
JCR extensions
How to restore repository to existing repository ?
How to restore workspace to existing worksapce?
Does JCR support hot backup?
WebDAV
I uploaded a file to WebDAV server using Mac OS Finder, but the file size is '0', what is wrong ?
Can I manage 'cache-control' value for different media-types from server configuration ?
How to perform WebDAV requests using curl ?
How eXo JCR WebDAV server treats content encoding?
eXo JCR with GateIn
How to extend my GateIn instance?
Introduction
Overview
Motivations
Prerequisites
Removing all the hard coded portal container name (i.e. "portal")
Removing all the hard coded rest context name (i.e. "rest")
Removing all the hard coded realm name (i.e. "exo-domain")
Making your Http Filters compatible
Making your HttpServlets compatible
Making your HttpSessionListeners compatible
Use init tasks if you need a PortalContainer to initialize an Http Filter or an HttpServlet
Making your LoginModules compatible
Avoiding static modifier on component dependency
Avoid component initialization based on component dependency in the constructor
FAQ
What has changed since the previous versions?
What is the main purpose of a portal extension?
What is the main purpose of the starter?
How a portal and a portal container are related?
How to define and register a PortalContainerDefinition?
How the platform interprets the dependency order defined into the PortalContainerDefinition?
How to change the ServletContext name, the realm name and/or the rest context name of my portal without using a PortalContainerDefinition?
On JBoss (tested on JBoss 5.1.0.GA)
On Tomcat (tested on Tomcat 6.0.20)
How to add new configuration file to a given portal from a war file?
How to create/define a portal extension?
How to deploy a portal extension?
How to create/define a new portal?
How to deploy a new portal?
How to import properly a configuration file using the prefix "war:"?
How to avoid duplicating configuration files just to rename a simple value?
How to add or change a Repository and/or a Workspace?
How to add new ResourceBundles to my portal?
How to overwrite existing ResourceBundles in my portal?
How to replace a groovy template of my portal?
How to add new Portal Configurations, Navigations, Pages or Portlet Preferences to my portal?
How to add new Http Filters to my portal without modifying the portal binary?
How to add new HttpSessionListeners and/or ServletContextListeners to my portal without modifying the portal binary?
How to add new HttpServlet to my portal without modifying the portal binary?
How to override or add a Context Parameter to my portal without modifying the portal binary?
Where can I found an example of how to extend my portal?
How to deploy the sample extension?
On JBoss (tested on JBoss 5.1.0.GA)
On Tomcat (tested on Tomcat 6.0.20)
Where can I find an example of how to create a new portal?
How to deploy the sample portal?
On JBoss (tested on JBoss 5.1.0.GA)
On Tomcat (tested on Tomcat 6.0.20)
I get "java.lang.IllegalStateException: No pre init tasks can be added to the portal container 'portal', because it has already been initialized." what can I do to fix it?
Recommendations
Don't ship your configuration files with your jar files?
Using a dedicated workspace/repository for your extension?
How to use AS Managed DataSource under JBoss AS
Configurations Steps
Declaring the datasources in the AS
Do not let eXo bind datasources explicitly
Reference Guide / GateIn
Introduction
Related Links
Configuration
Database Configuration
Overview
Configure the database for JCR
Configure the database for the default identity store
Email Service Configuration
Overview
Configure the outgoing e-mail account
Portal Development
Skin the portal
Overview
Skin Components
Skin Selection
Skin Selection Through the User Interface
Setting the Default Skin within the Configuration Files
Skins in Page Markups
The Skin Service
Skin configuration
Resource Request Filter
The Default Skin
Create New Skins
Creating a New Portal Skin
Portal Skin Configuration
Portal Skin Preview Icon
Creating a New Window Style
Window Style Configuration
Window Style CSS
How to Set the Default Window Style
How to Create New Portlet skins
Change portlet icons
How to create a new Portlet Specification CSS Classes
Tips and Tricks
Easier CSS debugging
Some CSS techniques
Decorator pattern
Left margin left pattern
Portal Lifecycle
Overview
Application Server start and stop
The Command Servlet
Default Portal Configuration
Overview
Configuration
Tips
Delete Portals Definition by Configuration
Set the info bar shown by default for portlet
Portal Default Permission Configuration
Overview
Overwrite Portal Default Permissions
Portal Navigation Configuration
Overview
Portal Navigation
Group Navigation
User Navigation
Data Import Strategy
Introduction
Import Mode
Data Import Strategy
Navigation Data
Portal Config
Page Data
Internationalization Configuration
Overview
Locales configuration
ResourceBundleService
Navigation Resource Bundles
Portlets
Standard portlet resource keys
Debugging resource bundle usage
Translate the language selection form
RTL (Right To Left) Framework
Groovy templates
Stylesheet
Images
Client side JavaScript
XML Resources Bundles
Motivation
XML format
Portal support
JavaScript Inter Application Communication
Overview
Library
Syntax
Example of Javascript events usage
Upload Component
Upload Service
Deactivation of the Ajax Loading Mask Layer
Purpose
Synchronous issue
JavaScript Configuration
Navigation Controller
Description
Controller in Action
Controller
Building controller
Controller Configuration (controller.xml)
Route parameters
Path parameters - Regular expression support
Request parameters
Route precedence
Route nesting
Integrate to GateIn WebUI framework
Routing
Rendering
PortalURL
NodeURL
ComponentURL
Portlet URLs
Webui URLBuilder
Groovy Templates
Changes and migration from GateIn 3.1.x
Migration of navigation node URL
Security changes
Default handler
Legacy handler
Static resource handler
portal.war's web.xml changes
Dashboard changes
Remove unused files
Portlet development
Portlet Primer
JSR-168 and JSR-286 overview
Portal Pages
Rendering Modes
Window States
Tutorials
Deploying your first Portlet
Compiling
Package Structure
Portlet Class
Application Descriptors
JavaServer Pages Portlet Example
Package Structure
Portlet Class
JSP files and the Portlet Tag Library
JSF example using the JBoss Portlet Bridge
Global porlet.xml file
Global portlet.xml usecase
Global metadata
Location
Global metadata elements
Portlet filter
Portlet Mode and Window State
Gadget development
Gadgets
Existing Gadgets
Create a new Gadget
Remote Gadget
Gadget Importing
Gadget Web Editing
Gadget IDE Editing
Dashboard Viewing
Set up a Gadget Server
Virtual servers for gadget rendering
Configuration
Security key
Gadget proxy and concat configuration
Proxy
Authentication and Identity
Predefined User Configuration
Overview
Plugin for adding users, groups and membership types
Membership types
Groups
Users
Plugin for monitoring user creation
Authentication Token Configuration
What is Token Service?
Implement the Token Service API
Configure token services
PicketLink IDM integration
Configuration files
Organization API
Access User Profile
Single-Sign-On (SSO)
Overview
Prerequisites
Central Authentication Service (CAS)
CAS server
Obtaining CAS
Modifying the CAS server
Set up the CAS client
Redirect to CAS
JOSSO
JOSSO server
Obtaining JOSSO
Modifying the JOSSO server
Set up the JOSSO client
Set up the portal to redirect to JOSSO
OpenSSO - The Open Web SSO project
OpenSSO server
Obtaining OpenSSO
Modifying the OpenSSO server
Set up the OpenSSO client.
Set up the portal to redirect to OpenSSO
SPNEGO
SPNEGO Server Configuration
Clients
GateIn 3.2 Configuration
Web Services for Remote Portlets (WSRP)
Introduction
Level of support in GateIn 3.2
Deploy GateIn's WSRP services
WSRP use when running GateIn on a non-default port or hostname
Considerations to use WSRP with SSL
Make a portlet remotable
Consume GateIn's WSRP portlets from a remote Consumer
Consume remote WSRP portlets in GateIn
Overview
Configure a remote producer walk-through
Using the configuration portlet
Using XML
Adding remote portlets to categories
Configure access to remote producers via XML
Required configuration information
Optional configuration
Examples
Consumers maintenance
Modify a currently held registration
Registration modification for service upgrade
Registration modification on producer error
Consumer operations
Import and export portlets
Erase local registration data
Configure GateIn's WSRP Producer
Overview
Default configuration
Registration configuration
Customization of Registration handling behavior
WSRP validation mode
Advanced Development
Foundations
GateIn Kernel
Configure services
Configuration syntax
Components
External Plugins
Includes, and special URLs
Special variables
InitParams configuration object
Configure a portal container
GateIn Extension Mechanism and Portal Extensions
Run Multiple Portals
Reference Guide / Content Functions
Preface
Get Started with eXo Content
Package
Applications
Portlets
Content Detail
Content List
Search
Content Explorer
Administration
Fast Content Creator
Form Builder
Authoring
Newsletter
SEO portlet
Configuration
Components
ActionServiceContainer
ApplicationTemplateManagerService
FragmentCacheService
JodConverterService
LiveLinkManagerService
LockService
NewsletterInitializationService
NewsletterManagerService
SiteSearchService
SEOService
QueryService
TaxonomyService
ThumbnailService
TimelineService
WatchDocumentService
WCMService
External Component Plugins
AuthoringPublicationPlugin
BaseActionPlugin
BPActionPlugin
ContentTypeFilterPlugin
ContextPlugin
CreatePortalPlugin
ExcludeIncludeDataTypePlugin
FriendlyPlugin
ImageThumbnailPlugin
InitialWebcontentPlugin
LinkDeploymentPlugin
LockGroupsOrUsersPlugin
ManageDrivePlugin
ManageViewPlugin
PDFThumbnailPlugin
PorletTemplatePlugin
PredefinedProcessesPlugin
PublicationPlugin
QueryPlugin
RemovePortalPlugin
RemoveTaxonomyPlugin
ScriptActionPlugin
ScriptPlugin
StageAndVersionPublicationPlugin
StatesLifecyclePlugin
TagPermissionPlugin
TagStylePlugin
TaxonomyPlugin
TemplatePlugin
XMLdeploymentPlugin
Developer references
WCM Templates
Content types
Dialog
Common parameters
Text Field
Hidden Field
Text Area Field
Rich Text Field
Calendar Field
Upload Field
Radio Field
Select box Field
Checkbox Field
Mixin Field
Action Field
Interceptors
How to add a new ECM template with tabs
How to prevent XSS attacks
View
List of Contents
Content List Template
Category Navigation Template
WCM Explorer
CSS
CKEditor
Extensions
REST Services
Overview
Restful Web Service
HTTP Methods
Formats
Data Format
REST configuration
Create a REST service
UI Extensions
Overview
How to add your own tab in ECM Administration
Add your own UIAction
Add your own ActionListener
Register your UI Action
Run your own UI extension sample
Authoring Extension
Extended Publication Plugin
States
Start/End publication dates
New Publication Mixin
Publication Manager
Lifecycle
Listen to a lifecycle
Context
New Authoring Mixin
Public REST APIs
ThumbnailRESTService
RssConnector
FCKCoreRESTConnector
ResourceBundleConnector
VoteConnector
DriverConnector
GadgetConnector
PortalLinkConnector
GetEditedDocumentRESTService
PublicationGetDocumentRESTService
FavoriteRESTService
RESTImagesRendererService
LifecycleConnector
CopyContentFile
PDFViewerRESTService
Public Java APIs
TaxonomyService
LinkManager
PublicationManager
WCMComposer
NewFolksonomy
ApplicationTemplateManager
NodeFinder
JodConverter
SiteSearchService
SEOService
Deprecated portlets
FAQ
How to deploy a workflow?
Deploy a workflow inside a .war file
Deploy a workflow inside a .jar file
Reference Guide / CMIS Developer
Introduction
About CMIS
About xCMIS
About eXo CMIS
CMIS specification
xCMIS project
CMIS features
CMIS Domain Model
CMIS Services
Integration with eXo WCM
JCR namespaces and nodetypes
WCM drives as CMIS Repositories
Use Case: Browse Drives via getRepository
WCM Symlinks
Use Case: Follow Symlinks
Modify WCM via CMIS
CMIS search
Query examples
Simple query
Find document by several constraints
Full-text search
Extended full-text search
Date property comparison
Boolean property comparison
IN Constraint
Select all documents where longprop property NOT IN set
Select all documents where longprop property NOT NOT IN set
IN_FOLDER constarint
Select all documents that are in specified folder
Select all documents where query supertype is cmis:article
IN_TREE constraint
LIKE Comparison
Test LIKE constraint with escape symbols
NOT constraint
Property existence
ORDER BY
ORDER BY ASC
ORDER BY DESC
ORDER BY SCORE (as columns)
Not equal comparison (decimal)
Not equal comparison (string)
More than comparison (>)
CMIS Usage code examples
References
Reference Guide / CMIS Administrator
Introduction
CMIS Specification
xCMIS project
eXo CMIS
Configuration
CMIS Configuration
Required nodetypes and namespaces in JCR
Authenticator and organization service configuration
CMIS search and index
CMIS Relational View
Query Capabilities
Configuration
Index atomicity and durability
Service JARs
Miscellaneous and Tips
Links
Reference Guide / Collaboration Functions
Prerequisites
Applications
Portlets
Calendar portlet
Description
Portlet.xml
Chatbar portlet
Description
Portlet preferences
Portlet.xml
Chat Portlet
Description
Portlet.xml
Contact Portlet
Description
Portlet.xml
Mail Portlet
Description
Portlet.xml
RSSreader Portlet
Description
Portlet.xml
Gadgets
Eventslist
Description
Links to used REST services
Taskslist
Description
Links to used REST services
Messageslist
Description
Links to used REST services
Configurations
Components in eXo Collaboration Configuration
CalendarService
HistoryImpl
XMPPMessenger
DefaultPresenceStatus
ContactService
External Component Plugins
Calendar Configuration
NewUserListener
NewGroupListener
NewMembershipListener
ReminderPeriodJob
PopupReminderPeriodJob
AddActionsPlugin
Chat Configuration
HistoryPeriodJob
RequestFilterComponentPlugin
AuthenticationLoginListener and AuthenticationLogoutListener
AuthenticationLoginListener
AuthenticationLogoutListener
Contact Configuration
NewUserListener
NewMembershipListener
UpdateUserProfileListener
Content Configuration
RSSContentPluginDescriptionPlugin
DescriptionPlugin
Mail Configuration
AuthenticationLogoutListener
MailSettingConfigPlugin
Social Integration Configuration
CalendarDataInitialize
ContactDataInitialize
ContactSpaceActivityPublisher
CalendarSpaceActivityPublisher
PortletPreferenceRequiredPlugin
Data Injectors
ContactDataInjector
CalendarDataInjector
MailDataInjector
Usage of MailDataInjector
eXo Chatserver Configuration
Openfire Configuration
Configuration in Openfire.xml
eXo specific configuration
System Configuration
AS configuration
JCR Structure
Calendar JCR Structure
calendars
eventCategories
categories
eXoCalendarFeed
Y%yyyy%
calendarSetting
Chat JCR Structure
Address Book JCR Structure
Contacts
ContactGroup
tags
Shared
Mail JCR Structure
RSS JCR Structure
Developer reference
Extension points
ContentDAO
ContactLifeCycle
Transport
EventLifeCycle
Public REST APIs
Calendar application
Mail application
Chat application
RESTXMPPService
FileExchangeService
Reference Guide / Knowledge Functions
Prerequisites
Applications
Portlets
Forum Portlet
Overview
Portlet.xml
Preferences
Events
ForumLinkEvent
ReLoadPortletEvent
OpenLink
ForumPollEvent
ForumModerateEvent
ForumRuleEvent
QuickReplyEvent
Answers Portlet
Overview
Portlet.xml
Portlet Preferences
FAQ Portlet
Overview
Portlet.xml
Portlet Preferences
Polls Portlet
Overview
Portlet.xml
Portlet Preferences
Gadgets
Overview
Preferences
Links to used REST services
Configuration
Components
Components of eXo Knowledge
Components of Forum
Components of Answers
Components of Polls
External-component-plugin
Init data configuration
Init data
Configuration
Initialize the conf-part for loading repository-configuration.xml
Initialize workspace name and repository name in storage-configuration.xml
Initialize data
Roles Configuration
Overview
Configuration
ProfileProvider Configuration
Overview
Configuration
Use ContactProvider
By DefaultContactProvider
By SocialContactProvider
Forum Configuration
BBCode Configuration
Overview
Configuration
Default BBCode data
Forums Initializer
Overview
Configuration
Default forum data
Forum array
Forum topics
Initial Data Plugin
Auto-prune
Overview
Configuration
User Statistics
Overview
Configuration
Update Statistic Data
Overview
Configuration
Default User Profile
Overview
Configuration
Answer Configuration
Answers Initializer
Overview
Configuration
Answers Email Templates Configuration
Overview
Configuration
Poll Configuration
Overview
Configuration
Default Poll data
Data Injector Servive
Technical details
Configuration
ForumDataInjector
Wiki Data injector
AnswerDataInjector
How to use?
JCR structure
Overview
Forum JCR structure
Forum System
User Profile and User Profile Home
Statistic and Statistic Home
Ban IP and Ban IP Home
Administration and Administration Home
Forum Data
Category and Category home
Forum
Topic
Post
Tag and Tag home
BBCode and BBCode home
Topic type and Topic type home
FAQ JCR structure
Category
Sub-category
RSS
Question and Question Home
Multilanguages
Answer, Comment and Attachment
FAQ setting
Template for FAQ
Poll JCR structure
Wiki JCR structure
Wiki data
WikiHome
Preferences
LinkRegistry
Trash
Template Container
Wiki metadata
Developer reference
Extension points
ForumEventLifeCycle
Overview
Configuration plug-in
Tutorial
AnswerEventLifeCycle
Overview
Configuration plug-in
Tutorial
BBCodeRenderer
Internal API
Forum application
Answers application
Polls application
FAQ Template Configuration
Configuration plug-in
How to change look and feel
Plug-in
Edit Mode
API provided by the UIComponent (UIViewer.java)
Reference Guide / Social Functions
Applications
List of Portlets in Social
List of Gadgets in Social
Activity Stream
Social RSS Reader
My Connections
My Spaces
Configuration
Components
ActivityManager
SpaceService
IdentityManager
ProfileConfig
ServiceProviderStore
External component plugins
MentionsProcessor
PortletPreferenceRequiredPlugin
SpaceApplicationConfigPlugin
AddNodeTypePlugin
RelationshipManager
SpaceIdentityProvider
SpaceApplicationHandler
ExoPeopleService
Space Service
Description
Components configuration
External plug-in configuration
PortletPreferenceRequiredPlugin
SpaceApplicationConfigPlugin
Activity Manager
Description
Component plug-in configuration
External plug-in configuration
Identity Manager
Description
Component plug-in configuration
OpenSocial Rest Context Configuration
Description
Component plug-in configuration
Spaces Template configuration
Configure the oauth 2 legged scenario
Generate the certificates
Configure the property file
Developers References
UI Extensions
About Activity Plugin
How to create activity plugin
Create a custom UI component for displaying the activity based on its type
What is ActivityBuilder?
Create a composer extension for composing activity on the UI composer and display it on the activity stream
Overridable Components
Public Java APIs
ActivityManager
IdentityManager
RelationshipManager
SpaceService
Java APIs sample code/ tutorial
Activity Stream
Publish an activity
Publish an activity for a user
Publish an activity for a space
Configure an activity processor
Publish an RSS feed with feedmash
Sample Code
OpenSocial
Gadget
Supported APIs
REST/RPC API
Configure the security
Publish an activity into a space
Tutorial
People
Identity
IdentityProvider
IdentityManager
ProfileListener
Connections
Users connection
RelationshipListener
Spaces
Spaces Management
Space's applications management
Add an application to a space
Remove an application from a space
Space's members management
Listener to a space lifecycle
Space widget tutorial
Basic version
Advanced version
Configure
How to extend the activities rendering
Objective
Requirements
Why would you need to do this?
Write an ActivityProcessor
Configure the processor
XMLProcessor component
Objectives
XMLProccessor Component
Built-in XMLProcessor Plugins
Public REST APIs
Activities REST service
Apps REST service
Identity REST service
Linkshare REST service
People Rest Service
Spaces REST service
Widget Rest Service
Location
Rest Service APIs (v1-alpha1)
Activity Resources
activity
POST activity.format
GET activity/:activityId.format
DELETE activity/:activityId.format
POST activity/destroy/:activityId.format
activity/:activityId/comments
GET activity/activity:id/comments.format
activity/:activityId/comment
POST activity/:activityId/comment.format
DELETE activity/:activityId/comment/:commentId.format
POST activity/:activityId/comment/destroy/:commentId.format
activity/:activityId/like
POST activity/:activityId/like.format
DELETE activity/:activityId/like.format
POST activity/:activityId/like/destroy.format
Activity Stream Resources
activity_stream/:identityId/user
GET activity_stream/:identityId/user/default.format
GET activity_stream/:identityId/user/newer/:activityBaseId.format
GET activity_stream/:identityId/user/older/:activityBaseId.format
activity_stream/:identityId/feed
GET activity_stream/:identityId/feed/default.format
GET activity_stream/:identityId/feed/newer/:activityBaseId.format
GET activity_stream/:identityId/feed/older/:activityBaseId.format
activity_stream/:identityId/connections
GET activity_stream/:identityId/connections/default.format
GET activity_stream/:identityId/connections/newer/:activityBaseId.format
GET activity_stream/:identityId/connections/older/:activityBaseId.format
activity_stream/:identityId/spaces
GET activity_stream/:identityId/spaces/default.format
GET activity_stream/:identityId/spaces/newer/:activityBaseId.format
GET activity_stream/:identityId/spaces/older/:activityBaseId.format
Identity Resources
identity
GET identity/:identityId.format
Notes
GET: {rest_context_name}/{portal_container_name}/social/identity/:username/id/show.json
Version Resources
version/latest
GET version/latest.format
version/supported
GET version/supported.format
Public Javascript APIs
Social JCR Structure
Overview
soc:providers
soc:<providername>
soc:spaces