This module is part of the Apache Sling project.
This bundle provides a SlingRepository based on Apache Jackrabbit Oak.
It runs inside an OSGi container and wires Oak services into Sling JCR. Besides registering the JCR Repository/SlingRepository, it also registers Oak's ContentRepository, provides a default thread pool capability, and can initialize a configurable Lucene index definition.
When pairing bundles in your installation, these are the compatible version combinations:
| Apache Sling JCR Oak Server | Apache Jackrabbit Oak |
|---|---|
| 1.3.0 | 1.8.9 to 1.54.0 |
| 1.4.0 | 1.56.0 to 1.60.0 |
| 1.4.2 | 1.56.0 or newer |
| 1.4.4 | 1.56.0 or newer |
| 1.4.5-SNAPSHOT | 1.56.0 or newer |
# Build and package (skip integration tests)
mvn clean package -DskipTests
# Full build (includes integration tests)
mvn clean verify
# Run integration tests only (bundle must already be built)
mvn failsafe:integration-test failsafe:verify
# Run one integration test class
mvn verify -Dit.test=OakServerIT
# Check OSGi baseline/API compatibility
mvn verify -Dbaseline.skip=false
# Formatting
mvn spotless:check
mvn spotless:apply- Java baseline is Java 8 (
sling.java.version=8). - OSGi Declarative Services use official
org.osgi.service.component.annotations(no legacy Felix SCR annotations). - Lucene index initialization is configurable via OSGi configuration (
LuceneIndexRepositoryInitializerConfiguration) and activates only when configured. oak-luceneandcom.mongodbimports are optional at runtime.
src/main/java/org/apache/sling/jcr/oak/server/internal/
OakSlingRepositoryManager.java
OakSlingRepository.java
DefaultThreadPoolRegistrar.java
TcclWrappingJackrabbitRepository.java
TcclWrappingJackrabbitSession.java
index/
LuceneIndexRepositoryInitializer.java
LuceneIndexRepositoryInitializerConfiguration.java
src/test/java/org/apache/sling/jcr/oak/server/it/
OakServerIT.java
LuceneIndexIT.java
ResourceTypeResolutionIT.java
LoginAdminBlacklistedIT.java
LoginAdminWhitelistedIT.java
Sling9719IT.java
Sling9826IT.java
