Skip to content

Introduction

sitMCella edited this page Aug 19, 2022 · 2 revisions

The Jackrabbit Oak Repository Upgrade project defines a procedure for upgrading the nodes in a Jackrabbit Oak Repository.

Jackrabbit Oak

Apache Jackrabbit Oak is an implementation of JCR 2.0 specification, visit the official documentation page: https://jackrabbit.apache.org/oak/.

Apache Jackrabbit Oak is a hierarchical content repository. Jackrabbit Oak organizes all content in a large tree hierarchy that consists of nodes and properties. Each snapshot or revision of this content tree is immutable, and changes to the tree are expressed as a sequence of new revisions.

Node

A node in Jackrabbit Oak is an unordered collection of named properties and child nodes. As the content tree evolves through a sequence of revisions, a node in it will go through a series of different states. A node state then is an immutable snapshot of a specific state of a node and the subtree beneath it.

Repository

A content Repository defines the node structure for a Jackrabbit Oak project.

Oak comes with two node storages: Segment and Document.

Scope

The scope of the project is to define an upgrade procedure for the Jackrabbit Oak repository.

In order to achieve this scope, the project comes with:

  • A first version of a Command Line Interface application that makes use of Jackrabbit Oak for creating nodes inside the repository.
  • An application for upgrading the repository to the second version of the node structure.
  • A second version of a Command Line Interface application that makes use of Jackrabbit Oak for creating nodes inside the repository.

Assumptions

The following project creates a Jackrabbit Oak repository of type Oak Segment Tar (Tar file based Segment NodeStore).

The repository contains custom node types.

The two versions of the Command Line applications use the same Jackrabbit Oak version.

The repositories contain a versionable node "app:file" with a version-related mixin "app:versionInfo".

Clone this wiki locally