JBoss.orgCommunity Documentation

Part I. eXoJCR

Table of Contents

1. Introduction in eXoJCR
1.1. JCR (JSR-170) API main concepts
1.1.1. Data model
2. Why use JCR?
2.1. What is JCR?
2.2. Why use JCR?
2.3. What does eXo do?
2.4. Further Reading
3. eXo JCR Implementation
3.1. Related Documents
3.2. How it works
3.3. Workspace Data Model
4. Advantages of eXo JCR
4.1. Advantages for application developers:
4.2. Advantages for managers
5. Compatibility Levels
5.1. Introduction
5.2. Level 1
5.3. Level 2
5.4. Optional features
6. Using JCR
6.1. 1 Using eXo JCR in an application
6.1.1. Obtaining a Repository object
6.1.2. JCR Session common considerations
6.2. JCR Application practices
6.2.1. Simplifying the management of a multi-workspace application
6.2.2. Reusing SessionProvider
7. JCR Extensions
7.1. JCR Service Extensions
7.1.1. Concept
7.1.2. Implementation
7.1.3. Configuration
7.2. Related Pages
8. eXo JCR Application Model
9. NodeType Registration
9.1. Interfaces and methods
9.1.1. ExtendedNodeTypeManager
9.1.2. NodeTypeValue
9.1.3. NodeDefinitionValue
9.1.4. PropertyDefinitionValue
9.1.5. ItemDefinitionValue
9.2. Node type registration
9.2.1. Run time registration from xml file.
9.2.2. Run time registration using NodeTypeValue.
9.3. Changing existing node type
9.4. Removing node type
9.5. Practical How to
9.5.1. Adding new PropertyDefinition
9.5.2. Adding new child NodeDefinition
9.5.3. Changing or removing existing PropertyDefinition or child NodeDefinition
9.5.4. Changing the list of super types
10. Registry Service
10.1. Concept
10.2. The API
10.3. Configuration
11. Namespace altering
11.1. Adding new namespace
11.2. Changing existing namespace
11.3. Removing existing namespace
12. Node Types and Namespaces
12.1. Introduction
12.2. Node Types definition
12.3. Namespaces definition
13. eXo JCR configuration
13.1. Related documents
13.2. Portal and Standalone configuration
13.3. JCR Configuration
13.4. Repository service configuration (JCR repositories configuration)
13.5. Repository configuration:
13.6. Workspace configuration:
13.7. Workspace data container configuration:
13.8. Value Storage plugin configuration (for data container):
13.9. Initializer configuration (optional):
13.10. Cache configuration:
13.11. Query Handler configuration:
13.12. Lock Manager configuration:
14. Multilanguage support in eXo JCR RDB backend
14.1. Introduction
14.2. Oracle
14.3. DB2
14.4. MySQL
14.5. PostgreSQL
15. Search Configuration
15.1. XML Configuration
15.2. Configuration parameters
15.3. Global Search Index
15.3.1. Global Search Index Configuration
15.3.2. Customized Search Indexes and Analyzers
15.4. Indexing Adjustments
15.4.1. IndexingConfiguration
15.4.2. Indexing rules
15.4.3. Indexing Aggregates
15.4.4. Property-Level Analyzers
15.4.5. Advanced features
16. JCR Configuration persister
16.1. Idea
16.2. Usage
17. JDBC Data Container Config
17.1. Introduction
17.2. General recommendations for database configuration
17.2.1. MySQL configuration
17.3. Multi-database Configuration
17.4. Single-database configuration
17.4.1. Configuration without DataSource
17.4.2. Dynamic Workspace Creation
17.5. Simple and Complex queries
17.6. Forse Query Hints
17.7. Notes for Microsoft Windows users
18. External Value Storages
18.1. Introduction
18.2. Tree File Value Storage
18.3. Simple File Value Storage
18.4. Content Addressable Value storage (CAS) support
19. Workspace Data Container
20. REST Services on Groovy
20.1. Concept
20.2. Usage
21. Configuring JBoss AS with eXo JCR in cluster
21.1. Launching Cluster
21.1.1. Deploying eXo JCR to JBoss As
21.1.2. Configuring JCR to use external configuration
21.2. Requirements
21.2.1. Environment requirements
21.2.2. Configuration requirements
22. JBoss Cache configuration
22.1. JBoss cache configuration for indexer, lock manager and data container
22.2. JGroups configuration
22.3. Shipped JBoss Cache configuration templates
22.3.1. Data container template
22.3.2. Lock manager template
22.3.3. Query handler (indexer) template
23. LockManager configuration
23.1. Introduction
23.2. LockManagerImpl
23.3. CacheableLockManagerImpl
23.3.1. Configuration
23.3.2. Simple JbossCache Configuration
23.3.3. Template JBossCache Configuration
23.3.4. Data Types in Different Databases
24. QueryHandler configuration
24.1. How does it work?
24.2. Configuration
24.2.1. Common requirements
24.2.2. Query-handler configuration
24.2.3. JBoss-Cache template configuration
25. JBossTransactionsService
25.1. Introduction
25.2. Configuration
26. TransactionManagerLookup
26.1. Configuration
27. JCR Query Usecases
27.1. Intro
27.2. Query Lifecycle
27.2.1. Query Creation and Execution
27.2.2. Query Result Processing
27.2.3. Scoring
27.3. Query result settings
27.4. Type Constraints
27.5. Property Constraints
27.6. Path Constraint
27.7. Ordering specifing
27.8. Fulltext Search
27.9. Indexing rules and additional features
27.10. Query Examples
27.10.1. SetOffset and SetLimit
27.10.2. Finding All Nodes
27.10.3. Finding Nodes by Primary Type
27.10.4. Finding Nodes by Mixin Type
27.10.5. Property Comparison
27.10.6. LIKE Constraint
27.10.7. Escaping in LIKE Statements
27.10.8. NOT Constraint
27.10.9. AND Constraint
27.10.10. OR Constraint
27.10.11. Property Existence Constraint
27.10.12. Finding Nodes in a Case-Insensitive Way
27.10.13. Date Property Comparison
27.10.14. Node Name Constraint
27.10.15. Multivalue Property Comparison
27.10.16. Exact Path Constraint
27.10.17. Child Node Constraint
27.10.18. Finding All Descendant Nodes
27.10.19. Sorting Nodes by Property
27.10.20. Ordering by Descendant Nodes Property (XPath only)
27.10.21. Ordering by Score
27.10.22. Ordering by Path or Name
27.10.23. Fulltext Search by Property
27.10.24. Fulltext Search by All Properties in Node
27.10.25. Ignoring Accent Symbols. New Analyzer Setting.
27.10.26. Finding nt:file node by content of child jcr:content node
27.10.27. Changing Priority of Node
27.10.28. Removing Nodes Property From Indexing Scope
27.10.29. Regular Expression as Property Name in Indexing Rules
27.10.30. High-lighting Result of Fulltext Search
27.10.31. Searching By Synonim
27.10.32. Checking the spelling of Phrase
27.10.33. Finding Similar Nodes
27.11. Tips and tricks
27.11.1. XPath queries containing node names starting with a number
28. Searching Repository Content
28.1. Introduction
28.2. Bi-directional RangeIterator (since 1.9)
28.3. Fuzzy Searches (since 1.0)
28.4. SynonymSearch (since 1.9)
28.5. High-lighting (Since 1.9)
28.5.1. DefaultXMLExcerpt
28.5.2. DefaultHTMLExcerpt
28.5.3. How to use it
28.6. SpellChecker
28.6.1. How do I use it?
28.7. Similarity (Since 1.12)
29. Fulltext Search And Affecting Settings
29.1. Property content indexing
29.2. Lucene Analyzers
29.3. How are different properties indexed?
29.4. Fulltext search query examples
29.5. Different analyzers in action
30. WebDAV
30.1. Related documents
30.2. Introduction
30.3. Configuration
30.4. Screenshots
30.4.1. MS Internet Explorer
30.4.2. Dav Explorer
30.4.3. Xythos Drive
30.4.4. Microsoft Office 2003
30.4.5. Ubuntu Linux
30.5. Comparison table of WebDav and JCR commands
30.6. Restrictions
30.6.1. Windows 7
30.6.2. Microsoft Office 2010
31. FTP
31.1. Introdution
31.2. Configuration Parameters
31.2.1. command-port:
31.2.2. data-min-port & data-max-port
31.2.3. system
31.2.4. client-side-encoding
31.2.5. def-folder-node-type
31.2.6. def-file-node-type
31.2.7. def-file-mime-type
31.2.8. cache-folder-name
31.2.9. upload-speed-limit
31.2.10. download-speed-limit
31.2.11. timeout
32. eXo JCR Backup Service
32.1. Concept
32.2. How it works
32.2.1. Implementation details
32.2.2. Work basics
32.3. Configuration
32.4. Usage
32.4.1. Performing a Backup
32.4.2. Performing a Restore
32.4.3. Repository and Workspace initialization from backup
32.5. Scheduling (experimental)
32.6. Restore existing workspace or repository
32.7. Restore a workspace or a repository using original configuration
32.8. Backup set portability
33. HTTPBackupAgent and backup client
33.1. Introduction
33.2. HTTPBackupAgent
33.2.1. HTTPBackupAgent methods
33.2.2. HTTPBackupAgent Configuration
33.3. Backup Client
33.4. Backup Client Usage
33.4.1. Building application
33.4.2. Running application
33.4.3. Getting information about backup service
33.4.4. Starting full backup
33.4.5. Starting full and incremental backup on a single workspace
33.4.6. Getting information about the current backups (in progress)
33.4.7. Getting information about the current backup by 'backup_id'
33.4.8. Stopping backup by "backup_id"
33.4.9. Getting information about the completed (ready to restore) backups
33.4.10. Restoring to workspace
33.4.11. Getting information about the current restore
33.4.12. Restoring workspace and remove exists workspace
33.4.13. Restoring workspace from backup set
33.4.14. Restoring workspace from backup set and remove exists workspace
33.4.15. Restoring workspace with original configuation
33.4.16. Restoring workspace with original configuation and remove exists workspace
33.4.17. Restoring workspace from backup set with original configuation
33.4.18. Restoring workspace from backup set with original configuation and remove exists workspace
33.4.19. Restoring repository
33.4.20. Restoring repository and remove exists repository
33.4.21. Restoring repository from backup set
33.4.22. Restoring repository from backup set and remove exists repository
33.4.23. Restoring repository with original configuation
33.4.24. Restoring repository with original configuation and remove exists repository
33.4.25. Restoring repository from backup set with original configuation
33.4.26. Restoring repository from backup set with original configuation and remove exists repository
33.5. Full example about creating backup and restoring it for workspace 'backup'
33.5.1. Creating backup
33.5.2. Getting information about current backups
33.5.3. Stopping backup by id
33.5.4. Deleting the workspace "backup" and close opened sessions on this workspace
33.5.5. Restoring the workspace "backup"
33.5.6. Getting information about restore for workspace /repository/backup
33.6. Full example about creating backup and restoring it for repository 'repository'
33.6.1. Creating backup
33.6.2. Getting information about current backups
33.6.3. Stopping backup by id
33.6.4. Deleting the repository "repository" and close all opened sessions
33.6.5. Restoring the repository "repository"
33.6.6. Getting information about restore for repository 'repository'
34. Searching index backup
34.1. Manual backup (file copy)
34.2. Consistency Requirements
34.3. JCR Backup Service
35. eXo JCR statistics
35.1. Statistics on the Database Access Layer
35.2. Statistics on the JCR API accesses
35.3. Statistics Manager
36. Access Control
36.1. Standard Action Permissions
36.2. eXo Access Control
36.2.1. Principal and Identity
36.2.2. ACL
36.2.3. Notes
36.2.4. Example
36.2.5. Java API
37. Access Control Extension
37.1. Prerequisites
37.2. Overview
37.3. Access Context Action
37.4. The Invocation Context
37.5. Custom Extended Access Manager
37.6. Example of a custom Access Manager
38. Link Producer Service
39. Binary Values Processing
39.1. Configuration
39.2. Usage
39.3. Value implementations
40. JCR Resources:
41. JCR Workspace Data Container (architecture contract)
41.1. Goals
41.2. Concepts
41.2.1. Container and connection
41.2.2. Value storages
41.2.3. Lifecycle
41.2.4. Value storage lifecycle
41.3. Requirements
41.3.1. Read operations
41.3.2. Write operations
41.3.3. State operations
41.3.4. Validation of write operations
41.3.5. Consistency of save
41.4. Value storages API
41.4.1. Storages provider:
41.4.2. Value storage plugin
41.4.3. Value I/O channel
41.4.4. Transaction support via channel
42. How-to implement Workspace Data Container
42.1. Short intro about Workspace data container implementation practices:
42.2. Notes on Value storage usage:
43. JCR Performance Tuning Guide
43.1. Introduction
43.2. JCR Performance and Scalability
43.2.1. Cluster configuration
43.2.2. JCR Clustered Performance
43.3. Performance Tuning Guide
43.3.1. JBoss AS Tuning
43.3.2. JCR Cache Tuning
43.3.3. Clustering