eXo Platform 3.5 Documentation
Overview
About eXo Platform
Browser compatibility
User Guide
Introduction
Get Started
Glossary
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
Add a user
Manage users
Manage groups
Manage memberships
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 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 content
Publish content
Show drives
Show/Hide content structure
Tag documents
Upload files into folders
View metadata
View node types
View permissions
View properties
View relations
Vote for a document
Watch/Unwatch 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
Advanced Configuration
Manage queries
Manage Scripts
Create an action type
Manage locks
Manage content
Contribute content
Edit mode
InContext Editing
Add content
Edit content
Manage content
Preferences
Inline Editing
CKEditor
Publication process
Manage content list viewer by query
Content inside categories
Create content inside a category
Manage content in Sites Explorer
Create new web content
Edit web content
Delete web content
Publish web content
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
Use WebDAV in eXo Platform
Add new content to a specific site
Delete web content
Manage content with Fast Content Creator
Configure Fast Content Creator
Create new content
View content
Create content templates with Form Builder
Manage CLV templates in Sites Explorer
Create a CLV template
Edit a CLV template
Delete a CLV template
Manage Category Navigation
Manage SEO
Search content in a site
How to search for content?
Edit the Search portlet
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 My 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
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 an 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
WebDAV support in Wiki
Access your workspace using WebDAV
Edit a page using WebDAV
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
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 your 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 your 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 as 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
Validate/Decline request
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/Ignore invitations
Manage connections
Search for contacts
View profiles of other contacts
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
Create rich activities with allowed HTML tags
Administrator Guide
Introduction
Installation and Startup
System requirements
Install the Tomcat bundle
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
Email-notification configuration for watching a document
WebDAV cache control
Chat server
XMPPMessenger
Chat server configuration
Ports
Office server
Log-in
JCR
Cache configuration
Portal Cache Configuration
Social Cache Configuration
ECMS Cache Configuration
Users configuration
Super-user configuration
Default users list definition of eXo Platform
Grant users access to toolbar
Gadget configuration
Default OAuth key configuration
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
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
Knowledge management view
Forum
Job
Plugin
RoleRulesPlugin
BBCodePlugin
ForumInitialDataPlugin
InitialDataPlugin
Storage
Collaboration management view
Security
Change the JAAS realm
Tomcat
Common changes
configuration.properties
portal.war
rest.war
Gadget proxy configuration
How does it work
HTTPS configuration
Backup
Pre-backup
Back up eXo Platform
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 portals
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
Migration
What needs to be migrated?
Migrate with transparent configuration
Upgrade plugins details
List of eXo Platform 3.5 Upgrade plugins
Mandatory plugins
Optional plugins
Upgrade ECMS templates migration tools
Organization Integration
Terminology
Sync Platform with an existing Directory
Sync at startup
Sync at login time
Sync on demand
Scheduled/Periodic sync
Use REST
Use JMX
Use Legacy Organization Models
Developer Guide
Introduction
Get Started
Glossary
Set up Maven settings
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
Define a default portal
Structure of portal, pages and menus
Portal navigation
Visibility of pages
Page access permission
Enable/Disable a drive creation during the portal creation
Add/Remove a language
Add a new language
Remove a language
Create a custom look and feel
Platform skin elements
Overview
SkinService
ResourceRequestFilter
The default skin
Override skins with extension
Create new skins
Create a new skin web archive
Create the skin preview icon
Skin the window style
Configure the right-to-left skin
Skin the portlet
Configure Platform skin
Select skins within the configuration files
Skins in the page markup
Customize portal's layout
Customize page's layouts
Customize the Admin bar
sharedlayout.xml
Remove a content from the Admin bar
Add a content to the Admin bar
Change the color scheme
Configure skin in WCM
Customize CLV portlet's template
Customize CLV template's style
Customize Document's skin
Best practices to customize a skin
Add JavaScript to your portal
Create custom templates for pages
Work With Content
Node type
WCM template
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
Create a custom RichText editor fields
Simple select box widget
Advanced dynamic select box
Widget with selector
Multi-valued widget
Taxonomy
Manage Template service
Manage Navigation By Content
Actual content navigation
Add content to the navigation
Actions on Navigation By Content
Examples of creating data for Navigation By Content
Create a Product page
Develop your own Product content
Work With Applications
Integrate an application
Develop your own application
Gadget vs Portlet
Develop a gadget for eXo Platform
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
Upgrade eXo Platform
Prerequisites
Prepare your extension project
What needs to be adapted in eXo Platform extension
Update project Maven dependencies
Update configurations
Update components
Update extension
Update Kernel XML Schema
Update portal
Portal data import
Authentication
Update APIs
IDE User Guide
Introduction
Basic Operations
Select a workspace
Open a folder
Open a file
Refresh a selected folder
View and Copy a file's URL
Copy/Cut/Paste files and folders
Operations With Folder
Create a folder
Delete a folder
Rename a folder
Download a zipped folder
Operations With File
Create a file
Save/Save As... a file
Save all files
Delete a file
Rename a file
Change the MIME type of a file
Lock a file
Open a file with the non-default editor
Go to a folder
Download a file from Server
Open a local file
Upload a file
Upload a zipped folder
Open a file by path
Use a file template
Save a file as template
Create a file from a template
Remove a non-default file template
Use a project template
Create a project template
Modify the project template structure
Create new project from template
Remove a project template
Open/Select/Close/Browse tabs
Undo/Redo editing
Undo
Redo
Edit files in the Code Editor
Format a file
Show/Hide Line Numbers
Go to a line
Watch the cursor position in the Status bar
Delete a line
Find/Replace
Code auto-complete
JavaScript Specific auto-complete list
CSS specific auto-complete list
HTML specific auto-complete list
XML specific auto-complete list
ECM template auto-complete list
Netvibes widget auto-complete list
Groovy code specific auto-complete list
Class name
Object's fields and methods auto-completion
Static fields and methods auto-completion
Annotations auto-completion
Local variables and parameters auto-completion
Validate Java types and fix import statements
Code outline
Code outline for Groovy Code
Edit a file in the WYSIWYG Editor
Preview file properties
Preview HTML Files
Search Files
REST Service Operations
Validate a REST Service
Deploy/Undeploy a REST Service
Use Autoload property
Launch a REST Service with set parameters and Preview Server Console Messages in the Output Tab
Get URL of a REST Service
Review the response headers from REST Service
Deploy to Sandbox, Undeploy from Sandbox, Run in Sandbox
REST Service Discovery
Configure classpath
Add sources to classpath
Remove sources from classpath
Sample REST Service with complex media types output preview
Operations With POGO File
Operations With Google Gadget
Create a Google Gadget
Preview a Google Gadget
Operations With Templates
Create and Edit a template
View template's properties
Preview a 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 a Data Object
Preview a Node Type
Create a Node Type
Versioning
View version history
Version navigation
Restore a file to the older version
Miscellaneous and Tips
View information about eXo IDE
Customize the toolbar
Customize hotkeys
Related References
Reference Guide / eXo JCR
eXoJCR
Introduction in eXoJCR
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
Level 1
Level 2
Optional features
Using JCR
Obtaining a Repository object
JCR Session common considerations
JCR Application practices
Simplifying the management of a multi-workspace application
Reusing SessionProvider
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
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
Getting the effective configuration at Runtime of all the repositories
Multi-language support in eXo JCR RDB backend
Oracle
DB2
MySQL
PostgreSQL
How to host several JCR instances on the same database instance?
LockManager configuration
HibernateService configuration
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
General recommendations for database configuration
DB2 configuration
MySQL configuration
PostgreSQL configuration
MS SQL configuration
Sybase configuration
Oracle configuration
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
Tree File Value Storage
Simple File Value Storage
Content Addressable Value storage (CAS) support
Disabling value storage
Workspace Data Container
REST Services on Groovy
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
How to stop the node properly
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
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
Configuration
TransactionManagerLookup
Infinispan integration
Components configuration requirements
Workspaces configuration requirements
Shipped Infinispan Cache configuration templates
Data container template
Lock manager template
Query handler (indexer) template
RepositoryCreationService
Dependencies
How it works
Configuration
RepositoryCreationService Interface
Conclusions and restrictions
JCR Query Usecases
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
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
API and usage
Configuration
Implementation notices
WebDAV
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
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
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'
eXo JCR statistics
Statistics on the Database Access Layer
Statistics on the JCR API accesses
Statistics Manager
Checking repository integrity and consistency
Recommendations on how to fix corrupted JCR
JTA
The JCA Resource Adapter
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
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)
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
Notes on Value storage usage:
DBCleanService
Methods of DBCleanerService
Need to clean only single workspace
Need to clean the whole repository
JCR Performance Tuning Guide
JCR Performance and Scalability
Cluster configuration
JCR Clustered Performance
Performance Tuning Guide
JBoss AS Tuning
JCR Cache Tuning
Clustering
JVM parameters
eXoKernel
ExoContainer info
Container hierarchy
Service Configuration for Beginners
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
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
Understanding the prefixes supported by the configuration manager
Container Configuration
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
How
Injection
Side effects
Services Wiring
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
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
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 replicated, a distributed or a local cache?
How to define an infinispan cache instance
Using Infinispan in distributed mode
Configuration of the DistributedCacheManager
Launch a CacheServer
Configure the cache of your workspace
TransactionService
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
Configuration
JNDI naming
Prerequisites
How it works
JNDI System property initialization
JNDI reference binding
Configuration examples
Recommendations for Application Developers
InitialContextInitializer API
Logs configuration
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
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
RPC Service
Configuration
The SingleMethodCallCommand
eXoCore
Database Creator
API
A configuration examples
An examples of a DDL script
Security Service
Framework
ConversationState and ConversationRegistry
Authenticator
Usage
JAAS login module
Predefinded JAAS login modules
J2EE container authentication
Spring Security Integration
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
Direct integration
Replication
Integration with eXo portal
Security context propagation to portlets
Portal side filter
Portlet side filter
Conclusion
Organization Service
Organizational Model
User
Group
Membership
Custom Organization Service implementation instructions
Basic entities implementation
Unit handlers implementation
Extending BaseOrganizationService class
Verification of compliance
Related articles and how-tos
Organization Service Initializer
Organization Listener
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
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
Maven pom.xml file configuration
Standalone container and Organization Service configuration
Tika Document Reader Service
Architecture
Configuration
Old-style DocumentReaders and Tika Parsers
How to make and register own DocumentReader
TikaDocumentReader features and notes
Digest Authentication
Server configuration
Tomcat Server configuration
Jetty server configuration
JBoss server configuration
OrganizationService implementation requirements
eXoWS
Introduction to the Representational State Transfer (REST)
Overwrite default providers
Motivation
Usage
Example
RestServicesList Service
Usage
HTML format
JSON format
Groovy Scripts as REST Services
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?
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
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)
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
WSRP integration configuration
Extended Navigation
WSRP integration
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
Sites 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
IgnorePortalPlugin
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
Perform tasks when a content's state is updated
Context
New Authoring Mixin
Public REST APIs
ThumbnailRESTService
RssConnector
FCKCoreRESTConnector
ResourceBundleConnector
VoteConnector
DriverConnector
GadgetConnector
PortalLinkConnector
GetEditedDocumentRESTService
PublicationGetDocumentRESTService
FavoriteRESTService
RESTImagesRendererService
LifecycleConnector
CopyContentFile
PDFViewerRESTService
ManageDocumentService
DownloadConnector
Public Java APIs
TaxonomyService
LinkManager
PublicationManager
WCMComposer
NewFolksonomy
ApplicationTemplateManager
NodeFinder
JodConverter
TimelineService
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
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 is not in set
Select all documents where longprop property is not in set
IN_FOLDER constraint
Select all documents that are in a 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 Domain Model
CMIS Services
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
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
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)
Extend actions over a wiki page from external jars
Overview
How to add action extension to the Wiki toolbar
Create a new project for action extension
Create new actions and their corresponding listeners
Register new actions with UIExtensionManager
Deploy new action extension
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
Component
SpaceService
LifeCycleCompletionService
IdentityManager
ServiceProviderStore
RelationshipManager
SpaceIdentityProvider
SpaceApplicationHandler
ExoPeopleService
RestPortalContainerNameConfig
LinkProvider
External Component Plugin
ActivityResourceBundlePlugin
IdentityProviderPlugin
MentionsProcessor
OSHtmlSanitizerProcessor
PortletPreferenceRequiredPlugin
SpaceApplicationConfigPlugin
SocialChromatticLifeCycle
TemplateParamsProcessor
URLConverterFilterPlugin
RestPortalContainerNameConfig
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
How to create internationalized activities
Objective
Internationalize an activity
Get an internationalized message
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
Activity Resources
Activity Stream Resources
Identity Resources
Version Resources
Public Javascript APIs
Social JCR Structure
Overview
soc:providers
soc:<providername>
Identity
Relationship
Profile
Profile experience
Activity list
Activity year
Activity month
Activity day
Activity
Activity parameters
Space list
Space
Spaces Template configuration
Configure the oauth 2 legged scenario
Generate the certificates
Configure the property file
Overview
About eXo Platform
Browser compatibility
User Guide
Introduction
Get Started
Glossary
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
Add a user
Manage users
Manage groups
Manage memberships
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 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 content
Publish content
Show drives
Show/Hide content structure
Tag documents
Upload files into folders
View metadata
View node types
View permissions
View properties
View relations
Vote for a document
Watch/Unwatch 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
Advanced Configuration
Manage queries
Manage Scripts
Create an action type
Manage locks
Manage content
Contribute content
Edit mode
InContext Editing
Add content
Edit content
Manage content
Preferences
Inline Editing
CKEditor
Publication process
Manage content list viewer by query
Content inside categories
Create content inside a category
Manage content in Sites Explorer
Create new web content
Edit web content
Delete web content
Publish web content
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
Use WebDAV in eXo Platform
Add new content to a specific site
Delete web content
Manage content with Fast Content Creator
Configure Fast Content Creator
Create new content
View content
Create content templates with Form Builder
Manage CLV templates in Sites Explorer
Create a CLV template
Edit a CLV template
Delete a CLV template
Manage Category Navigation
Manage SEO
Search content in a site
How to search for content?
Edit the Search portlet
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 My 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
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 an 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
WebDAV support in Wiki
Access your workspace using WebDAV
Edit a page using WebDAV
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
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 your 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 your 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 as 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
Validate/Decline request
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/Ignore invitations
Manage connections
Search for contacts
View profiles of other contacts
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
Create rich activities with allowed HTML tags
Administrator Guide
Introduction
Installation and Startup
System requirements
Install the Tomcat bundle
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
Email-notification configuration for watching a document
WebDAV cache control
Chat server
XMPPMessenger
Chat server configuration
Ports
Office server
Log-in
JCR
Cache configuration
Portal Cache Configuration
Social Cache Configuration
ECMS Cache Configuration
Users configuration
Super-user configuration
Default users list definition of eXo Platform
Grant users access to toolbar
Gadget configuration
Default OAuth key configuration
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
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
Knowledge management view
Forum
Job
Plugin
RoleRulesPlugin
BBCodePlugin
ForumInitialDataPlugin
InitialDataPlugin
Storage
Collaboration management view
Security
Change the JAAS realm
Tomcat
Common changes
configuration.properties
portal.war
rest.war
Gadget proxy configuration
How does it work
HTTPS configuration
Backup
Pre-backup
Back up eXo Platform
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 portals
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
Migration
What needs to be migrated?
Migrate with transparent configuration
Upgrade plugins details
List of eXo Platform 3.5 Upgrade plugins
Mandatory plugins
Optional plugins
Upgrade ECMS templates migration tools
Organization Integration
Terminology
Sync Platform with an existing Directory
Sync at startup
Sync at login time
Sync on demand
Scheduled/Periodic sync
Use REST
Use JMX
Use Legacy Organization Models
Developer Guide
Introduction
Get Started
Glossary
Set up Maven settings
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
Define a default portal
Structure of portal, pages and menus
Portal navigation
Visibility of pages
Page access permission
Enable/Disable a drive creation during the portal creation
Add/Remove a language
Add a new language
Remove a language
Create a custom look and feel
Platform skin elements
Overview
SkinService
ResourceRequestFilter
The default skin
Override skins with extension
Create new skins
Create a new skin web archive
Create the skin preview icon
Skin the window style
Configure the right-to-left skin
Skin the portlet
Configure Platform skin
Select skins within the configuration files
Skins in the page markup
Customize portal's layout
Customize page's layouts
Customize the Admin bar
sharedlayout.xml
Remove a content from the Admin bar
Add a content to the Admin bar
Change the color scheme
Configure skin in WCM
Customize CLV portlet's template
Customize CLV template's style
Customize Document's skin
Best practices to customize a skin
Add JavaScript to your portal
Create custom templates for pages
Work With Content
Node type
WCM template
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
Create a custom RichText editor fields
Simple select box widget
Advanced dynamic select box
Widget with selector
Multi-valued widget
Taxonomy
Manage Template service
Manage Navigation By Content
Actual content navigation
Add content to the navigation
Actions on Navigation By Content
Examples of creating data for Navigation By Content
Create a Product page
Develop your own Product content
Work With Applications
Integrate an application
Develop your own application
Gadget vs Portlet
Develop a gadget for eXo Platform
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
Upgrade eXo Platform
Prerequisites
Prepare your extension project
What needs to be adapted in eXo Platform extension
Update project Maven dependencies
Update configurations
Update components
Update extension
Update Kernel XML Schema
Update portal
Portal data import
Authentication
Update APIs
IDE User Guide
Introduction
Basic Operations
Select a workspace
Open a folder
Open a file
Refresh a selected folder
View and Copy a file's URL
Copy/Cut/Paste files and folders
Operations With Folder
Create a folder
Delete a folder
Rename a folder
Download a zipped folder
Operations With File
Create a file
Save/Save As... a file
Save all files
Delete a file
Rename a file
Change the MIME type of a file
Lock a file
Open a file with the non-default editor
Go to a folder
Download a file from Server
Open a local file
Upload a file
Upload a zipped folder
Open a file by path
Use a file template
Save a file as template
Create a file from a template
Remove a non-default file template
Use a project template
Create a project template
Modify the project template structure
Create new project from template
Remove a project template
Open/Select/Close/Browse tabs
Undo/Redo editing
Undo
Redo
Edit files in the Code Editor
Format a file
Show/Hide Line Numbers
Go to a line
Watch the cursor position in the Status bar
Delete a line
Find/Replace
Code auto-complete
JavaScript Specific auto-complete list
CSS specific auto-complete list
HTML specific auto-complete list
XML specific auto-complete list
ECM template auto-complete list
Netvibes widget auto-complete list
Groovy code specific auto-complete list
Class name
Object's fields and methods auto-completion
Static fields and methods auto-completion
Annotations auto-completion
Local variables and parameters auto-completion
Validate Java types and fix import statements
Code outline
Code outline for Groovy Code
Edit a file in the WYSIWYG Editor
Preview file properties
Preview HTML Files
Search Files
REST Service Operations
Validate a REST Service
Deploy/Undeploy a REST Service
Use Autoload property
Launch a REST Service with set parameters and Preview Server Console Messages in the Output Tab
Get URL of a REST Service
Review the response headers from REST Service
Deploy to Sandbox, Undeploy from Sandbox, Run in Sandbox
REST Service Discovery
Configure classpath
Add sources to classpath
Remove sources from classpath
Sample REST Service with complex media types output preview
Operations With POGO File
Operations With Google Gadget
Create a Google Gadget
Preview a Google Gadget
Operations With Templates
Create and Edit a template
View template's properties
Preview a 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 a Data Object
Preview a Node Type
Create a Node Type
Versioning
View version history
Version navigation
Restore a file to the older version
Miscellaneous and Tips
View information about eXo IDE
Customize the toolbar
Customize hotkeys
Related References
Reference Guide / eXo JCR
eXoJCR
Introduction in eXoJCR
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
Level 1
Level 2
Optional features
Using JCR
Obtaining a Repository object
JCR Session common considerations
JCR Application practices
Simplifying the management of a multi-workspace application
Reusing SessionProvider
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
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
Getting the effective configuration at Runtime of all the repositories
Multi-language support in eXo JCR RDB backend
Oracle
DB2
MySQL
PostgreSQL
How to host several JCR instances on the same database instance?
LockManager configuration
HibernateService configuration
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
General recommendations for database configuration
DB2 configuration
MySQL configuration
PostgreSQL configuration
MS SQL configuration
Sybase configuration
Oracle configuration
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
Tree File Value Storage
Simple File Value Storage
Content Addressable Value storage (CAS) support
Disabling value storage
Workspace Data Container
REST Services on Groovy
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
How to stop the node properly
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
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
Configuration
TransactionManagerLookup
Infinispan integration
Components configuration requirements
Workspaces configuration requirements
Shipped Infinispan Cache configuration templates
Data container template
Lock manager template
Query handler (indexer) template
RepositoryCreationService
Dependencies
How it works
Configuration
RepositoryCreationService Interface
Conclusions and restrictions
JCR Query Usecases
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
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
API and usage
Configuration
Implementation notices
WebDAV
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
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
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'
eXo JCR statistics
Statistics on the Database Access Layer
Statistics on the JCR API accesses
Statistics Manager
Checking repository integrity and consistency
Recommendations on how to fix corrupted JCR
JTA
The JCA Resource Adapter
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
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)
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
Notes on Value storage usage:
DBCleanService
Methods of DBCleanerService
Need to clean only single workspace
Need to clean the whole repository
JCR Performance Tuning Guide
JCR Performance and Scalability
Cluster configuration
JCR Clustered Performance
Performance Tuning Guide
JBoss AS Tuning
JCR Cache Tuning
Clustering
JVM parameters
eXoKernel
ExoContainer info
Container hierarchy
Service Configuration for Beginners
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
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
Understanding the prefixes supported by the configuration manager
Container Configuration
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
How
Injection
Side effects
Services Wiring
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
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
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 replicated, a distributed or a local cache?
How to define an infinispan cache instance
Using Infinispan in distributed mode
Configuration of the DistributedCacheManager
Launch a CacheServer
Configure the cache of your workspace
TransactionService
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
Configuration
JNDI naming
Prerequisites
How it works
JNDI System property initialization
JNDI reference binding
Configuration examples
Recommendations for Application Developers
InitialContextInitializer API
Logs configuration
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
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
RPC Service
Configuration
The SingleMethodCallCommand
eXoCore
Database Creator
API
A configuration examples
An examples of a DDL script
Security Service
Framework
ConversationState and ConversationRegistry
Authenticator
Usage
JAAS login module
Predefinded JAAS login modules
J2EE container authentication
Spring Security Integration
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
Direct integration
Replication
Integration with eXo portal
Security context propagation to portlets
Portal side filter
Portlet side filter
Conclusion
Organization Service
Organizational Model
User
Group
Membership
Custom Organization Service implementation instructions
Basic entities implementation
Unit handlers implementation
Extending BaseOrganizationService class
Verification of compliance
Related articles and how-tos
Organization Service Initializer
Organization Listener
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
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
Maven pom.xml file configuration
Standalone container and Organization Service configuration
Tika Document Reader Service
Architecture
Configuration
Old-style DocumentReaders and Tika Parsers
How to make and register own DocumentReader
TikaDocumentReader features and notes
Digest Authentication
Server configuration
Tomcat Server configuration
Jetty server configuration
JBoss server configuration
OrganizationService implementation requirements
eXoWS
Introduction to the Representational State Transfer (REST)
Overwrite default providers
Motivation
Usage
Example
RestServicesList Service
Usage
HTML format
JSON format
Groovy Scripts as REST Services
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?
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
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)
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
WSRP integration configuration
Extended Navigation
WSRP integration
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
Sites 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
IgnorePortalPlugin
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
Perform tasks when a content's state is updated
Context
New Authoring Mixin
Public REST APIs
ThumbnailRESTService
RssConnector
FCKCoreRESTConnector
ResourceBundleConnector
VoteConnector
DriverConnector
GadgetConnector
PortalLinkConnector
GetEditedDocumentRESTService
PublicationGetDocumentRESTService
FavoriteRESTService
RESTImagesRendererService
LifecycleConnector
CopyContentFile
PDFViewerRESTService
ManageDocumentService
DownloadConnector
Public Java APIs
TaxonomyService
LinkManager
PublicationManager
WCMComposer
NewFolksonomy
ApplicationTemplateManager
NodeFinder
JodConverter
TimelineService
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
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 is not in set
Select all documents where longprop property is not in set
IN_FOLDER constraint
Select all documents that are in a 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 Domain Model
CMIS Services
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
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
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)
Extend actions over a wiki page from external jars
Overview
How to add action extension to the Wiki toolbar
Create a new project for action extension
Create new actions and their corresponding listeners
Register new actions with UIExtensionManager
Deploy new action extension
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
Component
SpaceService
LifeCycleCompletionService
IdentityManager
ServiceProviderStore
RelationshipManager
SpaceIdentityProvider
SpaceApplicationHandler
ExoPeopleService
RestPortalContainerNameConfig
LinkProvider
External Component Plugin
ActivityResourceBundlePlugin
IdentityProviderPlugin
MentionsProcessor
OSHtmlSanitizerProcessor
PortletPreferenceRequiredPlugin
SpaceApplicationConfigPlugin
SocialChromatticLifeCycle
TemplateParamsProcessor
URLConverterFilterPlugin
RestPortalContainerNameConfig
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
How to create internationalized activities
Objective
Internationalize an activity
Get an internationalized message
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
Activity Resources
Activity Stream Resources
Identity Resources
Version Resources
Public Javascript APIs
Social JCR Structure
Overview
soc:providers
soc:<providername>
Identity
Relationship
Profile
Profile experience
Activity list
Activity year
Activity month
Activity day
Activity
Activity parameters
Space list
Space
Spaces Template configuration
Configure the oauth 2 legged scenario
Generate the certificates
Configure the property file