Apache Jackrabbit Documentation

repository·trunk·Indexed 18 days ago

https://github.com/apache/jackrabbit

A 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.

Tokens
32.1K
Snippets
101
Records
160
Agent score
62%

What's inside Apache Jackrabbit

  1. Overview of Apache Jackrabbit Core

    trunk
    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.
  2. Overview of Jackrabbit JCR Tests

    trunk

    The 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.

  3. Overview of the Jackrabbit WebDAV Library

    trunk

    The 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-server or webapp projects.
    • 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-commons for 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.
  4. Overview of Jackrabbit JCA Resource Adapter

    trunk

    The 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.
  5. Overview of Jackrabbit SPI2JCR

    trunk
    Jackrabbit 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.
  6. Overview of Jackrabbit SPI Commons

    trunk
    Jackrabbit 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.
  7. Overview of Jackrabbit JCR Server implementations

    trunk

    The 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 webapp project): 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 webapp project): org.apache.jackrabbit.j2ee.JCRServerServlet.
    • Client Support: A client counterpart is under development in the <jackrabbit>/contrib/spi directory.
  8. What is Apache Jackrabbit?

    trunk

    Apache 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
  9. Overview of Jackrabbit JCR2SPI

    trunk
    Jackrabbit 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.
  10. Overview of Jackrabbit JCR Commons

    trunk
    Jackrabbit 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.