SECURITY WARNING: javashell lets user execute arbitrary code with NO LIMITS, and is only meant as a teaching/demo tool. Use at your own risk, or do not use if you don't understand the issues.
This sample application executes java code entered in an HTML form, by generating and compiling java servlets on the fly.
The Sling Container can be launched by running the following command in the launchpad/builder/target directory: java -jar org.apache.sling.launchpad--standalone.jar so if the current version is 7, the command should be: java -jar org.apache.sling.launchpad-7-standalone.jar
To run this demo the following bundle must be installed: org.apache.sling.scripting.java
Install it as follows: contrib/scripting/java $ mvn install -P autoInstallBundle
Build and install the sample bundle by running $ mvn install -P autoInstallBundle
Then:
Log in by navigating to: http://localhost:8080/system/sling/login.html using admin/admin as credentials.
Navigate to: http://localhost:8080/content/javashell/scripts/first_example.html
That page should include a “Result of execution” section which lists some properties and child nodes. This section is generated by the javashell script.
If you get the default HTML rendering under the “Result of execution” header, the scripting.java bundle is probably not active.
The above page includes links to edit the java code, and create new pages with more code to execute.
The servlets are generated under /apps/javashell/servlets, and are not cleaned up currently, this is something that should be improved.