Apache Sling 13 released

The Sling 13 release contains numerous improvements, such as official Java 21 support, and various performance improvements and updates.

Read on to see more details about the individual improvements. To find out more about running Sling, see our getting started page.

Official support for Java 21

The Sling Starter and included modules are validated to work on Java 11, 17 and 21.

Note that for Java 17+ the org.apache.sling.commons.threads will not clean up leftover ThreadLocal instances unless the --add-opens java.base/java.lang=ALL-UNNAMED is passed to the JVM. This fix is already applied to the official Sling Starter Docker image and we anticipate further fixes in this area.

Drop support for Java 8

Some of the Sling modules and their dependencies started to switch to Java 11 as minimum version, so Java 8 is no longer supported for the Sling Starter.

Update to Oak 1.72.0

Apache Jackrabbit Oak 1.72.0 brings numerous performance improvements and new features that are now available in the Sling Starter.

Switch to jakarta.json

A lot of modules have been migrated from org.json to jakarta.json, some modules are still using org.json. Thus the Sling Starter includes both Apache Johnzon 1.x and 2.x for supporting both. It is expected that all modules will be migrated to jakarta.json soon and Johnzon 1.x will be removed from the Sling Starter.

Sling Models

Sling Models comes with a couple of small improvements:

  • SLING-8706 Injections for java.util.Optional<> should be automatic optional
  • SLING-11917 Sling Models: Support parameter name evaluation in constructor injection
  • SLING-12359 Support constructor injection for Java Record classes

Sling XSS

The Sling XSS module implementation switched from OWASP AntiSamy to the OWASP Java HTML Sanitizer library (SLING-7231).

Multi-arch container image

The official Apache Sling Starter images pushed to DockerHub support the linux/arm64 architecture, in addition to the existing linux/amd64 one. This allows deploying the Sling Starter on a wider varierty of platforms.

Version updates

All bundles have been updated to the latest versions.

New bundles added to Sling Starter:

  • com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  • com.fasterxml.woodstox:woodstox-core
  • org.apache.commons:commons-text
  • org.apache.felix:org.apache.felix.http.inventoryprinter
  • org.apache.felix:org.apache.felix.http.webconsoleplugin
  • org.owasp.encoder:encoder

The following bundles are removed from the Sling Starter:

  • com.google.guava:guava
  • org.apache.jackrabbit:jackrabbit-jcr-rmi

A couple of bundles changed their artifact ID and are thus replaced with the latest version using the latest artifact ID (e.g. switch to Groovy 4).

OSGi Core R8 compliance

Sling Starter ships with Apache Felix 7 which implements OSGi Core R8 fully. In addition it comes with Felix SCR 2.2 which implements Declarative Services 1.5 (part of OSGi Compendium R8).

Aggregated list of changes

Generated by launchpad-comparator: Lists all bundle changes since the last Starter release, including links to issues found in the commit messages of the affected Sling bundles.

Added:

  • com.fasterxml.jackson.dataformat:jackson-dataformat-xml 2.18.2
  • com.fasterxml.woodstox:woodstox-core 7.1.0
  • org.apache.commons:commons-text 1.13.0
  • org.apache.felix:org.apache.felix.http.inventoryprinter 1.0.2
  • org.apache.felix:org.apache.felix.http.webconsoleplugin 1.2.0
  • org.apache.groovy:groovy 4.0.10
  • org.apache.groovy:groovy-ant 4.0.10
  • org.apache.groovy:groovy-astbuilder 4.0.10
  • org.apache.groovy:groovy-cli-picocli 4.0.10
  • org.apache.groovy:groovy-console 4.0.10
  • org.apache.groovy:groovy-datetime 4.0.10
  • org.apache.groovy:groovy-docgenerator 4.0.10
  • org.apache.groovy:groovy-groovydoc 4.0.10
  • org.apache.groovy:groovy-groovysh 4.0.10
  • org.apache.groovy:groovy-jmx 4.0.10
  • org.apache.groovy:groovy-json 4.0.10
  • org.apache.groovy:groovy-jsr223 4.0.10
  • org.apache.groovy:groovy-nio 4.0.10
  • org.apache.groovy:groovy-servlet 4.0.10
  • org.apache.groovy:groovy-sql 4.0.10
  • org.apache.groovy:groovy-swing 4.0.10
  • org.apache.groovy:groovy-templates 4.0.10
  • org.apache.groovy:groovy-test 4.0.10
  • org.apache.groovy:groovy-test-junit5 4.0.10
  • org.apache.groovy:groovy-testng 4.0.10
  • org.apache.groovy:groovy-xml 4.0.10
  • org.apache.jackrabbit:oak-shaded-guava 1.72.0
  • org.codehaus.woodstox:stax2-api 4.2.2
  • org.osgi:org.osgi.service.component 1.5.1
  • org.osgi:org.osgi.util.converter 1.0.9
  • org.owasp.encoder:encoder 1.3.1

Removed:

  • com.google.guava:guava 15.0
  • org.apache.felix:org.apache.felix.converter 1.0.18
  • org.apache.jackrabbit:jackrabbit-jcr-rmi 2.20.4
  • org.codehaus.groovy:groovy 3.0.9
  • org.codehaus.groovy:groovy-ant 3.0.9
  • org.codehaus.groovy:groovy-astbuilder 3.0.9
  • org.codehaus.groovy:groovy-cli-picocli 3.0.9
  • org.codehaus.groovy:groovy-console 3.0.9
  • org.codehaus.groovy:groovy-datetime 3.0.9
  • org.codehaus.groovy:groovy-docgenerator 3.0.9
  • org.codehaus.groovy:groovy-groovydoc 3.0.9
  • org.codehaus.groovy:groovy-groovysh 3.0.9
  • org.codehaus.groovy:groovy-jmx 3.0.9
  • org.codehaus.groovy:groovy-json 3.0.9
  • org.codehaus.groovy:groovy-jsr223 3.0.9
  • org.codehaus.groovy:groovy-macro 3.0.9
  • org.codehaus.groovy:groovy-nio 3.0.9
  • org.codehaus.groovy:groovy-servlet 3.0.9
  • org.codehaus.groovy:groovy-sql 3.0.9
  • org.codehaus.groovy:groovy-swing 3.0.9
  • org.codehaus.groovy:groovy-templates 3.0.9
  • org.codehaus.groovy:groovy-test 3.0.9
  • org.codehaus.groovy:groovy-test-junit5 3.0.9
  • org.codehaus.groovy:groovy-testng 3.0.9
  • org.codehaus.groovy:groovy-xml 3.0.9

Changed: