Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Embedding dynamic languages inside OSGi/Nakamura

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 src
Octocat-spinner-32 README
Octocat-spinner-32 pom.xml
README
Using it:

  * Run Nakamura with the extra JVM switch:

      -Dorg.apache.sling.launcher.system.packages=,sun.misc

  * Then:

     $ cd nakamura/bundles
     $ git clone [swissarmybundle.git url]
     $ cd swissarmybundle
     $ mvn -P redeploy clean install
  
  * Wait hours for Maven.  The bundle should eventually load

From here, there are a couple of ways of getting a REPL.  The
simplest:

   $ curl http://localhost:8080/system/swissarmy/python

or

   $ curl http://localhost:8080/system/swissarmy/ruby

or

   $ curl http://localhost:8080/system/swissarmy/clojure

will open a socket listening on a port (shown in the Nakamura
console).  From here, you can just:

  # For Python or Ruby
  $ telnet localhost 4010

or

  # For Clojure
  M-x slime-connect RET localhost RET 4010


You can also provide a selector to get a REPL running in the context
of a request for a particular resource:

  $ curl -s http://localhost:8080/~mark/public/authprofile.python.json

  $ curl -s http://localhost:8080/~mark/public/authprofile.ruby.json

  $ curl -s http://localhost:8080/~mark/public/authprofile.clojure.json

and then connect using the commands above.

Here's a quick screenshot of running a Python repl:

  http://dishevelled.net/nakamura-jython.png

WARNING: This opens a security hole the size of... a large security
hole, so be careful where you run this.

Something went wrong with that request. Please try again.