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:
13.13. Help application to prohibit the use of closed sessions
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. Multi-database Configuration
17.3. Single-database configuration
17.3.1. Configuration without DataSource
17.3.2. Dynamic Workspace Creation
17.4. Simple and Complex queries
17.5. Forse Query Hints
17.6. 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
18.5. Disabling value storage
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. Allow to share JBoss Cache instances
22.4. Shipped JBoss Cache configuration templates
22.4.1. Data container template
22.4.2. Lock manager template
22.4.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. Indexing in clustered environment
24.2. Configuration
24.2.1. Query-handler configuration overview
24.2.2. Standalone strategy
24.2.3. Cluster-ready indexing strategies
24.2.4. JBoss-Cache template configuration
24.3. Asynchronous reindexing
24.3.1. On startup indexing
24.3.2. Hot Asynchronous Workspace Reindexing via JMX
24.3.3. Notices
24.4. Advanced tuning
24.4.1. Lucene tuning
25. JBossTransactionsService
25.1. Introduction
25.2. Configuration
26. TransactionManagerLookup
26.1. Configuration
27. RepositoryCreationService
27.1. Intro
27.2. Dependencies
27.3. How it works
27.4. Configuration
27.5. RepositoryCreationService Interface
27.6. Conclusions and restrictions
28. JCR Query Usecases
28.1. Intro
28.2. Query Lifecycle
28.2.1. Query Creation and Execution
28.2.2. Query Result Processing
28.2.3. Scoring
28.3. Query result settings
28.4. Type Constraints
28.5. Property Constraints
28.6. Path Constraint
28.7. Ordering specifing
28.8. Fulltext Search
28.9. Indexing rules and additional features
28.10. Query Examples
28.10.1. SetOffset and SetLimit
28.10.2. Finding All Nodes
28.10.3. Finding Nodes by Primary Type
28.10.4. Finding Nodes by Mixin Type
28.10.5. Property Comparison
28.10.6. LIKE Constraint
28.10.7. Escaping in LIKE Statements
28.10.8. NOT Constraint
28.10.9. AND Constraint
28.10.10. OR Constraint
28.10.11. Property Existence Constraint
28.10.12. Finding Nodes in a Case-Insensitive Way
28.10.13. Date Property Comparison
28.10.14. Node Name Constraint
28.10.15. Multivalue Property Comparison
28.10.16. Exact Path Constraint
28.10.17. Child Node Constraint
28.10.18. Finding All Descendant Nodes
28.10.19. Sorting Nodes by Property
28.10.20. Ordering by Descendant Nodes Property (XPath only)
28.10.21. Ordering by Score
28.10.22. Ordering by Path or Name
28.10.23. Fulltext Search by Property
28.10.24. Fulltext Search by All Properties in Node
28.10.25. Ignoring Accent Symbols. New Analyzer Setting.
28.10.26. Finding nt:file node by content of child jcr:content node
28.10.27. Changing Priority of Node
28.10.28. Removing Nodes Property From Indexing Scope
28.10.29. Regular Expression as Property Name in Indexing Rules
28.10.30. High-lighting Result of Fulltext Search
28.10.31. Searching By Synonim
28.10.32. Checking the spelling of Phrase
28.10.33. Finding Similar Nodes
28.11. Tips and tricks
28.11.1. XPath queries containing node names starting with a number
29. Searching Repository Content
29.1. Introduction
29.2. Bi-directional RangeIterator (since 1.9)
29.3. Fuzzy Searches (since 1.0)
29.4. SynonymSearch (since 1.9)
29.5. High-lighting (Since 1.9)
29.5.1. DefaultXMLExcerpt
29.5.2. DefaultHTMLExcerpt
29.5.3. How to use it
29.6. SpellChecker
29.6.1. How do I use it?
29.7. Similarity (Since 1.12)
30. Fulltext Search And Affecting Settings
30.1. Property content indexing
30.2. Lucene Analyzers
30.3. How are different properties indexed?
30.4. Fulltext search query examples
30.5. Different analyzers in action
31. JCR API Extensions
31.1. "Lazy" child nodes iteration
31.1.1. Concept
31.1.2. API and usage
31.1.3. Configuration
31.1.4. Implementation notices
32. WebDAV
32.1. Related documents
32.2. Introduction
32.3. Configuration
32.4. Screenshots
32.4.1. MS Internet Explorer
32.4.2. Dav Explorer
32.4.3. Xythos Drive
32.4.4. Microsoft Office 2003
32.4.5. Ubuntu Linux
32.5. Comparison table of WebDav and JCR commands
32.6. Restrictions
32.6.1. Windows 7
32.6.2. Microsoft Office 2010
33. FTP
33.1. Introdution
33.2. Configuration Parameters
33.2.1. command-port:
33.2.2. data-min-port & data-max-port
33.2.3. system
33.2.4. client-side-encoding
33.2.5. def-folder-node-type
33.2.6. def-file-node-type
33.2.7. def-file-mime-type
33.2.8. cache-folder-name
33.2.9. upload-speed-limit
33.2.10. download-speed-limit
33.2.11. timeout
34. eXo JCR Backup Service
34.1. Concept
34.2. How it works
34.2.1. Implementation details
34.2.2. Work basics
34.3. Configuration
34.4. RDBMS backup
34.5. Usage
34.5.1. Performing a Backup
34.5.2. Performing a Restore
34.5.3. Repository and Workspace initialization from backup
34.6. Scheduling (experimental)
34.7. Restore existing workspace or repository
34.8. Restore a workspace or a repository using original configuration
34.9. Backup set portability
35. HTTPBackupAgent and backup client
35.1. Introduction
35.2. HTTPBackupAgent
35.2.1. HTTPBackupAgent methods
35.2.2. HTTPBackupAgent Configuration
35.3. Backup Client
35.4. Backup Client Usage
35.4.1. Building application
35.4.2. Running application
35.4.3. Getting information about backup service
35.4.4. Starting full backup
35.4.5. Starting full and incremental backup on a single workspace
35.4.6. Getting information about the current backups (in progress)
35.4.7. Getting information about the current backup by 'backup_id'
35.4.8. Stopping backup by "backup_id"
35.4.9. Getting information about the completed (ready to restore) backups
35.4.10. Restoring to workspace
35.4.11. Getting information about the current restore
35.4.12. Restoring workspace and remove exists workspace
35.4.13. Restoring workspace from backup set
35.4.14. Restoring workspace from backup set and remove exists workspace
35.4.15. Restoring workspace with original configuation
35.4.16. Restoring workspace with original configuation and remove exists workspace
35.4.17. Restoring workspace from backup set with original configuation
35.4.18. Restoring workspace from backup set with original configuation and remove exists workspace
35.4.19. Restoring repository
35.4.20. Restoring repository and remove exists repository
35.4.21. Restoring repository from backup set
35.4.22. Restoring repository from backup set and remove exists repository
35.4.23. Restoring repository with original configuation
35.4.24. Restoring repository with original configuation and remove exists repository
35.4.25. Restoring repository from backup set with original configuation
35.4.26. Restoring repository from backup set with original configuation and remove exists repository
35.5. Full example about creating backup and restoring it for workspace 'backup'
35.5.1. Creating backup
35.5.2. Getting information about current backups
35.5.3. Stopping backup by id
35.5.4. Deleting the workspace "backup" and close opened sessions on this workspace
35.5.5. Restoring the workspace "backup"
35.5.6. Getting information about restore for workspace /repository/backup
35.6. Full example about creating backup and restoring it for repository 'repository'
35.6.1. Creating backup
35.6.2. Getting information about current backups
35.6.3. Stopping backup by id
35.6.4. Deleting the repository "repository" and close all opened sessions
35.6.5. Restoring the repository "repository"
35.6.6. Getting information about restore for repository 'repository'
36. Use external backup tool
36.1. Repository suspending
36.2. Backup
36.3. Repository resuming
37. eXo JCR statistics
37.1. Statistics on the Database Access Layer
37.2. Statistics on the JCR API accesses
37.3. Statistics Manager
38. JTA
39. The JCA Resource Adapter
39.1. Overview
39.2. The SessionFactory
39.3. Configuration
39.4. Deployment
40. Access Control
40.1. Standard Action Permissions
40.2. eXo Access Control
40.2.1. Principal and Identity
40.2.2. ACL
40.2.3. Notes
40.2.4. Example
40.2.5. Java API
41. Access Control Extension
41.1. Prerequisites
41.2. Overview
41.3. Access Context Action
41.4. The Invocation Context
41.5. Custom Extended Access Manager
41.6. Example of a custom Access Manager
42. Link Producer Service
43. Binary Values Processing
43.1. Configuration
43.2. Usage
43.3. Value implementations
44. JCR Resources:
45. JCR Workspace Data Container (architecture contract)
45.1. Goals
45.2. Concepts
45.2.1. Container and connection
45.2.2. Value storages
45.2.3. Lifecycle
45.2.4. Value storage lifecycle
45.3. Requirements
45.3.1. Read operations
45.3.2. Write operations
45.3.3. State operations
45.3.4. Validation of write operations
45.3.5. Consistency of save
45.4. Value storages API
45.4.1. Storages provider:
45.4.2. Value storage plugin
45.4.3. Value I/O channel
45.4.4. Transaction support via channel
46. How-to implement Workspace Data Container
46.1. Short intro about Workspace data container implementation practices:
46.2. Notes on Value storage usage:
47. DBCleanService
47.1. API
48. JCR Performance Tuning Guide
48.1. Introduction
48.2. JCR Performance and Scalability
48.2.1. Cluster configuration
48.2.2. JCR Clustered Performance
48.3. Performance Tuning Guide
48.3.1. JBoss AS Tuning
48.3.2. JCR Cache Tuning
48.3.3. Clustering
48.3.4. JVM parameters