Apache Sling is an open source, REST-based web framework, that makes it easy to build content-oriented applications (e.g., websites and related services).
The framework includes the Sling Launchpad which combines a number of infrastructure-level and application-level functions into a single integrated package.
Note: Apache Sling is part of the Adobe Experience Manager (AEM) stack.
- OpenJDK for Java 1.8
Before we install the OpenJDK, its always a good idea to check for updates. So lets open a terminal session and run the following commands:
sudo apt update sudo apt upgrade sudo apt-get check sudo apt-get autoclean
I'm running Elementary OS Freya (built on Ubuntu 14.04) and the OpenJDK for Java 1.8 has not been made a part of the official Ubuntu repositories. So we need to install the OpenJDK from a PPA repository.
To add the PPA repository, enter the following commands:
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt update
Now to install the Java JDK, enter the following command:
sudo apt-get install openjdk-8-jdk
If you have more than one Java version installed, you can use the following command to set the default Java version:
sudo update-alternatives --config java
And, the following command to set the default Java compiler:
sudo update-alternatives --config javac
You can check the Java version by running the following command:
You should then see output like:
openjdk version "1.8.0_111" OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-3~14.04.1-b14) OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
And, you can check the Java compiler version by running the following command:
You should then see output like:
Note: Don't forget to update the JAVA_HOME environment variable in your
Let's start by downloading the Sling Launchpad (a runnable JAR file) and then launching it:
java -Xmx1024M -jar org.apache.sling.launchpad-8.jar
The Sling Launchpad will take a few minutes to unpack the JAR file, install itself, and start up:
23.03.2017 15:35:42.566 *INFO * [main] Setting sling.home=sling (default) 23.03.2017 15:35:42.569 *INFO * [main] Starting Apache Sling in /home/rob/Eclipse/Neon/workspace/apache-sling/sling 23.03.2017 15:35:42.655 *INFO * [main] Starting launcher 23.03.2017 15:35:42.685 *INFO * [main] HTTP server port: 8080 ... 23.03.2017 15:35:52.349 *INFO * [main] Startup completed
You now have a Sling Launchpad instance running on
localhost listening on port
8080. In your browser navigate to http://localhost:8080/index.html and the Sling Launchpad's welcome page will be displayed:
Open a new browser tab and navigate to http://localhost:8080/system/console/bundles (use
admin if prompted to login) and Sling will display its Web Console:
In the Sling Web Console (on the OSGi Bundles page) we can see that the Sling Launchpad is comprised of 121 OSGi bundles. When launched as a standalone application the Sling Launchpad uses an embedded version of the Jetty HTTP servlet container.
The Launchpad also makes heavy use of the OSGi’s core and compendium (e.g., logging, configuration, metatype, event and declarative) services.
The Sling Launchpad also includes WebDAV support:
So you can access your content via the Eclipse IDE, your File Manager (e.g., Pantheon):
Or navigate to http://localhost:8080/.explorer.html and use the JCR Explorer:
- Apache Sling docs: Apache Sling Launchpad 8
- Apache Sling docs: Discover Sling in 15 minutes
- Apache Sling docs: The Sling Launchpad
- Apache Sling docs: Embedding Sling
- Apache Sling docs: WebDAV Support
- GitHub: Composum Console - A simple Apache Sling based Resource/JCR development tool
- Adobe Experience Manager docs: AEM The Basics