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. How to host several JCR instances on the same database instance?
15.1. Concepts
15.2. LockManager configuration
15.3. HibernateService configuration
16. Search Configuration
16.1. XML Configuration
16.2. Configuration parameters
16.3. Global Search Index
16.3.1. Global Search Index Configuration
16.3.2. Customized Search Indexes and Analyzers
16.4. Indexing Adjustments
16.4.1. IndexingConfiguration
16.4.2. Indexing rules
16.4.3. Indexing Aggregates
16.4.4. Property-Level Analyzers
16.4.5. Advanced features
17. JCR Configuration persister
17.1. Idea
17.2. Usage
18. JDBC Data Container Config
18.1. Introduction
18.2. General recommendations for database configuration
18.2.1. DB2 configuration
18.2.2. MySQL configuration
18.2.3. PostgreSQL configuration
18.2.4. MS SQL configuration
18.2.5. Sybase configuration
18.2.6. Oracle configuration
18.3. Multi-database Configuration
18.4. Single-database configuration
18.4.1. Configuration without DataSource
18.4.2. Dynamic Workspace Creation
18.5. Simple and Complex queries
18.6. Forse Query Hints
18.7. Notes for Microsoft Windows users
19. External Value Storages
19.1. Introduction
19.2. Tree File Value Storage
19.3. Simple File Value Storage
19.4. Content Addressable Value storage (CAS) support
19.5. Disabling value storage
20. Workspace Data Container
21. REST Services on Groovy
21.1. Concept
21.2. Usage
22. Configuring JBoss AS with eXo JCR in cluster
22.1. Launching Cluster
22.1.1. Deploying eXo JCR to JBoss As
22.1.2. Configuring JCR to use external configuration
22.2. Requirements
22.2.1. Environment requirements
22.2.2. Configuration requirements
23. JBoss Cache configuration
23.1. JBoss cache configuration for indexer, lock manager and data container
23.2. JGroups configuration
23.3. Allow to share JBoss Cache instances
23.4. Shipped JBoss Cache configuration templates
23.4.1. Data container template
23.4.2. Lock manager template
23.4.3. Query handler (indexer) template
24. LockManager configuration
24.1. Introduction
24.2. LockManagerImpl
24.3. CacheableLockManagerImpl
24.3.1. Configuration
24.3.2. Simple JbossCache Configuration
24.3.3. Template JBossCache Configuration
24.3.4. Data Types in Different Databases
24.3.5. Lock migration from 1.12.x
25. QueryHandler configuration
25.1. Indexing in clustered environment
25.2. Configuration
25.2.1. Query-handler configuration overview
25.2.2. Standalone strategy
25.2.3. Cluster-ready indexing strategies
25.2.4. JBoss-Cache template configuration
25.3. Asynchronous reindexing
25.3.1. On startup indexing
25.3.2. Hot Asynchronous Workspace Reindexing via JMX
25.3.3. Notices
25.4. Advanced tuning
25.4.1. Lucene tuning
26. JBossTransactionsService
26.1. Introduction
26.2. Configuration
27. TransactionManagerLookup
27.1. Configuration
28. RepositoryCreationService
28.1. Intro
28.2. Dependencies
28.3. How it works
28.4. Configuration
28.5. RepositoryCreationService Interface
28.6. Conclusions and restrictions
29. JCR Query Usecases
29.1. Intro
29.2. Query Lifecycle
29.2.1. Query Creation and Execution
29.2.2. Query Result Processing
29.2.3. Scoring
29.3. Query result settings
29.4. Type Constraints
29.5. Property Constraints
29.6. Path Constraint
29.7. Ordering specifing
29.8. Fulltext Search
29.9. Indexing rules and additional features
29.10. Query Examples
29.10.1. SetOffset and SetLimit
29.10.2. Finding All Nodes
29.10.3. Finding Nodes by Primary Type
29.10.4. Finding Nodes by Mixin Type
29.10.5. Property Comparison
29.10.6. LIKE Constraint
29.10.7. Escaping in LIKE Statements
29.10.8. NOT Constraint
29.10.9. AND Constraint
29.10.10. OR Constraint
29.10.11. Property Existence Constraint
29.10.12. Finding Nodes in a Case-Insensitive Way
29.10.13. Date Property Comparison
29.10.14. Node Name Constraint
29.10.15. Multivalue Property Comparison
29.10.16. Exact Path Constraint
29.10.17. Child Node Constraint
29.10.18. Finding All Descendant Nodes
29.10.19. Sorting Nodes by Property
29.10.20. Ordering by Descendant Nodes Property (XPath only)
29.10.21. Ordering by Score
29.10.22. Ordering by Path or Name
29.10.23. Fulltext Search by Property
29.10.24. Fulltext Search by All Properties in Node
29.10.25. Ignoring Accent Symbols. New Analyzer Setting.
29.10.26. Finding nt:file node by content of child jcr:content node
29.10.27. Changing Priority of Node
29.10.28. Removing Nodes Property From Indexing Scope
29.10.29. Regular Expression as Property Name in Indexing Rules
29.10.30. High-lighting Result of Fulltext Search
29.10.31. Searching By Synonim
29.10.32. Checking the spelling of Phrase
29.10.33. Finding Similar Nodes
29.11. Tips and tricks
29.11.1. XPath queries containing node names starting with a number
30. Searching Repository Content
30.1. Introduction
30.2. Bi-directional RangeIterator (since 1.9)
30.3. Fuzzy Searches (since 1.0)
30.4. SynonymSearch (since 1.9)
30.5. High-lighting (Since 1.9)
30.5.1. DefaultXMLExcerpt
30.5.2. DefaultHTMLExcerpt
30.5.3. How to use it
30.6. SpellChecker
30.6.1. How do I use it?
30.7. Similarity (Since 1.12)
31. Fulltext Search And Affecting Settings
31.1. Property content indexing
31.2. Lucene Analyzers
31.3. How are different properties indexed?
31.4. Fulltext search query examples
31.5. Different analyzers in action
32. JCR API Extensions
32.1. "Lazy" child nodes iteration
32.1.1. Concept
32.1.2. API and usage
32.1.3. Configuration
32.1.4. Implementation notices
33. WebDAV
33.1. Related documents
33.2. Introduction
33.3. Configuration
33.4. Screenshots
33.4.1. MS Internet Explorer
33.4.2. Dav Explorer
33.4.3. Xythos Drive
33.4.4. Microsoft Office 2003
33.4.5. Ubuntu Linux
33.5. Comparison table of WebDav and JCR commands
33.6. Restrictions
33.6.1. Windows 7
33.6.2. Microsoft Office 2010
34. FTP
34.1. Introdution
34.2. Configuration Parameters
34.2.1. command-port:
34.2.2. data-min-port & data-max-port
34.2.3. system
34.2.4. client-side-encoding
34.2.5. def-folder-node-type
34.2.6. def-file-node-type
34.2.7. def-file-mime-type
34.2.8. cache-folder-name
34.2.9. upload-speed-limit
34.2.10. download-speed-limit
34.2.11. timeout
35. eXo JCR Backup Service
35.1. Concept
35.2. How it works
35.2.1. Implementation details
35.2.2. Work basics
35.3. Configuration
35.4. RDBMS backup
35.5. Usage
35.5.1. Performing a Backup
35.5.2. Performing a Restore
35.5.3. Repository and Workspace initialization from backup
35.6. Scheduling (experimental)
35.7. Restore existing workspace or repository
35.8. Restore a workspace or a repository using original configuration
35.9. Backup set portability
36. HTTPBackupAgent and backup client
36.1. Introduction
36.2. HTTPBackupAgent
36.2.1. HTTPBackupAgent methods
36.2.2. HTTPBackupAgent Configuration
36.3. Backup Client
36.4. Backup Client Usage
36.4.1. Building application
36.4.2. Running application
36.4.3. Getting information about backup service
36.4.4. Starting full backup
36.4.5. Starting full and incremental backup on a single workspace
36.4.6. Getting information about the current backups (in progress)
36.4.7. Getting information about the current backup by 'backup_id'
36.4.8. Stopping backup by "backup_id"
36.4.9. Getting information about the completed (ready to restore) backups
36.4.10. Restoring to workspace
36.4.11. Getting information about the current restore
36.4.12. Restoring workspace and remove exists workspace
36.4.13. Restoring workspace from backup set
36.4.14. Restoring workspace from backup set and remove exists workspace
36.4.15. Restoring workspace with original configuation
36.4.16. Restoring workspace with original configuation and remove exists workspace
36.4.17. Restoring workspace from backup set with original configuation
36.4.18. Restoring workspace from backup set with original configuation and remove exists workspace
36.4.19. Restoring repository
36.4.20. Restoring repository and remove exists repository
36.4.21. Restoring repository from backup set
36.4.22. Restoring repository from backup set and remove exists repository
36.4.23. Restoring repository with original configuation
36.4.24. Restoring repository with original configuation and remove exists repository
36.4.25. Restoring repository from backup set with original configuation
36.4.26. Restoring repository from backup set with original configuation and remove exists repository
36.5. Full example about creating backup and restoring it for workspace 'backup'
36.5.1. Creating backup
36.5.2. Getting information about current backups
36.5.3. Stopping backup by id
36.5.4. Deleting the workspace "backup" and close opened sessions on this workspace
36.5.5. Restoring the workspace "backup"
36.5.6. Getting information about restore for workspace /repository/backup
36.6. Full example about creating backup and restoring it for repository 'repository'
36.6.1. Creating backup
36.6.2. Getting information about current backups
36.6.3. Stopping backup by id
36.6.4. Deleting the repository "repository" and close all opened sessions
36.6.5. Restoring the repository "repository"
36.6.6. Getting information about restore for repository 'repository'
37. Use external backup tool
37.1. Repository suspending
37.2. Backup
37.3. Repository resuming
38. eXo JCR statistics
38.1. Statistics on the Database Access Layer
38.2. Statistics on the JCR API accesses
38.3. Statistics Manager
39. Checking repository integrity and consistency
39.1. JMX-based consistency tool
40. JTA
41. The JCA Resource Adapter
41.1. Overview
41.2. The SessionFactory
41.3. Configuration
41.4. Deployment
42. Access Control
42.1. Standard Action Permissions
42.2. eXo Access Control
42.2.1. Principal and Identity
42.2.2. ACL
42.2.3. Notes
42.2.4. Example
42.2.5. Java API
43. Access Control Extension
43.1. Prerequisites
43.2. Overview
43.3. Access Context Action
43.4. The Invocation Context
43.5. Custom Extended Access Manager
43.6. Example of a custom Access Manager
44. Link Producer Service
45. Binary Values Processing
45.1. Configuration
45.2. Usage
45.3. Value implementations
46. JCR Resources:
47. JCR Workspace Data Container (architecture contract)
47.1. Goals
47.2. Concepts
47.2.1. Container and connection
47.2.2. Value storages
47.2.3. Lifecycle
47.2.4. Value storage lifecycle
47.3. Requirements
47.3.1. Read operations
47.3.2. Write operations
47.3.3. State operations
47.3.4. Validation of write operations
47.3.5. Consistency of save
47.4. Value storages API
47.4.1. Storages provider:
47.4.2. Value storage plugin
47.4.3. Value I/O channel
47.4.4. Transaction support via channel
48. How-to implement Workspace Data Container
48.1. Short intro about Workspace data container implementation practices:
48.2. Notes on Value storage usage:
49. DBCleanService
49.1. Description
49.2. Need to clean only single workspace
49.3. Need to clean the whole repository
50. JCR Performance Tuning Guide
50.1. Introduction
50.2. JCR Performance and Scalability
50.2.1. Cluster configuration
50.2.2. JCR Clustered Performance
50.3. Performance Tuning Guide
50.3.1. JBoss AS Tuning
50.3.2. JCR Cache Tuning
50.3.3. Clustering
50.3.4. JVM parameters