Apache Sling Feature Model - Unpack Extension

Clone this repo:
  1. 9b8f103 Fix project name by Carsten Ziegeler · 3 months ago master
  2. b3c11eb Update badges by Robert Munteanu · 6 months ago
  3. 18eb5c5 Added missing Jenkinsfile by Robert Munteanu · 6 months ago
  4. e97b0c4 [maven-release-plugin] prepare for next development iteration by David Bosschaert · 6 months ago
  5. ce0c9eb [maven-release-plugin] prepare release org.apache.sling.feature.extension.unpack-0.3.0 by David Bosschaert · 6 months ago org.apache.sling.feature.extension.unpack-0.3.0

Apache Sling

Build Status JavaDoc Maven Central feature License

The jar can be used in the following ways:

Feature model launcher extension

When added to the classpath of the feature launcher it will unzip extensions according to a framework property (see below).

OSGi installer extension

When installed as a bundle into sling, it will act as a extension to the OSGi installer and handle zip files that get installed as well as extensions in feature models that get installed (both, again, according to a framework property).


When invoked on the commandline, there is a converter main class that can be used to wrap a list of urls into a feature with an extension.

It looks like this:

java -cp ${HOME}/.m2/repository/org/apache/sling/org.apache.sling.commons.johnzon/1.2.2/org.apache.sling.commons.johnzon-1.2.2.jar:${HOME}/.m2/repository/org/apache/sling/org.apache.sling.feature/1.2.6/org.apache.sling.feature-1.2.6.jar:target/org.apache.sling.feature.extension.unpack-0.1.0-SNAPSHOT.jar \
 org.apache.sling.feature.extension.unpack.impl.converter.Converter \
 <mvn-id-of-resulting-feature> \
 <name-of-extension-in-feature> \
 <path-to-resulting-feature-file> \
 <path-to-mvn-repository-to-store-artifacts> \
 key=<optional-key-for-manifest> \
 <space separated list of urls>

Alternatively, there is an assembly provided.


The framework property org.apache.sling.feature.unpack.extensions can be used to give an OSGi header clause configuring which extensions to unzip, to which dir, and with what required manifest header.

It looks like this: