blob: 9d65f94cf753a3d394a7e91153190f82eed4b19e [file] [log] [blame]
Mishell provides an interactive console
that executes scripts in different scripting languages.
Running mishell:
- Standalone:
Mishell can be run directly with the "java -jar ${artifactId}-${version}.jar" idiom or as an OSGi bundle. Remember that in both cases
JRE 6 is needed. Mishell provides some built-in commands and interprets ruby, javascript or any other language that you
configure. You can also load scripts with the load command. Type 'help' for available commands.
- Inside OSGi:
You can see an example of configuring Felix for launching both Jmood and mishell in the same OSGi platform in the FelixLauncher
class in the src/test/java dir. Remember to change the paths to match your installation.
The initial object that is exported to the scripting engine is a JMoodProxyManager that extends
the general-purpose MBeanProxyManager (from the jmxintrospector project) to simplify working with JMood.
For example, when running on OSGi with JMood you can add the mbeans by typing:
$manager.addLocalServer(nil) #Ruby
or
manager.addLocalServer(null) //Javascript
And you issue commands like
$manager.objects.each{|mbean| puts mbean.objectName} #this lists the objectnames for all mbeans known to the shell
IMPORTANT:
Dependencies that need to be manually installed:
1. It needs Java 6 to work (as it depends on javax.script API).
Once that API is stable and released standalone, it should also work in Java 5.
2. It needs JMX introspector which in turn needs Javassist to be
manually installed in your local maven repo.
3. It needs both the jruby-javax.script binding and Jruby 0.9 to be manually
installed in the M2_REPO.
- The binding is available at https://scripting.dev.java.net/ and licensed
under the BSD license. Download the jsr223-engines.[zip|tar.gz]
and install the jruby-engine.jar
- JRuby is available at http://dist.codehaus.org/jruby/ under a tri-license: CPL/LGPL/GPL
located at engines/jruby/build/jruby-engine.jar. JRuby implementation
4. If you want to use any other language, you should:
- Install the binding and the implementation in M2_REPO. Use Jruby as an example to do it.
- Add the dependencies to the pom.