Using Scala with Sling

Sling supports the Scala programming language version 2.8.1 through optional modules located in /contrib/scripting/scala.


The following bundles are required for Scala support: scala-library, scala-compiler, Scala Script Engine, Apache Sling Scala Scripting Configuration. Note: In order to see the Scala scripting engine in action you can also use the Launchpad Contrib Testing module which comes with all necessary bundles (including the examples) pre-installed. See below.

Manual installation

  • Start Sling
  • Install the Scala Script Engine bundle. Goto /contrib/scripting/scala/script and type mvn
  • Install the Apache Sling Scala Scripting Configuration bundle. Goto /contrib/scripting/scala/config and type mvn

Using Launchpad Contrib Testing

  • Goto /contrib/launchpad/testing and type mvn jetty:run -Pjcrinstall-tests to start Sling.
  • Sling is now running at http://localhost:8888/. All required bundles and examples are pre-installed. See next section on how to access the examples. Remember to substitute the port number with 8888!
  • See /contrib/launchpad/testing/README.txt for details.

Examples Applications

There are two example applications available in /contrib/scripting/scala/samples: A simple Hello World programm and a more advanced Forum application. The examples require the Apache Sling Sample Path Based Resource Type Provider bundle. So lets install this bundle first:

Now the examples themselves:


The Scala scripting bundle is configurable through the Apache Felix Web Management Console (PID:

  • Scala compiler options. Scala compiler settings as documented by scalac -help. Default is blank.
  • Compiler output directory. Output directory for files generated by the Scala compiler. Default is /var/classes.

Further Information

See these session slides for further information:

  • No labels