Mirror of Apache Jackrabbit Oak
Java Groovy JavaScript CSS Shell Perl
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
oak-auth-external OAK-4920 : DefaultSyncHandler.listIdentities() search too broad, trig… Mar 6, 2017
oak-auth-ldap OAK-5843: Test failure: testGetUserByRef LdapProviderTest Feb 25, 2017
oak-authorization-cug OAK-5887 Stricter validation on primary type change Mar 3, 2017
oak-blob-cloud-azure OAK-4933: Create a data store implementation that integrates with Mic… Mar 24, 2017
oak-blob-cloud OAK-5827: Don't use SHA-1 for new DataStore binaries Mar 9, 2017
oak-blob fix String.format marker format ({} -> %s) Mar 7, 2017
oak-commons OAK-5357: StringUtils conversion functions can throw NullPointerExcep… Feb 24, 2017
oak-core OAK-6006: MultiplexingNodeStore sometimes fails to release checkpoint Mar 30, 2017
oak-doc OAK-5946 - Document reindexing Mar 29, 2017
oak-examples OAK-5493: oak-examples/standalone using Spring fwk version referencin… Mar 16, 2017
oak-exercise OAK-5926 : Readability of membership code Mar 14, 2017
oak-http OAK-5834 - Remove the deprecated oak-segment module Mar 10, 2017
oak-it-osgi OAK-5891: Test failure: org.apache.jackrabbit.oak.osgi.OSGiIT Mar 6, 2017
oak-it OAK-4933: Create a data store implementation that integrates with Mic… Mar 24, 2017
oak-jcr OAK-5888 - ReferenceBinaryIT fails after switching to oak-segment-tar Mar 3, 2017
oak-lucene OAK-5894 - IndexDefinitionBuilder shouldn't set type=lucene if type=d… Mar 8, 2017
oak-parent OAK-4933: Create a data store implementation that integrates with Mic… Mar 24, 2017
oak-pojosr OAK-5834 - Remove the deprecated oak-segment module Mar 10, 2017
oak-remote OAK-5834 - Remove the deprecated oak-segment module Mar 3, 2017
oak-run OAK-6000: Support for the checkpoint metadata retrieval/update in oak… Mar 29, 2017
oak-segment-tar OAK-6009: Simplify cancellation of compaction by timeout Mar 30, 2017
oak-solr-core OAK-5834 - Remove the deprecated oak-segment module Mar 3, 2017
oak-solr-osgi [maven-release-plugin] prepare for next development iteration Jan 30, 2017
oak-upgrade OAK-6003: Allow to migrate checkpoints for all type of sidegrades Mar 30, 2017
.gitignore [trivia] ignored derby.log Apr 7, 2016
.travis.yml OAK-5633: Builds on travis-ci time out Mar 28, 2017
LICENSE.txt OAK-1: Setup basic build structure Mar 6, 2012
NOTICE.txt Update trunk version to 1.1-SNAPSHOT Apr 16, 2014
README.md OAK-5834 - Remove the deprecated oak-segment module Mar 10, 2017
RELEASE-NOTES.txt Apache Jackrabbit Oak 1.5.18 Jan 18, 2017
analyze-hprof.pl OAK-641: Improved benchmark tooling Sep 19, 2013
assembly.xml OAK-42: Prepare for first release Mar 29, 2012
check_staged_release.sh OAK-3483 - progress indicator for check_staged_release script Oct 6, 2015
pom.xml OAK-4933: Create a data store implementation that integrates with Mic… Mar 24, 2017


======================================================= Jackrabbit Oak - the next generation content repository

Jackrabbit Oak is a scalable, high-performance hierarchical content repository designed for use as the foundation of modern world-class web sites and other demanding content applications.

The Oak effort is a part of the Apache Jackrabbit project. Apache Jackrabbit is a project of the Apache Software Foundation.

Getting Started

To get started with Oak, build the latest sources with Maven 3 and Java 7 (or higher) like this:

mvn clean install

To enable all integration tests, including the JCR TCK, use:

mvn clean install -PintegrationTesting

Before committing changes or submitting a patch, please make sure that the above integration testing build passes without errors. If you like, you can enable integration tests by default by setting the OAK_INTEGRATION_TESTING environment variable.

MongoDB integration

Parts of the Oak build expects a MongoDB instance to be available for testing. By default a MongoDB instance running on localhost is expected, and the relevant tests are simply skipped if such an instance is not found. You can also configure the build to use custom MongoDB settings with the following properties (shown with their default values):


Note that the configured test databases will be dropped by the test cases.


The build consists of the following main components:

  • oak-parent - parent POM
  • oak-doc - Oak documentation
  • oak-commons - shared utility code
  • oak-core - Oak repository API and implementation
  • oak-jcr - JCR binding for the Oak repository
  • oak-sling - integration with Apache Sling
  • oak-solr-core - Apache Solr indexing and search
  • oak-solr-embedded - Apache Solr on an embedded Solr instance
  • oak-solr-remote - Apache Solr on an remote (HTTP) Solr instance
  • oak-http - HTTP binding for Oak
  • oak-lucene - Lucene-based query index
  • oak-run - runnable jar packaging
  • oak-pojosr - integration with PojoSR
  • oak-segment-tar - TarMK API and implementation
  • oak-upgrade - tooling for upgrading Jackrabbit repositories to Oak
  • oak-it - integration tests
    • oak-it/osgi - integration tests for OSGi
  • oak-exercise - Oak training material


The following components have been moved to the Jackrabbit Attic:

  • oak-mk-api - MicroKernel API (deprecated, see OAK-2701)
  • oak-mk - MicroKernel implementation (see OAK-2702)
  • oak-mk-remote - MicroKernel remoting (see OAK-2693)
  • oak-it/mk - integration tests for MicroKernel


(see LICENSE.txt for full license details)

Collective work: Copyright 2014 The Apache Software Foundation.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.