Introduction
Sling is based on Felix which is an implementation of OGSi. It includes Felix webconsole (http://felix.apache.org/site/apache-felix-web-console.html) bundle to make it easy to inspect OSGi framework. Also Sling integrates Jackrabbit and wraps it as an OSGi bundle. To update Java Content Repository, the client app can send regular HTTP POST requests. In other words, it exposes Java Content Repository in a REST way.
It can be run either independently or in a servlet container (e.g. Apache Tomcat).
Resources
Sling: http://sling.apache.org/site/index.html
Useful Sling help: http://felix.apache.org/site/apache-felix-framework-usage-documentation.html
Install and upgrade bundles in Felix web console: http://sling.apache.org/site/installing-and-upgrading-bundles.html
Address of Felix Management Web Console: http://ip_address:port/system/console/
When I clicked “Configuration” link on the top, Null Pointer Exception was thrown out.
It turns out that this is problem of Felix webconsole. See
http://issues.apache.org/jira/browse/FELIX-1135
http://issues.apache.org/jira/browse/FELIX-1028
This post contains some useful information http://groups.google.com/group/sakai-kernel/web/building-3akai-sling.
Solution
Download sling (standalone distribution) and unzip the tarball:
http://mirror.cc.columbia.edu/pub/software/apache/sling/org.apache.sling.launchpad.app-5-incubator-bin.tar.gz
Download new version of felix webconsole:
https://issues.apache.org/jira/secure/attachment/12407768/org.apache.felix.webconsole-1.2.9-SNAPSHOT.jar
Assume the new version of webconsole is downloaded to dir <DIR>
Execute following commands in the directory where sling tarball is unzipped.
jar xf org.apache.sling.launchpad.app-5-incubator.jar cd resources/bundles/5/ rm org.apache.felix.webconsole-1.2.8.jar cp <dir>/org.apache.felix.webconsole-1.2.9-SNAPSHOT.jar ./ jar cMf org.apache.sling.launchpad.app-5-incubator.jar resources META-INF org
Run the server:
java -jar org.apache.felix.webconsole-1.2.8.jar -p 4040
Note: you CANNOT use arbitrary new version of felix webconsole without updating other components of felix package. The reason is that different versions of felix console requires different versions of felix core/OSGi.
Misc.
If you are using both JCR Installer and Felix web console to update a bundle, you will get into trouble.
JCR installer:
http://sling.apache.org/site/jcr-installer-jcrjcrinstall-and-osgiinstaller.html
JCR installer tries to install OSGi bundles/modules found in Java Content Repository.
Bug
“JCR Install prevents update of bundle through other channels like the web console”
http://issues.apache.org/jira/browse/SLING-1106