JBoss.orgCommunity Documentation

Reference Guide / eXo JCR

Java Content Repository and Extension services


1. eXoJCR
1.1. Introduction in eXoJCR
1.1.1. Data model
1.2. Why use JCR?
1.2.1. What is JCR?
1.2.2. Why use JCR?
1.2.3. What does eXo do?
1.2.4. Further Reading
1.3. eXo JCR Implementation
1.3.1. Related Documents
1.3.2. How it works
1.3.3. Workspace Data Model
1.4. Advantages of eXo JCR
1.4.1. Advantages for application developers
1.4.2. Advantages for managers
1.5. Compatibility Levels
1.5.1. Level 1
1.5.2. Level 2
1.5.3. Optional features
1.6. Using JCR
1.6.1. Obtaining a Repository object
1.6.2. JCR Session common considerations
1.6.3. JCR Application practices
1.7. JCR Service Extensions
1.7.1. Concept
1.7.2. Implementation
1.7.3. Configuration
1.7.4. Related Pages
1.8. eXo JCR Application Model
1.9. NodeType Registration
1.9.1. Interfaces and methods
1.9.2. Node type registration
1.9.3. Changing existing node type
1.9.4. Removing node type
1.9.5. Practical How to
1.10. Registry Service
1.10.1. Concept
1.10.2. The API
1.10.3. Configuration
1.11. Namespace altering
1.11.1. Adding new namespace
1.11.2. Changing existing namespace
1.11.3. Removing existing namespace
1.12. Node Types and Namespaces
1.12.1. Node Types definition
1.12.2. Namespaces definition
1.13. eXo JCR configuration
1.13.1. Related documents
1.13.2. Portal and Standalone configuration
1.13.3. JCR Configuration
1.13.4. Repository service configuration (JCR repositories configuration)
1.13.5. Repository configuration
1.13.6. Workspace configuration
1.13.7. Value Storage plugin configuration (for data container):
1.13.8. Initializer configuration (optional)
1.13.9. Cache configuration
1.13.10. Query Handler configuration
1.13.11. Lock Manager configuration
1.13.12. Help application to prohibit the use of closed sessions
1.13.13. Help application to allow the use of closed datasources
1.13.14. Getting the effective configuration at Runtime of all the repositories
1.13.15. Configuration of workspaces using system properties
1.14. Multi-language support in eXo JCR RDB backend
1.14.1. Oracle
1.14.2. DB2
1.14.3. MySQL
1.14.4. PostgreSQL/PostgrePlus
1.15. How to host several JCR instances on the same database instance?
1.15.1. LockManager configuration
1.15.2. HibernateService configuration
1.16. Search Configuration
1.16.1. XML Configuration
1.16.2. Configuration parameters
1.16.3. Global Search Index
1.16.4. Indexing Adjustments
1.17. JCR Configuration persister
1.17.1. Idea
1.17.2. Usage
1.18. JDBC Data Container Config
1.18.1. General recommendations for database configuration
1.18.2. Isolated-database Configuration
1.18.3. Multi-database Configuration
1.18.4. Single-database configuration
1.18.5. Simple and Complex queries
1.18.6. Forse Query Hints
1.18.7. Notes for Microsoft Windows users
1.19. External Value Storages
1.19.1. Tree File Value Storage
1.19.2. Simple File Value Storage
1.19.3. Content Addressable Value storage (CAS) support
1.19.4. Disabling value storage
1.20. Workspace Data Container
1.20.1. Database's dialects
1.21. REST Services on Groovy
1.21.1. Usage
1.22. Configuring JBoss AS with eXo JCR in cluster
1.22.1. Launching Cluster
1.22.2. Requirements
1.23. Infinispan configuration
1.23.1. Infinispan configuration for indexer, lock manager and data container
1.23.2. JGroups configuration
1.23.3. Shipped Infinispan configuration templates
1.24. LockManager configuration
1.24.1. CacheableLockManagerImpl
1.25. QueryHandler configuration
1.25.1. Indexing in clustered environment
1.25.2. Configuration
1.25.3. Asynchronous reindexing
1.25.4. Advanced tuning
1.26. JBossTransactionsService
1.26.1. Configuration
1.27. TransactionManagerLookup
1.28. RepositoryCreationService
1.28.1. Dependencies
1.28.2. How it works
1.28.3. Configuration
1.28.4. RepositoryCreationService Interface
1.28.5. Conclusions and restrictions
1.29. JCR Query Usecases
1.29.1. Query Lifecycle
1.29.2. Query result settings
1.29.3. Type Constraints
1.29.4. Property Constraints
1.29.5. Path Constraint
1.29.6. Ordering specifying
1.29.7. Section 1.31, “Fulltext Search And Affecting Settings”
1.29.8. Indexing rules and additional features
1.29.9. Query Examples
1.29.10. Tips and tricks
1.30. Searching Repository Content
1.30.1. Bi-directional RangeIterator (since 1.9)
1.30.2. Fuzzy Searches (since 1.0)
1.30.3. SynonymSearch (since 1.9)
1.30.4. High-lighting (Since 1.9)
1.30.5. SpellChecker
1.30.6. Similarity (Since 1.12)
1.31. Fulltext Search And Affecting Settings
1.31.1. Property content indexing
1.31.2. Lucene Analyzers
1.31.3. How are different properties indexed?
1.31.4. Fulltext search query examples
1.31.5. Different analyzers in action
1.32. JCR API Extensions
1.32.1. API and usage
1.32.2. Configuration
1.32.3. Implementation notices
1.33. WebDAV
1.33.1. Configuration
1.33.2. Screenshots
1.33.3. Comparison table of WebDav and JCR commands
1.33.4. Restrictions
1.33.5. Same name sibling
1.34. FTP
1.34.1. Configuration Parameters
1.35. eXo JCR Backup Service
1.35.1. Concept
1.35.2. How it works
1.35.3. Configuration
1.35.4. RDBMS backup
1.35.5. Usage
1.35.6. Restore existing workspace or repository
1.35.7. Restore a workspace or a repository using original configuration
1.35.8. Backup set portability
1.35.9. DB type migration
1.36. HTTPBackupAgent and backup client
1.36.1. HTTPBackupAgent
1.36.2. Backup Client
1.36.3. Backup Client Usage
1.36.4. Full example about creating backup and restoring it for workspace 'backup'
1.36.5. Full example about creating backup and restoring it for repository 'repository'
1.37. How to backup the data of your JCR using an external backup tool in 3 steps?
1.37.1. Step 1: Suspend the Repository
1.37.2. Step 2: Backup the data
1.37.3. Step 3: Resume the Repository
1.38. eXo JCR statistics
1.38.1. Statistics on the Database Access Layer
1.38.2. Statistics on the JCR API accesses
1.38.3. Statistics Manager
1.39. Checking and repairing repository integrity and consistency
1.39.1. Recommendations on how to fix corrupted JCR manually
1.40. Quota Manager
1.40.1. Quota Manager configuration
1.40.2. Quota manager interface overview
1.41. JTA
1.42. The JCA Resource Adapter
1.42.1. The SessionFactory
1.42.2. Configuration
1.42.3. Deployment
1.43. Access Control
1.43.1. Standard Action Permissions
1.43.2. eXo Access Control
1.44. Access Control Extension
1.44.1. Prerequisites
1.44.2. Access Context Action
1.44.3. The Invocation Context
1.44.4. Custom Extended Access Manager
1.44.5. Example of a custom Access Manager
1.45. Link Producer Service
1.46. Binary Values Processing
1.46.1. Configuration
1.46.2. Usage
1.46.3. Value implementations
1.47. JCR Resources:
1.48. JCR Workspace Data Container (architecture contract)
1.48.1. Concepts
1.48.2. Requirements
1.48.3. Value storages API
1.49. How to implement Workspace Data Container
1.49.1. Notes on Value storage usage:
1.50. DBCleanService
1.50.1. Methods of DBCleanService
1.50.2. Need to clean only single workspace
1.50.3. Need to clean the whole repository
1.51. JCR Performance Tuning Guide
1.51.1. JCR Performance and Scalability
1.51.2. Performance Tuning Guide
2. eXoKernel
2.1. ExoContainer info
2.1.1. Container hierarchy
2.2. Service Configuration for Beginners
2.2.1. Requirements
2.2.2. Services
2.2.3. Configuration File
2.2.4. Execution Modes
2.2.5. Containers
2.2.6. Configuration Retrieval
2.2.7. Service instantiation
2.2.8. Miscellaneous
2.2.9. Further Reading
2.3. Service Configuration in Detail
2.3.1. Requirements
2.3.2. Sample Service
2.3.3. Parameters
2.3.4. External Plugin
2.3.5. Import
2.3.6. System properties
2.3.7. Understanding the prefixes supported by the configuration manager
2.4. Container Configuration
2.4.1. Kernel configuration namespace
2.4.2. Understanding how configuration files are loaded
2.4.3. eXo Container hot reloading
2.4.4. System property configuration
2.4.5. Variable Syntaxes
2.4.6. Runtime configuration profiles
2.4.7. Component request life cycle
2.4.8. Thread Context Holder
2.5. Inversion Of Control
2.5.1. How
2.5.2. Injection
2.5.3. Side effects
2.6. Services Wiring
2.6.1. Portal Instance
2.6.2. Introduction to the XML schema of the configuration.xml file
2.6.3. Configuration retrieval and log of this retrieval
2.7. Component Plugin Priority
2.8. Understanding the ListenerService
2.8.1. What is the ListenerService ?
2.8.2. How does it work?
2.8.3. How to configure a listener?
2.8.4. Concrete Example
2.9. Initial Context Binder
2.9.1. API
2.10. Job Scheduler Service
2.10.1. Where is Job Scheduler Service used in eXo Products?
2.10.2. How does Job Scheduler work?
2.10.3. Reference
2.11. eXo Cache
2.11.1. Basic concepts
2.11.2. Advanced concepts
2.11.3. eXo Cache extension
2.11.4. eXo Cache based on Infinispan
2.11.5. eXo Cache based on Spymemcached
2.12. TransactionService
2.12.1. Existing TransactionService implementations
2.13. The data source provider
2.13.1. Configuration
2.14. JNDI naming
2.14.1. Prerequisites
2.14.2. How it works
2.14.3. Configuration examples
2.14.4. Recommendations for Application Developers
2.15. Logs configuration
2.15.1. Logs configuration initializer
2.15.2. Configuration examples
2.15.3. Tips and Troubleshooting
2.16. Manageability
2.16.1. Managed framework API
2.16.2. JMX Management View
2.16.3. Example
2.17. RPC Service
2.17.1. Configuration
2.17.2. The SingleMethodCallCommand
2.18. Extensibility
2.19. Dependency Injection (JSR 330)
2.19.1. Specificities and Limitations
2.19.2. Configuration
2.19.3. Scope Management
2.20. Container Integration
2.20.1. Google Guice
2.20.2. Spring
2.20.3. Weld
2.21. Auto Registration
2.22. Multi-threaded Kernel
2.23. HikariCP connection pool
3. eXoCore
3.1. Database Creator
3.1.1. API
3.1.2. Configuration examples
3.1.3. Examples of DDL script
3.2. Security Service
3.2.1. Framework
3.2.2. Usage
3.3. Organization Service
3.3.1. Organizational Model
3.3.2. Custom Organization Service implementation instructions
3.4. Organization Service Initializer
3.5. Organization Listener
3.5.1. Writing your own listeners
3.5.2. Registering your listeners
3.6. Update ConversationState when user's Membership changed
3.7. DB Schema creator service
3.8. Database Configuration for Hibernate
3.8.1. Generic configuration
3.8.2. Example DB configuration
3.8.3. Caching configuration
3.8.4. Registering custom annotated classes and Hibernate XML files into the service
3.8.5. Disable/Enable an User
3.9. LDAP Configuration
3.9.1. Quickstart
3.9.2. Configuration
3.9.3. Advanced topics
3.10. JCR organization service Configuration
3.10.1. Quickstart
3.10.2. Configuration
3.10.3. Migration
3.10.4. Disable/Enable an user
3.11. Organization Service TCK tests configuration
3.11.1. Maven pom.xml file configuration
3.11.2. Standalone container and Organization Service configuration
3.11.3. Optional Tests
3.12. Tika Document Reader Service
3.12.1. Architecture
3.12.2. Configuration
3.12.3. Old-style DocumentReaders and Tika Parsers
3.12.4. TikaDocumentReader features and notes
3.13. Digest Authentication
3.13.1. Server configuration
3.13.2. OrganizationService implementation requirements
4. eXoWS
4.1. Introduction to the Representational State Transfer (REST)
4.2. Overwrite default providers
4.2.1. Motivation
4.2.2. Usage
4.2.3. Example
4.3. RestServicesList Service
4.3.1. Usage
4.4. Groovy Scripts as REST Services
4.4.1. Loading script and save it in JCR
4.4.2. Instantiation
4.4.3. Deploying newly created Class as RESTful service
4.4.4. Script Lifecycle Management
4.4.5. Getting node UUID example
4.4.6. Groovy script restrictions
4.5. Framework for cross-domain AJAX
4.5.1. Motivation
4.5.2. Scheme (how it works)
4.5.3. A Working Sequence:
4.5.4. How to use it
4.6. JSONP as alternative to the Framework for cross-domain AJAX
5. Frequently Asked Question
5.1. JCR FAQ
5.1.1. Kernel
5.1.2. JCR
6. eXo JCR with GateIn
6.1. How to extend my GateIn instance?
6.1.1. Motivations
6.1.2. Prerequisites
6.1.3. FAQ
6.1.4. Recommendations
6.2. How to use AS Managed DataSource under JBoss AS
6.2.1. Declaring the datasources in the AS
6.2.2. Do not let eXo bind datasources explicitly