Apache Jackrabbit Documentation
repository·trunk·Indexed 18 days ago
https://github.com/apache/jackrabbitA JSR-170 compliant implementation of a content repository. This documentation covers Apache Jackrabbit Core, including JCR lock management, Lucene node index aggregates, and ACL entry representation. It also provides guides for extensions such as the Amazon WebServices Extension for S3 Datastore and the Commons VFS Extension for local, WebDAV, and SFTP backend storage.
What's inside Apache Jackrabbit
- Apache Jackrabbit Core is the central component of the Apache Jackrabbit project. It provides a fully JSR-170 compliant implementation of a content repository. Developers can use it to manage hierarchical content data in a way that adheres to the JSR-170 specification.
Overview of Jackrabbit JCR Tests
trunkThe Jackrabbit JCR Tests component provides a suite of JCR (Java Content Repository) API test cases. These tests are intended to help developers verify the compliance of a JCR implementation against the API specification.
Important Note: While this codebase is used as part of the official JCR TCK (Technology Compatibility Kit), this specific component is not the official TCK. Passing these tests does not guarantee full API compliance.
Overview of Jackrabbit SPI2DAV
trunkJackrabbit SPI2DAV is a component of the Apache Jackrabbit project. It provides a Service Provider Interface (SPI) implementation for the DAV (WebDAV) protocol, allowing Jackrabbit to interact with WebDAV-compliant servers.Overview of the Jackrabbit WebDAV Library
trunkThe Jackrabbit WebDAV Library is a component of the Apache Jackrabbit project that provides interfaces, common utility classes, and building blocks for creating WebDAV servers or clients.
Key Characteristics:
- Not a standalone server: This library does not provide a full, deployable WebDAV server. It is a library of interfaces and utilities. For a JCR-specific implementation, use the
jcr-serverorwebappprojects. - Generic usage: The library has no dependency on JSR170 and can be used as a generic WebDAV library in any project. It only depends on
jackrabbit-commonsfor utility classes. - Protocol Support: It integrates several RFCs, including:
- RFC 2518 (WebDAV - HTTP Extensions for Distributed Authoring)
- RFC 3253 (DeltaV - Versioning Extensions to WebDAV)
- RFC 3648 (Ordered Collections Protocol)
- RFC 3744 (Access Control Protocol)
- DAV Searching and Locating (DASL)
- Binding Extensions to WebDAV (experimental)
- Additional Features: Includes support for Observation and bundling multiple requests with locking extensions.
- Not a standalone server: This library does not provide a full, deployable WebDAV server. It is a library of interfaces and utilities. For a JCR-specific implementation, use the
Overview of Jackrabbit JCA Resource Adapter
trunkThe Jackrabbit JCA Resource Adapter packages the Apache Jackrabbit content repository as a JCA 1.0 (Java EE Connector Architecture) resource adapter. This allows the Jackrabbit content repository to be deployed on various application servers.
Key lifecycle behavior:
- The embedded Jackrabbit content repository starts automatically upon its first access.
- The repository shuts down automatically when the adapter is un-deployed or re-deployed.
Overview of Jackrabbit SPI2JCR
trunkJackrabbit SPI2JCR is a component of the Apache Jackrabbit project that provides a Service Provider Interface (SPI) implementation. It functions as a wrapper around a JSR-170 (Java Search API) implementation, allowing Jackrabbit to leverage JSR-170 capabilities through its SPI layer.Overview of Jackrabbit SPI Commons
trunkJackrabbit SPI Commons is a utility component within the Apache Jackrabbit project designed for developers building Service Provider Interface (SPI) implementations. It provides generic utility classes for SPI development and specialized utilities for converting JCR (Java Content Repository) names, paths, and values into their corresponding SPI representations.Overview of Jackrabbit JCR Server implementations
trunkThe Jackrabbit JCR Server component provides two distinct WebDAV-based implementations for accessing a JSR170 repository. Depending on your requirements for compliance and protocol usage, you can choose between the 'simple' server or the 'jcr' server.
1. WebDAV server ('simple')
This is a DAV1,2 compliant WebDAV server implementation designed to access a JSR170 repository. It is suitable for standard WebDAV clients.
- Core Packages:
org.apache.jackrabbit.server: Server logic.org.apache.jackrabbit.server.io: Import/export functionality.org.apache.jackrabbit.webdav.simple: DAV resource implementation and configuration.
- Servlet (located in the
webappproject):org.apache.jackrabbit.j2ee.SimpleWebdavServlet.
2. 'jcr' server
This server is specifically designed to remove JSR170 calls via WebDAV. It does not prioritize compliance with WebDAV RFCs, making it a specialized implementation.
- Core Packages:
org.apache.jackrabbit.server: Server logic.org.apache.jackrabbit.server.jcr: JCR-server specific server components.org.apache.jackrabbit.webdav.jcr: DAV resources, reports, and properties.
- Servlet (located in the
webappproject):org.apache.jackrabbit.j2ee.JCRServerServlet. - Client Support: A client counterpart is under development in the
<jackrabbit>/contrib/spidirectory.
- Core Packages:
Overview of Jackrabbit Web Application components
trunkThe Jackrabbit Web Application component provides a set of servlets designed to interface with a Jackrabbit repository. It includes servlets for direct repository access and specialized servlets for WebDAV support.What is Apache Jackrabbit?
trunkApache Jackrabbit is a Java implementation of the Content Repository for Java Technology API (JCR), conforming to the JSR 170 and 283 specifications. It provides a hierarchical content store that supports:
- Structured and unstructured content
- Full-text search
- Versioning
- Transactions
- Observation
Overview of Jackrabbit JCR2SPI
trunkJackrabbit JCR2SPI is a component of the Apache Jackrabbit project that provides an implementation of the JSR-170 API. It handles functionality that is not delegated to the underlying SPI (Service Provider Interface) implementation, acting as a bridge or wrapper for JSR-170 compliant services.Overview of Jackrabbit JCR Commons
trunkJackrabbit JCR Commons is a component of the Apache Jackrabbit project that provides a collection of general-purpose utility classes designed for use with the Java Content Repository (JCR) API. It simplifies common tasks when interacting with JCR repositories by providing reusable logic and helper methods.